前言
SpringCloud很重要!非常非常重要!一定要掌握!是走上成神之路的必备技术!
什么是微服务
所谓微服务就是要么面向需求维度,要么面向服务,要么面向技术栈去拆,拆出细小粒度的服务。
所有的微服务都必须基于SpringBoot实现,否则服务根本加不进来。
SpringCloudAlibabaNetflix生态与依赖关系
SpringCloud生态体系技术框架真的是太多了,有二三十个。画图在这里根本放不下。
下面是一个最简单集群,基于Netflix生态体系,当然这里只写了一个Controller,其实有很多个,一个是肯定扛不住的,需要多个提供负载均衡。用户在进行调用的时候是肯定不能暴露出最前端的Controller出来,因此需要做服务的负载和服务的路由,以及安全权限方面的处理。可以用NetflixZuul来做服务和路由的网关。网关在这里就是来定位具体的Controller,拦截请求,分析请求。网关还可以做权限认证,拦截一切请求,全部打在NetflixZuul,既然如此,一个服务肯定不够,可以来多个就行了。
分布式事务
在单机环境下对于事务可以采取Spring的事务机制,对于集群环境下采用互调的方式,有个开源的Seata产品,服务比较少的情况下,一个微服务调用另外一个微服务,这就完事了。但如果服务来回调,连环掉,出了异常如何处理?
这里就需要链路追踪。可以采用spring-cloud-sleuth或者ziokin。
分布式锁
对于分布式锁的实现可以采用Zookeeper、Curator、以及RedLock。
处理消息
- SpringCloud Stream
- Spring Messsage
- Spring Interation
- Apache Camel
|