微服务总结

1.微服务
定义:

micro service 微服务是一种服务架构


特点:

基于单体应用基于业务进行服务拆分,拆分出来的每一个服务独立项目 独立运行 独立部署 运行在自己的计算机进程里面 针对拆分出来的微服务都是基于分布式管理


2.为什么使用微服务
优势:

1.拆分每个服务各司其职 解耦合

2.每个服务高度自治(管理团队)

3.不会因为一个问题导致其他服务不可用

4.新员工只面对单一服务,不用面对整体代码

5.方便增加新的业务功能


缺点:

1.开发人员面对微服务部署复杂性

2.开发人员面对分布式系统复杂性(服务间通信 请求负载均衡 高可用)


3.springcloud 微服务工具集
作用:

提供了一站式微服务工具集(组件),帮助我们解决了分布式系统中各种问题(服务注册,服务间通信。。。)让开发人员更专注自己业务开发


4.springcloud工具集核心组件
a. 服务注册中心:

用来管理微服务架构中每一个服务健康状态以及服务元数据存储


Eureka Netflix 、 Consul(GO)、zookeeper(JAVA)、Nacos(alibaba)


b.服务间通信问题 两种手段 Http rest、RPC: Dubbo


两种通信方式:
1.RestTemplate 如何解决请求负载均衡问题 Ribbon(Netflix)实现请求负载均衡
2.OpenFeign(springcloud)======>Feign(netflix)伪http客户端 实现请求负载均衡,解决restTemplate路径写死,灵活(根据服务ID去注册中心调,在本地缓存中采用轮询的方式选择一个)


c.服务熔断器:

用来解决服务雪崩 Hystrix(netflix)豪猪&Hystrix Dashboard 状态:进入维护模式


    服务雪崩问题:

调用链路中某个服务不可用,并导致上游服务不可用,并将这种不可用逐渐放大最终导致整个系统服务不可用这种成为服务雪崩


    服务熔断:

当服务触发异常,或者执行业务逻辑超时等待,触发服务熔断,一旦触发熔断之后,当前服务不可用 自动触发 


    服务降级:

站在系统整体负荷角度进行系统考虑 一般都是认为干预 服务熔断属于服务降级的一种


d.服务网关组件:

用来统一服务总入口(路由转发+过滤) SpringCloud GateWay(路由转发 请求负载均衡)断言 predicate 过滤filters


e.统一配置中心:

用来将服务的配置文件进行远端仓库统一管理 


config组件

ConfigServer(用来获取远端仓库配置,并存入本地仓库)、 ConfigClient(根据configserver读取自身的配置)


bus组件 消息总线

作用:通过MQ将微服务的所有结点连接到一起,形成消息总线,通过消息总线实现自动配置刷新

 

你可能感兴趣的:(笔记,微服务,java,spring,cloud)