关于微服务架构,如何进行微服务间通信,用户身份验证的讨论

背景:创业初期团队,开发团队2-3人(均为1-2年经验),特此发帖与大家商讨架构问题,如有经验丰富的开发者或架构师愿意提供远程协助可以付费咨询。

  • 起初只有一个Laravel服务(Web),所有信息均存在其MySQL服务器,使用blade模版进行前端开发,控制器Controller查询数据并渲染模版。
  • 后来由于业务拓展,需要存储大量GPS数据,决定增加服务2(GPS),其使用MongoDB作为数据库存储。
  • 同时决定逐渐引入Vue作为开发前端新功能时的框架,使用API Controller进行数据查询接口。
  • 关于用户身份认证:历史遗留代码仍旧使用Laravel自带的Authorization功能。新功能使用基于JWT Token开发的包配合AWS Lambda进行鉴权和转发(如图所示)。
  • 所有API入口都在api.app.com,基于AWS Lambda,根据不同的请求路径。api.app.com/web 或 api.app.com/gps 鉴权并转发至Web或GPS提供的API接口。
  • 在Web和GPS的API Controller中通过decode JWT token获取到一些用户的基本信息字段(id,role等)。
  • 由于团队中没有经验十分丰富的开发人员,发帖在此想和大家讨论一下目前的架构改善的空间,希望能提升用户体验,优化开发中的流程,谢谢。

示意图

示意图

zhsh0429
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 5

提问他泛泛而谈了,你这感觉是来套方案的,我建议你一次只问一个问题

4年前 评论
zhsh0429 (楼主) 4年前
麦索 (作者) 4年前
麦索 (作者) 4年前
麦索 (作者) 4年前
zhsh0429 (楼主) 4年前

还有你只有2-3个人的话,不建议你用微服务架构,这样的架构很难驾驭,而且也不是解决你们的问题的,就单体模块化开发就可以了,不过模块开发还是对你们有点重

4年前 评论
leo

初创团队而且开发都是初中级,还是乖乖单体应用吧,好好做业务,把业务做好了赚到钱(融到资)之后再慢慢改架构吧。

4年前 评论
巴啦啦

可以用 @leo 大佬的单点登录模块,解决身份认证。微服务就先算了。

4年前 评论

PHP天生不适合微服务,如果你非要用PHP搞微服务可以试试swoole,统一认证的话,建议使用OAuth 2

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!