架构思考
Spring Cloud(Eureka、Ribbno、Hystrix、Feign、Zuul、Config)
Eureka 注册中心
服务注册与发现。
eureka服务器spring boot项目,客户端是服务的注册和消费。
Eureka服务集群相互注册,互相守望,a服务配置指向b,b配置指向a. 集群环境下提供者和消费者通过url注册到多个Eureka服务器,一个提供者服务url填写多个Eureka地址,达到通知注册到多个Eureka集群。
Eureka服务集群:指向对方的路径

提供者配置集群:注册到集群的Eureka

服务注册集群是通过相同的服务名,url配置多个服务地址。调用时通过配置的服务名称调用。
提供者集群:配置相同的服务名,注册到eureka形成eureka提供者集群。

服务自我保护机制心跳机制,各一段时间服务向eureka发心跳,eureka服务界面会出现警告⚠️
保护机制暂时不会注销,应对网络异常,不盲目注销
eureka客户端可以配置发送心跳的时间,超过时间可以将服务提除。
---------------------------
Ribbno
ribbno配合Eureka使用,根据Eureka服务名字调用,负载均衡
fieign, 根据注解和接口调用
负载均衡,服务调用
ribbno解决单点故障(集群高可用)
ribbno通过RestTemplate进行调用实现负载均衡,ribbno对RestTemplate走了封装实现负载均衡
实现复制只有服务提供者配置的服务名称相同,多个相同服务提供者注册到eureka集群,消费者通过RestTemplate调用即可(默认使用轮训的策略,随机,加权等可选)
它是客户端组件,已经集成在Eureka客户端。
支持多种负载均衡算法,也支持自定义算法。属于工具栏框架,不用单独部署,导入依赖直接使用即可
--------------------------
CAP理论


Hystrix
服务熔断
属于工具栏框架,不用单独部署,导入依赖消费端入口方法注解开启直接使用
调用服务时使用注解HystrixCommend,如果出现异常,执行指定的方法,默认超时时间是一秒,可以修改
服务降级
自己服务抛出异常,或者调用的远程服务异常,均衡触发熔断方法,达到熔断降级。
也可以忽略异常,不触发熔断方法。降级可以拿到异常信息,如:500
可以不用注解,使用自定义熔断方法,可以实现异步。

发生熔断获取异常信息

服务监控
创建spring boot Hystrix项目,做为仪表盘监控服务,监控具体的服务,除了需要导入Hystrix依赖外还要导入spring boot健康检查监控依赖

Feign(申明试接口调用)相当Ribbno的简化,基于Ribbno实现的
对Hystrix和ribbno做了整合,简化使用,声明之后直接调用,消费方导入feign依赖,配置文件指定注册中心地址,消费方通过注解调用,@feignClient(服务名),@GetMapping(访问地址)进行调用。

注入调用


Zuul
网关将所有的外部请求经过它的调度实现鉴权、动态路由,
配置文件中配置不同的路由规则路由到不同的服务,可以忽略服务,或者访问路径添加前缀。
可以通过配置path配置映射路径,也可以通过url




Zuul是一个独立的服务是我们服务的统一入口。
config
分布式配置中心(server),是一个独立的微服务应用。
配置文件统一管理,方便维护,配置中心(server)存git上获取配置信息同步到各个需要修改配置文件的微服务(client)。配置问题保存在远程的git仓库,添加依赖的服务进行读取。
本地读取,创建提供配置文件项目,导入confg server依赖,创建配置目录供其他服务读取,读取服务方根据配置文件配置的url地址找读哪个服务地址进行读取。
远程读取,配置问题放在git仓库,confg server从git读取,其他服务从confg server进行读取。
----------------------------------------------------------------------------------------------------------------
Dubbo
分布式服务的优势与不足
模块间分离,经常变动的模块可以单独部署
单体应该随着业务发展体量越来越大,难以维护和扩展
服务间通讯变的复杂
duboo特点:高性能的RPC框架,支持负载均衡、服务注册与发现、高可用扩展、灰度发布、管理监控后台等。

ZooKeeper注册中心
搭建注册中心,创建服务提供者和服务消费者
搭建管理控制台

1.服务提供者导入ZooKeeper和dubbo依赖

2.暴露服务配置服务提供者(指定服务名、注册中心地址、真正需要暴露的接口)

服务提供者启动后dubbo管理后台可以看到启动的服务

配置服务消费这进行调用(配置服务名、注册中心地址、需要调用的接口)

安装配置监控中心

dubbo配置开启启动检查,启动时检查注册中心是否有服务提供者,没有时启动报错

设置调用超时检查

配置具体的方法调用超时

全局配置使用consumer



配置重试次数

幂等接口可以重试

配置多版本(灰度发布)

dubbo直联

负载均衡机制默认随机
1.基于权重的随机负载

2.基于权重的轮训


3.最新活跃数

4.一致性哈希

默认开始随机负载

后台管理修改服务权重

服务降级返回为空(屏蔽掉部分服务)


浙公网安备 33010602011771号