微服务技术与SpringCloud
微服务是分布式架构的一种,要把服务做拆分,拆分的过程中会产生各种各样的问题。
SpringCloud解决了服务拆分时的服务治理问题。
微服务技术栈包括:
1.微服务技术
注册中心 拉取或者注册服务信息
配置中心 拉取配置信息
服务网关 校验身份 请求路由 负载均衡
分布式缓存 用户请求先到缓存 在到数据库
分布式搜索 用户集群进行分布式搜索
消息队列 异步通信提高服务并发
分布式日志服务 用于定位异常 统计分析
系统监控和链路追踪
2.持续集成
数据库 到Jenkins 到kubernetes、docker、rancher等。
微服务技术栈详细内容
微服务治理
异步通信技术
缓存技术
搜索技术
DevOps(持续集成)
1.SpringCloud微服务架构
微服务架构演变: 单体架构 所有功能集中在一个项目中开发 打包部署
架构简单 部署成本低 缺点是耦合度高
分布式架构 根据业务功能对系统进行拆分 每个业务模块独立项目开发,成为一个服务
降低服务耦合 有利于服务升级拓展 缺点 部署复杂 远程调用
需要考虑服务拆分粒度如何?服务集群地址如何维护?如何远程调用?服务健康状态如何?
微服务就是一种经过良好架构设计的分布式架构方案,微服务的架构特征:
1.单一职责:微服务拆分粒度更小,每一个微服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。
2.面向服务:微服务对外暴露业务接口
3.自治:团队独立 技术独立 数据独立 部署独立
4.隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。
高内聚 低耦合 降低服务之间影响的范围 避免集群的故障
微服务的结构
代表 SpringCloud和Dubbo 和SpringCloudAlibaba
Dubbo
注册中心 Zookeeper Redis
服务器远程调用 Dubbo
配置中心 没有
服务网关 没有
服务器监控和保护 dubbo-admin ,功能弱
SpringCloud
注册中心 Eureka Consul
服务器远程调用 Feign (http协议 controller)
配置中心 SpringCloudConfig
服务网关 SpringCloudGetway / Zuul
服务器监控和保护 Hystrix
服务链路监控 OpenFeign Dubbo
SpringCloudAlibaba
注册中心 Eureka Nacos 服务注册发现
服务器远程调用 Feign (http协议 controller)/ dubbo 远程调用
配置中心 SpringCloudConfig/Nacos 统一配置管理
服务网关 SpringCloudGetway / Zuul 统一网关路由
服务器监控和保护 Sentinel 流控 降级 保护