微服务框架
微服务流程
-
所有服务注册到注册中心(认证服务,消息推送,搜索服务,短信服务,网关)
-
用户请求之前需要通过网关从注册中心获取认证服务地址,请求认证服务获取到token,网关将token存储至redis。
-
客户端获取token以后,携带token发起数据接口请求。
-
在网关接受客户端请求以后,通过注册中心获取到业务服务列表,从而转发数据请求到后台业务服务。
-
业务服务在接受网关请求时,校验token有效性,通过验证之后,业务接口返回数据至网关,最后返回到客户端,整个请求结束。
https://baijiahao.baidu.com/s?id=1739879981368447672&wfr=spider&for=pc
https://blog.csdn.net/java_beautiful/article/details/126467776
单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署;分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
微服务就是一种经过良好架构设计的分布式架构方案,微服务架构有如下特征:
1. 单一职责:拆分粒度小,每个服务对应唯一的业务能力
2. 面向服务:对外暴露业务接口
3. 自治:团队独立、技术独立、数据独立、部署独立
4. 隔离性强:服务间调用做好隔离,容错、降级,避免出现级联问题
这些特征总结起来就是高内聚,低耦合
当下企业对微服务技术的需求共四类:SpringCloud+Feign、SpringCloudAlibaba+Feign、SpringCloudAlibaba+Dubbo、Dubbo原始模式
SpringCloud是目前国内使用最广泛的微服务框架技术栈,官网:https://spring.io/projects/spring-cloud,SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
一、微服务治理中心框架
Apache Dubbo分布式RPC框架
Spring Cloud Alibaba分布式应用服务开发一站式解决方案
Spring Cloud微服务开发和治理框架
Apache ServiceComb一站式开源微服务解决方案
二、持续集成CI/CD
CI/CD 配置中心 Jenkins、Docker Hub、Maven、Nexus、CI/CD Apollo
三、微服务组件
选项 | 组件 | |
阿里系 | Spring Cloud&Dubbo系 | |
服务调用方式 |
OpenFeign |
feign |
服务注册 | Nacos Discovery | Eurake(AP)、Zookeeper(CP) |
API网关 | Spring Cloud Gateway | Spring Cloud Gateway、Zuul |
熔断限流 | Sentinel | Hystrix |
配置中心 | Nacos Config | Apollo、Spring Cloud Config |
消息队列 | RocketMQ | |
分布式事务 | Seata | |
分布式服务追踪 | Spring Cloud Sleuth | Spring Cloud Sleuth |
监控 | Spring Cloud Admin | Spring Cloud Admin |
短信服务 | Alibaba Cloud SMS | |
消息总线 | Spring Cloud Bus |
四、容器
选项 | 首选 |
容器 | Docker |
容器编排管理 | kubernetes(首选推荐)、Docker Swarm、Apache Mesos |