从转了Java就听说微服务,但是项目中大部分都是单应用的项目,springMVC和springboot倒是用了不少,也积累了一些经验吧。这回终于有机会接触到了微服务。

在正式搭建项目之前,也阅读了很多的文章,对大体的技术流程也有了一些了解。对于技术选型也做了一些讨论决定使用以下技术作为架构搭建

基础架构 spring cloud alibaba
注册中心 nacos
配置中心 nacos
熔断、降级 sentinel
网关 spring cloud getaway
认证、鉴权 spring security
链路追踪 zipkin

具体对选型原因做一些记录吧

eureka 与 nacos

eureka界面简介明了,同时也支持集群,接入也很简单。但是官方已经不在继续维护和更新;nacos由alibaba开源,目前还在稳定更新和迭代,配合spring cloud alibaba也非常便捷。虽然eureka已经不再更新,但是现用的功能已经足够使用,为了后续迭代考虑,选择了nacos

spring cloud config 与 nacos

spring cloud config作为配置中心,可以将本地指定目录下或者git远程仓库中的文件,统一更新到客户端中,在配置上也不是很复杂;但是,nacos在作为注册中心的同时还可以作为配置中心,而且可以直接在线编辑配置文件并完成更新,比config更加方便。

Hystrix 与 sentinel

Hystrix作为熔断降级保护机制来说,引入简单,使用方便,直接实现对应接口创建工厂类,在@OpenFeign注解中增加当前类就可以实现降级功能,但是跟eureka一样,官方同样不再进行后续维护和更新;sentinel同样由alibaba开源,自带一套可视化的配置监控界面,可以配合nacos实现降级规则的在线配置,同样,sentinel也在稳定的更新和迭代。

spring cloud 与 spring cloud alibaba

spring cloud alibaba也是在spring cloud的基础上,加入了一些组件和进行了一些修改,由于我们在注册中心、熔断降级的时候使用的alibaba的组件,而spring cloud alibaba中又对这些组件进行了适配,所以就很自然的选择了spring cloud alibaba。

注:使用Idea来创建spring cloud alibaba时,需要下载对应的插件

技术栈确定之后,下一步就是搭建了。为了方便,按照应用服务—->注册中心—->网关—->链路追踪—->熔断降级这个顺序进行搭建过程的记录