一、简介
1.1 微服务定义(微服务简介)
完成某个特定的功能模块应用,如订单模块、用户模块等。
1.2 好处与坏处(微服务好处与坏处)
好处:
单个微服务应用便于开发和维护
开发团队自由选择技术
独立部署不影响其他服务,可快速、持续化部署
可拓展性强,不影响其他业务
坏处:
项目复杂性高了,项目间通讯,依赖,部署,监控比之前单项目应用指数级增加
1.3 主流开源技术
主要有 SpringCloud 、Dubbo、Spring Cloud Alibaba。当下流行的RPC框架,各自都集成了服务发现和治理组件。
选用SpringCloud 原因:上手快,组件多,文档多
二、常用组件介绍
2.1 版本介绍(版本对应明细)
Spring Boot是Spring的一套快速配置脚手架,可以快速开发单个微服务。Spring Cloud是一个基于Spring Boot实现的一系列框架的集合,用来提供全局的服务治理方案。Spring Cloud要基于Spring Boot来实现,离不开Spring Boot
版本对应关系 如下
2.2 常用组件介绍(spring cloud 常用组件介绍)
Spring Cloud设计之初就考虑满足大部分互联网公司的架构演化的功能,如 注册中心,配置中心,网关,数据监控,负载均衡,断路器。
--- 可独立部署
注册中心(Spring Cloud Eurake):提供服务注册和发现功能,可单节点,多节点部署
配置中心(Spring Cloud Config):配置文件统一配置管理,实时获取远程仓库改动文件
网关(Spring Cloud Gateway):各服务请求的统一入口,进行服务路由,鉴权,限流,token校验
数据监控(Spring Cloud Sleuth/ZipKin): 分布式数据监控,查看全链路访问信息,后续分析
---- 集成使用
负载均衡( Spring Cloud Ribbon):基于HTTP和TCP的客户端负载均衡工具,FeignClient已集成
断路器(Hystrix):防止业务服务出现级联失败,被调用服务失败一定阈值时(Hystrix中的默认值为5秒内的20次故障),自动打开,FeignClient已集成该组件。Hystrix dashboard 组件中, Turbine Hystrix 的熔断情况
消息总线(Spring Cloud Bus):通知服务方获取更改后文件,配合 /actuator/bus-refresh接口 实现热部署功能
三、微服务具体应用
目公司主要使用 G版本 (业务架构图)