内蒙建设厅投诉网站,低价建设手机网站,开一家网站建设公司要多少钱,百度最新秒收录方法2021注册中心eureka服务端客户端负载均衡nacos服务端客户端nacos分级存储模型配置集群属性nacos环境隔离-namespace临时实例和非临时实例Eureka和Nacos的异同负载均衡策略饥饿加载eureka 服务端
依赖
!-- eureka注册中心服务端依赖--dependenciesdepe…
注册中心eureka服务端客户端负载均衡nacos服务端客户端nacos分级存储模型配置集群属性nacos环境隔离-namespace临时实例和非临时实例Eureka和Nacos的异同负载均衡策略饥饿加载eureka 服务端
依赖
!-- eureka注册中心服务端依赖--dependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId/dependency/dependencies配置项
server:port: 10086spring:application:name: eurekaservereureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka启动项
EnableEurekaServer
SpringBootApplication
public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class,args);}
}
客户端
依赖
!-- eureka注册中心客户端依赖--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency配置项
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka/负载均衡
消费者该如何获取服务提供者具体信息?
服务提供者启动时向eureka注册自己的信息eureka保存这些信息消费者根据服务名称向eureka拉取提供者信息
如果有多个服务提供者消费者该如何选择
服务消费者利用负载均衡算法从服务列表中挑选一个
消费者如何感知服务提供者健康状态?
服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态eureka会更新记录服务列表信息心跳不正常会被剔除消费者就可以拉取到最新的信息
nacos 在项目父依赖文件中引入
!-- nacos依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.2.5.RELEASE/versiontypepom/typescopeimport/scope/dependency服务端
服务端启动nacos安装目录bin文件夹下打开命令窗口startup.cmd -m standalone端口修改修改nacos安装目录conf中的application.properties中的server.port
客户端
引入依赖 !-- nacos注册中心依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency配置项
spring:cloud:#nacos端口配置nacos:server-addr: localhost:8840nacos分级存储模型
服务-集群-实例
配置集群属性
修改服务生产者配置文件
spring:cloud:#nacos端口配置nacos:server-addr: localhost:8840discovery: #集群属性cluster-name: HZ优先访问集群修改消费者者配置文件同时修改负载均衡规则为com.alibaba.cloud.nacos.ribbon.NacosRule
spring:cloud:#nacos端口配置nacos:server-addr: localhost:8840discovery:cluster-name: HZ #集群名称设置负载均衡权重nacos特有 nacos环境隔离-namespace
nacos中服务存储和数据存储最外层都是namespace的东西用来做最外层隔离 概念
namespace用来做环境隔离每个namespace都有唯一id不同namespace下的服务不可见
实现 4. 在nacos控制台命名空间中可以创建namespace用来隔离不同环境 5. 修改消费者的application.yml配置添加namespace
spring:cloud:nacos:discover:namespace: #命名空间ID临时实例和非临时实例
spring:cloud:nacos:discover:ephemeral: false # 设置为非临时实例Eureka和Nacos的异同
同
支持服务注册和拉取支持服务提供者心跳方式做健康监测
异
nacos服务端支持主动检测提供者健康状态临时实例采取心跳模式非临时实例采取主动检测模式Nacos临时实例心跳不正常会被剔除非临时实例不会Nacos支持服务列表变更的消息推送模式服务列表更新更及时Nacos集群默认采用AP方式当集群中存在非临时实例时采用CP模式Eureka采用AP模式
负载均衡策略
方案一在客户端启动类中添加
/*修改负载均衡策略写法方案一适用于全局*/Beanpublic IRule randomRule(){return new RandomRule();}方案二客户端配置项中添加
# 修改负载均衡策略写法方案二
userservice:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule饥饿加载 # 饥饿加载
ribbon:eager-load:enabled: true # 开启饥饿加载clients:- userservice #指定饥饿加载名称是数组# - xxxxservice# - xxxxservice# - xxxxservice