首页 > 编程知识 正文

redis和mysql数据同步,redis集群模式

时间:2023-05-06 06:09:11 阅读:128768 作者:3221

Eureka群集无法同步注册的服务今天正在学习Eureka配置服务,但无论如何,每个Eureka节点都发现了无法同步注册的服务

在网上搜索也找不到结果,以后直接复制别人的配置发现就可以了

比较我的构成就知道问题了。 eureka配置无法使用yaml语法“-”配置服务- URL

必须用“、”进行分割

可以用:替换此配置

eureka : client 3360 service-URL : default zone :-http://localhost 33608761/eureka-http://localhost 33608762/eureka eureka :客户端:服务- URL : default zone :3358 localhost 33608761/eureka,http://localhost:8762/eureka

然后,我们找到了一个名为eureka.client.service-url配置类EurekaClientConfigBean的配置bean

找到serviceUrl后,发现它是MapString、String型。 因为映射值类型不是列表,所以使用yaml中的’-’不会在列表中分析

那个被解析为什么? 激发了好奇心,决定看debug

私有映射,字符串服务=new hashmap (; 找到serviceUrl的set方法并打上断点,了解传入的map是什么样的

debug已启动此服务

发现传递的映射分别为defaultZone、defaultZone.0和defaultZone.1。

我知道默认区域。 defaultZone.0都是第一个值,defaultZone.1是第二个值

如果使用正确的配置

只有一个key defaultZone,value是我们配置的两个地址

请参阅如何将map中以逗号分隔的地址解析为每个eureka服务器的地址。 可以看到EurekaClientConfigBean中存在getEurekaServerServiceUrls的方法。 请参照有名的知识获取eureka服务器的urls

试着在这个方法上加个断点吧

现在获取serviceUrl是我们配置的,根据参数myZone提取结果,如果没有,就使用DEFAULT_ZONE

其实myZone和DEFAULT_ZONE都是defaultZone

获取后,可以看到调用了对serviceUrls进行逗号分割以获取数组

到此为止,一切都可以说,如果我用yaml的“-”配置在名为service-url、serviceUrl的地图上的话

与keydefaultZone对应的value为http://localhost:8761/eureka。 用逗号分割的话果然是这个

时,’拆分的服务URL可以在此获得这两个地址

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。