目录
1:为什么需要SpringCloud
要想了解为什么需要springcloud,我们首先需要从服务架构的问题来讲解这个问题,Springcloud是Spring云。该技术不是仅仅是新的代码编写方式,它是一种解决方案。
1.1:单体服务架构
单体服务架构缺点如下:
1:所有的代码都在业务逻辑中,代码耦合行强,不利于扩展,一次升级,代码全部部署
2:有些逻辑伴随着并发压力, 但是有些逻辑压力不大,这时候需要升级配置,就会导致压力不大的逻辑产生浪费
3:整体的业务扩展性能差,项目用户越来越多,不能随着需求进步
所有我们需要拆分项目到了接下来的垂直架构
1.2:垂直引用架构
在垂直应用架构中,我们把单体架构中的业务逻辑拆分成不同的功能块,单个功能块单独维护,减少压力,便于增大并发量。
垂直服务的缺点如下:
1:不同的服务之间需要互相调用,调用规则和调用方式麻烦
2:服务之间有重复功能,数据库不能结偶,数据库压力大
1.3:分布式架构
在soa结构中,虽然对服务进行了拆分,利于扩展。
分布式服务的缺点如下:
1:服务之间需要互相调用,调用复杂
2:大家都在提供服务,同时也在调用别人的服务,这个时候服务的治理管理困难?我们是否需要一种服务注册发现机制,我们怎么调用?
3:服务依赖与对方的地址,服务错误了,是否有备份方案?我们是否需要一种负载均衡机制,容错机制?
1.3:微服务架构(Springcloud)是一种解决方案
微服务就是在分布式服务商发展出来的,解决了普通分布式服务存在的一下痛点?
首先微体现在,服务的微型化,服务尽量功能单一纯粹。
springcloud解决了在分布式服务中遇到的问题,通过不同的插件解决这些问题
1:如何管理这些微服务?(服务中心 注册服务,服务注册 发现 删除)
2:他们之间如何通信?(restful:http和json rpc)
3:客户端怎么调用?(网关)
4:微服务本身出问题了,比如停机了,如何解决?(服务容错:负载均衡、断路器、后背、舱壁)
5:调用链路怎么跟踪日志排错?(链路追踪)
2:总结
springcloud 解决了分布式服务的服务发现,服务管理调用、异常跟踪、负载等等问题。解决每一个问题都是通过不同的组件实现的,下一章通过案例介绍不同的组件的作用。