天天看点

微服务技术与SpringCloud

微服务就是一种经过良好架构设计的分布式架构方案

微服务是分布式架构的一种,要把服务做拆分,拆分的过程中会产生各种各样的问题。

SpringCloud解决了服务拆分时的服务治理问题。

微服务技术栈包括:

注册中心 拉取或者注册服务信息

配置中心 拉取配置信息

服务网关  校验身份 请求路由 负载均衡

分布式缓存 用户请求先到缓存 在到数据库

分布式搜索 用户集群进行分布式搜索

消息队列  异步通信提高服务并发

分布式日志服务 用于定位异常 统计分析

系统监控和链路追踪 

数据库 到Jenkins 到kubernetes、docker、rancher等。

微服务治理

异步通信技术

缓存技术

搜索技术

DevOps(持续集成)

微服务架构演变: 单体架构 所有功能集中在一个项目中开发 打包部署

                   架构简单 部署成本低  缺点是耦合度高

         分布式架构 根据业务功能对系统进行拆分 每个业务模块独立项目开发,成为一个服务

                   降低服务耦合 有利于服务升级拓展 缺点 部署复杂 远程调用

             需要考虑服务拆分粒度如何?服务集群地址如何维护?如何远程调用?服务健康状态如何?

微服务就是一种经过良好架构设计的分布式架构方案,微服务的架构特征:

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    流控 降级 保护