一、简述
为什么要使用微服务?传统的服务架构,多为单体服务架构,存在高耦合、容错性差、不易于拓展、系统性能很容易达到瓶颈!
微服务主要就是杜绝单体服务的一些弊病,力求高可用、性能提升、容错性高,便于管理、排查和维护服务。当然并不是所有的业务都适合用微服务,例如系统应用的业务场景比较简单、功能单一、用户量少的就没有必要采用微服务。
微服务的特点,服务原子拆分并对外提供HTTP接口调用
优点:
1) 原子拆分服务,及微服务的独立打包、部署和升级,缩短交付时间 并降低了运维成本;
2)微服务遵循单一原则。微服务间采用Restful等轻量协议传输。
缺点:
1)微服务过多,服务治理成本高,系统维护难度较大;
2)分布式系统开发的技术成本高(容错、分布式事务等)
二、springCloud介绍
Spring Cloud是一系列框架的有序集合。通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
如下图,来目睹springCloud架构体系
- 服务网关
服务转发、身份验证、监控、负载均衡、缓存等; - 注册中心
服务注册、发现、健康检查、路由等; - 配置中心
各微服务的配置文件信息; - 消息总线
配置文件改变通知对应服务需要改变的配置信息