《spring cloud与Docker微服务架构实战》读书笔记
微服务越来越火,用与不用,先了解再说。微服务可以看作是把复杂的大型软件(单体应用)采取化整为零的措施,转换成一个个的小型服务提供和原来单体服务相同功能的一种新型模式。
为什么使用微服务?先看看单体服务的弊端:
1) 随着软件越来越复杂,代码的体积也越来越大,开发,维护都越来越麻烦
2) 部署的时候,一个单体应用都要停止服务
3) 一个应用中,不可能出现多种设计语言
4) 系统越大,出问题的几率就越高
5) 不同的模块,对资源的需求不同,有的需要IO,增加内存,有的需要CPU等
使用微服务就可以解决上面的问题了
微服务是每个服务都单独部署,有其自身的问题
1) 原来的一个项目现在分成了很多项目,运维复杂
2) 分布式系统需要进行通讯
3) 接口的调用,如果有变动,一些依赖于此的应用要感知
spring家族提供了Spring boot,Spring Cloud框架用来实现微服务
开发细节.....
使用Docker提供自动化部署工作
使用Rest协议进行开发
使用Eureka进行服务的注册和发现
开发细节......
使用Ribbon实现负载均衡
开发细节......
hystrix容错处理
微服务是各个小的服务之间协作完成,一个服务出现问题,如果处理不好,就可能出现雪崩现象,所以要有相关的机制避免这种现象的出现,hystrix提供了容错处理:
(1)可以通过设置网络设置超时
(2)检测访问错误的频繁度,设置断路
(3)问题解除后,关闭断路器,自动恢复
(4)资源隔离,连接池没有了连接,请求者放弃这次请求
(5)提供监控
默认的是线程的隔离,这种适合并发量不是太高的情况;还有就是samaphore的信号灯隔离方式
Zuul提供了统一的网关
(1)易于监控
(2)易于认证
(3)减少交换

浙公网安备 33010602011771号