1.微服务技术选型图如下图所示:
2.如何进行微服务架构设计:
- 深入业务功能, 满足功能性需求
- 非功能性需求关注扩展性,稳定性。可维护性,伸缩性,高可用,高性能
- 坚持kiss原则,防止简单问题复杂化
注:
可伸缩性是指系统通过增加或减少硬件水平从而提升或降低系统性能的难易程度。可伸缩性分为scale up和scale out。
scale up是指提高单台服务器的硬件水平来提高系统的整体处理能力,可以调整的有CPU,存储,内存等;scale out是指通过增加系统的处理节点的方式来提高系统的整体处理能力。
可扩展性是软件系统应对需求增加或需求变化的能力。
3.微服务架构设计
请求通过服务网关将转发到业务服务 ,这里做了粗粒度的拆分,三个服务将数据返回给服务网关,然后服务网关聚合数据给终端用户
jwt是个安全传输协议
服务注册发现、断路器、链路追踪帮助我们提供系统的伸缩性、可扩展性、和稳定性,并且能够定位性能瓶颈
后端存储:选用事务型关系型数据库mysql,临时存储和缓存使用redis
为了快速定位系统问题,监控整个系统的状态,加强了监控和日志管理
日志聚合采用ELK这种架构