网站建设公司资讯,可以开发哪些网站,无代码应用搭建平台,高端网站网站设计使用 Nacos 作为注册中心实现自动服务发现
本示例演示 Nacos 作为注册中心实现自动服务发现#xff0c;示例基于 Spring Boot 应用展开#xff0c;可在此查看 完整示例代码
1 基本配置
1.1 增加依赖
增加 dubbo、nacos-client 依赖#xff1a;
dependencies示例基于 Spring Boot 应用展开可在此查看 完整示例代码
1 基本配置
1.1 增加依赖
增加 dubbo、nacos-client 依赖
dependenciesdependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo/artifactIdversion3.3.0/version/dependencydependencygroupIdcom.alibaba.nacos/groupIdartifactIdnacos-client/artifactIdversion2.1.0/version/dependency
/dependencies对于 Spring Boot 应用可以使用如下 spring-boot-starter
dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion3.3.0/version
/dependency
dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-nacos-spring-boot-starter/artifactIdversion3.3.0/version
/dependency1.2 Nacos 版本
Nacos 版本映射关系
Dubbo推荐 Nacos 版本Nacos 兼容范围3.3.02.2.32.x3.2.212.1.02.x3.1.112.0.92.x3.0.102.0.92.x2.7.211.x1.x2.6.01.x1.x
1.3 配置并启用 Nacos
# application.yml (Spring Boot)
dubboregistryaddress: nacos://localhost:8848register-mode: instance # 新用户请设置此值表示启用应用级服务发现可选值 interface、instance、all默认值为 all未来版本将切换默认值为 instance或
# dubbo.properties
dubbo.registry.addressnacos://localhost:8848
dubbo.registry.register-modeinstance或
dubbo:registry addressnacos://localhost:8848 register-modeinstance/2 高级配置
2.1 认证
# application.yml (Spring Boot)
dubboregistryaddress: nacos://localhost:8848?usernamenacospasswordnacosregister-mode: instance或
# dubbo.properties
dubbo.registry.address: nacos://nacos:nacoslocalhost:8848
# 新用户请设置此值表示启用应用级服务发现可选值 interface、instance、all默认值为 all未来版本将切换默认值为 instance
dubbo.registry.register-modeinstance2.2 自定义命名空间
# application.yml (Spring Boot)
dubbo:registry:address: nacos://localhost:8848?namespace5cbb70a5-xxx-xxx-xxx-d43479ae0932register-mode: instance # 新用户请设置此值表示启用应用级服务发现可选值 interface、instance、all或者
# application.yml (Spring Boot)
dubbo:registry:address: nacos://localhost:8848register-mode: instance # 新用户请设置此值表示启用应用级服务发现可选值 interface、instance、allparameters.namespace: 5cbb70a5-xxx-xxx-xxx-d43479ae09322.3 自定义分组
# application.yml
dubbo:registry:address: nacos://localhost:8848register-mode: instance # 新用户请设置此值表示启用应用级服务发现可选值 interface、instance、allgroup: dubbo如果不配置的话group 是由 Nacos 默认指定。group 和 namespace 在 Nacos 中代表不同的隔离层次通常来说 namespace 用来隔离不同的用户或环境group 用来对同一环境内的数据做进一步归组。 2.4 注册接口级消费者
Dubbo 3.0.0 版本以后增加了是否注册消费者的参数如果需要将消费者注册到 nacos 注册中心上需要将参数(register-consumer-url)设置为true默认是false。
# application.yml
dubbo:registry:register-mode: instance # 新用户请设置此值表示启用应用级服务发现可选值 interface、instance、alladdress: nacos://localhost:8848?register-consumer-urltrue或者
# application.yml
dubbo:registry:address: nacos://localhost:8848register-mode: instance # 新用户请设置此值表示启用应用级服务发现可选值 interface、instance、allparameters.register-consumer-url: true2.5 更多配置
参数名中文描述默认值username连接Nacos Server的用户名nacospaasword连接Nacos Server的密码nacosbackup备用地址空namespace命名空间的IDpublicgroup分组名称DEFAULT_GROUPregister-consumer-url是否注册消费端falsecom.alibaba.nacos.naming.log.filename初始化日志文件名naming.logendpoint连接Nacos Server指定的连接点可参考文档空endpointPort连接Nacos Server指定的连接点端口可以参考文档空endpointQueryParamsendpoint查参数询空isUseCloudNamespaceParsing是否解析云环境中的namespace参数trueisUseEndpointParsingRule是否开启endpoint 参数规则解析truenamingLoadCacheAtStart启动时是否优先读取本地缓存truenamingCacheRegistryDir指定缓存子目录位置为 …/nacos/{SUB_DIR}/naming空namingClientBeatThreadCount客户端心跳的线程池大小机器的CPU数的一半namingPollingThreadCount客户端定时轮询数据更新的线程池大小机器的CPU数的一半namingRequestDomainMaxRetryCountclient通过HTTP向Nacos Server请求的重试次数3namingPushEmptyProtection在服务没有有效健康实例时是否开启保护开启后则会使用旧的服务实例falsepush.receiver.udp.port客户端UDP的端口空
在nacos-server1.0.0版本后支持客户端通过上报一些包含特定的元数据的实例到服务端来控制实例的一些行为。
参数名中文描述默认值preserved.heart.beat.timeout该实例在不发送心跳后从健康到不健康的时间毫秒15000preserved.ip.delete.timeout该实例在不发送心跳后被服务端下掉该实例的时间(毫秒)30000preserved.heart.beat.interval该实例在客户端上报心跳的间隔时间(毫秒)5000preserved.instance.id.generator该实例的id生成策略值为snowflake时从0开始增加simplepreserved.register.source注册实例注册时服务框架类型例如Dubbo,Spring Cloud等空
这些参数都可以类似 namespace 的方式通过通过参数扩展配置到 Nacos如
dubbo.registry.parameters.preserved.heart.beat.timeout50003 工作原理
在前面的一节中我们讲解了应用级服务发现与接口级服务发现的区别以下是两种模式在 Nacos 实现中的具体存储结构。
3.1 Dubbo2 注册数据
随后重启您的 Dubbo 应用Dubbo 的服务提供和消费信息在 Nacos 控制台中可以显示 如图所示服务名前缀为 providers: 的信息为服务提供者的元信息consumers: 则代表服务消费者的元信息。点击“详情”可查看服务状态详情 3.2 Dubbo3 注册数据
应用级服务发现的 “服务名” 为应用名 Dubbo3 默认采用 “应用级服务发现 接口级服务发现” 的双注册模式因此会发现应用级服务应用名和接口级服务接口名同时出现在 Nacos 控制台可以通过配置 dubbo.registry.register-modeinstance/interface/all 来改变注册行为。