wordpress更改链接后网站打不开,一键生成个人网站,地区网站建设,无锡企业网上迁移上一篇文章中#xff0c;Spring Boot 整合 Dubbo3 Nacos 2.4.0 进行了简单的集成使用#xff0c;此文简单进阶并记录踩坑日常#xff1b; Nacos 2.4.0 增加鉴权的配置Nacos 2.4.0 配置 MySQLNacos2.4.0 的热更新Dubbo3 自动负载Dubbo3 的重试和超时机制踩坑记录
一、Nacos… 上一篇文章中Spring Boot 整合 Dubbo3 Nacos 2.4.0 进行了简单的集成使用此文简单进阶并记录踩坑日常 Nacos 2.4.0 增加鉴权的配置Nacos 2.4.0 配置 MySQLNacos2.4.0 的热更新Dubbo3 自动负载Dubbo3 的重试和超时机制踩坑记录
一、Nacos 2.4.0 增加鉴权的配置 1.1、修改nacos的配置文件application.properties
cd ../nacos/conf
vim application.properties1.2、启动报错 1.3、增加账号和用户名的配置
在dubbo3-provider项目的application.yaml文件中增加username和password的配置 在 nacos的dubbo3-provider配置中增加username和password的参数
1.4、启动成功 1.5、consumer 进行同样修改启动成功 二、Nacos 2.4.0 配置 MySQL
nacos2.4.0默认使用内置的 Derby数据库实际使用中更多会使用 MySQL 数据库 重启后启动成功
三、Nacos2.4.0 的热更新
NacosValue(value ${dubboParams}, autoRefreshed true)
private String dubboParams;配置文件中 增加 nacos.config.autoRefresh true
详细可看源码中配置生效
四、Dubbo3 自动负载 新增模块 dubbo3-provider2 模块内容和dubbo3-provider一致只是修改了部分配置此处说明修改部分全部源码可在文末查看。 1、新增 nacos 配置
server:port: 5657dubbo:application:id: tyron-dubbo3-providername: tyron-dubbo3-providerserialize-check-status: WARNprotocol:id: dubboname: dubbohost: 127.0.0.1port: 7789serialization: hessian2registry:address: nacos://${nacos.config.server-addr}parameters.namespace: ${nacos.config.namespace}parameters.username: ${nacos.config.username}parameters.password: ${nacos.config.password}dubboParams: tyron-dubbo3-provider22、修改 application.yaml
nacos:config:# 指定命名空间namespace: 0f0809bb-4b47-****-1e7deb1d7ad2#配置服务地址server-addr: ******:8848username: nacospassword: nacos#data-ids 为新增加的data-iddata-ids: dubbo3-provider2#配置类型type: yaml#是否启动刷新配置autoRefresh: true#运行时启用bootstrap:enable: true3、nacos 服务列表中实例数2 五、Dubbo3 的重试和超时机制
// 生产者代码 dubbo3-provider
DubboService(version 1.0.0)
public class DemoServiceImpl implements DemoService {NacosValue(value ${dubboParams}, autoRefreshed true)private String dubboParams;private AtomicLong atomicLong new AtomicLong(0);/*** 第一次调用时睡眠时间为1秒第二次调用时为900毫秒*/Overridepublic String getString() {long l atomicLong.incrementAndGet();System.out.println(atomicLong.incrementAndGet() l);try {Thread.sleep(1000 - (100 * l));} catch (Exception e) {e.printStackTrace();}return dubboParams;}
}// 消费者代码dubbo3-consumer 增加超时时间和重试次数
RestController
public class DemoConsumer {// 引用远程服务超时时间1000ms重试次数1次DubboReference(version 1.0.0, timeout 1000, retries 1)private DemoService demoService;GetMapping(/tyron-test)public String tyronTest() {return demoService.getString();}
}接口调用成功日志打印
六、踩坑记录 由于nacos在服务器中部署搭建好了启动报错。 1、防火墙添加端口
java.lang.RuntimeException: Can not create registry service-discovery-registry://*******:8848/org.apache.dubbo.registry.RegistryService?applicationtyron-dubbo3-providerdubbo2.0.2executor-management-modeisolationfile-cachetrueinterfaceorg.apache.dubbo.registry.RegistryServicenamespace0f0809bb-4b47-4458-aaa4-1eeb1d7ad2pid13008registerfalseregistrynacosrelease3.2.9serialize.check.statusWARNat org.apache.dubbo.registry.support.AbstractRegistryFactory.getRegistry(AbstractRegistryFactory.java:105) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.registry.RegistryFactoryWrapper.getRegistry(RegistryFactoryWrapper.java:33) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.registry.RegistryFactory$Adaptive.getRegistry(RegistryFactory$Adaptive.java) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.registry.integration.RegistryProtocol.getRegistry(RegistryProtocol.java:487) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:294) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.rpc.protocol.ProtocolSecurityWrapper.export(ProtocolSecurityWrapper.java:84) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:79) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:66) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:58) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.export(ProtocolSerializationWrapper.java:50) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.rpc.protocol.InvokerCountWrapper.export(InvokerCountWrapper.java:42) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java) ~[dubbo-3.2.9.jar:3.2.9]at org.apache.dubbo.config.ServiceConfig.doExportUrl(ServiceConfig.java:944) ~[dubbo-3.2.9.jar:3.2.9] 看了网上教程是防火墙端口为开放需要配置三个端口地址9848、9849、7848 nacos2.X版本无法注册、注册失败的几个原因以及解决方案踩坑避雷_nacos开启权限校验后无法注册-CSDN博客 部署手册概览
2、数据库添加用户数据
仔细比较 2.4 版本的初始化MySQL脚本和 2.3 版本的初始化 MySQL脚本2.3多了两句用户相关的SQL; https://github.com/alibaba/nacos/blob/2.3.0/config/src/main/resources/META-INF/nacos-db.sql https://github.com/alibaba/nacos/blob/2.4.0/config/src/main/resources/META-INF/mysql-schema.sql
INSERT INTO users (username, password, enabled) VALUES (nacos, $2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu, TRUE);
INSERT INTO roles (username, role) VALUES (nacos, ROLE_ADMIN);七、参考
Dubbo入门项目搭建【Dubbo3.2.9、Nacos2.3.0、SpringBoot 2.7.17、Dubbo-Admin 0.6.0】_哔哩哔哩_bilibili