SpringCloudyoyolllll
2021-11-04 14:40:34 2 举报
yoyoll
作者其他创作
大纲/内容
order-server
@EnableEurekaServer
RibbonLoadBanlancerClient
ephemeral:false
解决服务挂掉无法调用的问题
1、nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时采用主动检测模式2、临时实例心跳不正常会被剔除,非临时实例则不会被剔除3、nacos支持服务列表变更的消息推送模式,服务列表更新更及时4、nacos集群默认采用ap方式,当集群中存在非临时实例时,采用cp模式;eureka采用ap方式
Ribbon负载均衡
拿给
实例
二级
提供者
http://userservice/user/1
修改application.yml文件,userservice: ribbon: NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则NacosRule负载均衡策略 1、优先选择同集群服务实例列表 2、本地集群找不到提供者,才去其它集群寻找,并且会报警告 3、确定了可用实例列表后,再采用随机负载均衡挑选实例
@LoadBalanced开启负载均衡
localhost:8081localhost:8082
开启eureka的自动装配
1、都支持服务注册和服务拉取2、都支持服务提供者心跳方式健康检测
user-service8082
拉取userservice
共同点
相对于具体的业务来说,一个服务既可以是消费者也可以是提供者
一级
非临时实例
获取url中的服务id
远程调用
重写intercept方法
配置集群
临时实例(默认)
Nacos服务分级存储模型
IRule
三级
外层隔离namespace
eureka-server注册中心
得到服务名
饥饿加载
心跳续约,每次间隔30秒发送一次
而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载
LoadBalancerInterceptor负载均衡拦截器
服务
user-service8081
硬编码
nacos和eureka的区别
实现
怎么去得到提供者的地址?
记录管理微服务,每个微服务都要在注册中心进行注册eureka检查服务的健康状态
懒加载
DynamicServerListLoadBanlance
拉取服务,获得提供者的信息
RestTemplate
nacos
服务负载均衡
集群
修改负载均衡规则
发送http请求
Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。
消费者利用负载均衡去选取服务
定义负载均衡的规则默认:ZoneAvoidanceRule
根据配置文件来配置
@Bean定义一个新的IRule
Eureka
拦截的动作谁去完成的?
ClientHttpRequestInterceptor
返回服务列表
修改application.yml文件,添加discovery: cluster-name: HZ
实例调用的时候优先选用本地集群
Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高 在nacos控制台编辑里面进行配置1、Nacos控制台可以设置实例的权重值,0~1之间 2、同集群内的多个实例,权重越高被访问的频率越高 3、权重设置为0则完全不会被访问
在nacos创建namespace,生成一个代码在yml中配置namespace
消费者
服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求
不同点
轮询到端口
收藏
收藏
0 条评论
下一页
为你推荐
查看更多
抱歉,暂无相关内容