千家信息网

Spring Cloud Eureka集群使用DNS方式进行服务分区的方法

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"Spring Cloud Eureka集群使用DNS方式进行服务分区的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Sprin
千家信息网最后更新 2026年11月02日Spring Cloud Eureka集群使用DNS方式进行服务分区的方法

这篇文章主要讲解了"Spring Cloud Eureka集群使用DNS方式进行服务分区的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Spring Cloud Eureka集群使用DNS方式进行服务分区的方法"吧!

Eureka注册中心的配置方式有几种
网上常见的配置方式分为
一、使用defaultZone,这种没有分区的概念,就一个区,所有的服务都会使用defaultZone配置的serverUrl进行服务注册发现。网上有很多文章这里不再赘述
二、集群的配置方式有两种一种是配置文件的方式,一种是DNS的方式
这里面还要提到一个分区的概念 Region和Zone,这里 芋道源码 http://www.iocoder.cn/Eureka/eureka-client-init-second/?sf&2017-11-01和周立http://www.itmuch.com/spring-cloud-1/的文章里都有描述,
二、1.第一种配置文件的方式,这种也是网上文件介绍比较全面的一种
SpringCloudEureka进行服务分区:https://www.jianshu.com/p/2ca32773b3e5 和
eureka集群的两种配置方式:配置文件方式和Dns方式http://www.cnblogs.com/relinson/p/eureka_ha_config_properties_and_dns.html
这两篇文章也介绍的比较清楚
重点是配置region, 配置availability-zones,这个要注意节点的顺序前后,还有就是配置service-url,基本上也可以实现了,但是这种方式都是需要提前写死的,对于动态增加注册中心进行分区调整都要调整每个eurekaclient的配置,说白了就是每个服务都要修改相应的配置项,所以就引申出DNS的配置方式
二、2.Dns方式配置Eureka集群
这种方式网上介绍的也有,比如这篇文章https://www.cnblogs.com/relinson/p/eureka_ha_use_dns.html
前半部分介绍的也很清晰,也有那么几个重点的配置项,
use-dns-for-fetching-service-urls: true使用dns方式配置
eureka-server-d-n-s-name: XXX.com DNS根域名
region: beijing
eureka-server-u-r-l-context: eureka 配置中心的eureka目录
eureka-server-port: 9999 映射其他eurekaServer的端口,这里注意采用这种方式 server.port和这个端口最好一致
因为dns是控制地址的变化,端口不变,所以不像前面的哪些配置方式可以自己定义url和port。所以每个IP都是用的相同的port进行注册中心服务的部署
这些也是文章中说的比较清楚的配置方式,但是踩坑的过程中发现这些只是讲解了前半部分,后面还有若干细节从网上如何都找不到。下面就来说一说
1、首先EurekaServer和EurekaClient都要设置DNS地址,也就是说注册中心,和其他注册到注册中心的服务,都要现在运行的服务机器上配置私有的DNS服务地址,使得机器能够采用相同的DNS服务地址,本地windows调试就去网络适配器里改IPv4里的DNS即可
2、要配置DNS服务器,以windows的DNS服务器为例,首先建一个域 XXX.com,也就是对应着
eureka-server-d-n-s-name

其次要建一个region例如beijing,然后里面要建一个txt类型的文本,填入3azone.XXX.com 3bzone.XXX.com,相当于一个region下有2个分区
然后还要在region的同级目录建2个域一个3azone,一个3bzone,区域的划分可根据自己的情况命名和划分

3b内也建类似的配置,这样就完成了dns的配置,通过查看Eureka的源码,他的实现是通过寻找
txt.beijing.XXX.com(txt.region.eureka-server-d-n-s-name)这样的方式获取到的
3azone.XXX.com和3bzone.XXX.com中的zone,3azone和3bzone,
然后再去获取 txt.3azone.XXX.com和txt.3bzone.XXX.com中对应的ServiceUrls,的数据,也就是IP地址。
这样服务间就可以获取到固定端口下的不同IP的机子的注册中心服务并相互注册
3.注册中心相互注册后可能会出现 unavailable-replicas的情况,出现这个主要是2个属性造成的
要么就使用IP注册eureka.instance.prefer-ip-address=true,如果不使用IP注册而使用host方式,那么就要配置eureka.instance.hostname: 3azone.XXX.com #非常非常重要,使用host又没配置,就会显示unavailable-replicas,
4.服务中心配置好后,其他client服务也只要配置对应的连接方式即可
eureka:
instance:
prefer-ip-address: true
metadata-map:
zone: 3azone #这个是服务注册优先归属于哪个区
client:
register-with-eureka: true
fetch-registry: true
region: beijing
#开启DNS方式获取serviceUrl,默认为false
use-dns-for-fetching-service-urls: true
#DNS域名,获取其他信息将以该域名为根域名
eureka-server-d-n-s-name: XXX.com
#eureka服务根目录
eureka-server-u-r-l-context: eureka
#连接注册中心端口
eureka-server-port: 9999 #这里一定注册中心的端口,如果不想写死就要配置环境变量来实现了
以上这些步骤只要稍加注意,即可完美的完成eureka基于DNS的方式配置分区集群,且可以动态的添加分区和注册中心数量和位置

感谢各位的阅读,以上就是"Spring Cloud Eureka集群使用DNS方式进行服务分区的方法"的内容了,经过本文的学习后,相信大家对Spring Cloud Eureka集群使用DNS方式进行服务分区的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

配置 方式 服务 集群 端口 地址 方法 文件 文章 也就是 域名 就是 情况 篇文章 学习 清楚 相同 内容 前半部 动态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 广州为想互联网科技有限公司 互联网是第几次科技革命的成果 苏州找大状互联网科技有限公司 金融科技还是互联网 网络科技有限互联网 世界互联网领先科技成果 居家互联网科技有限公司 广西拼得多互联网科技有限公司 上海电发互联网科技有限公司 互联网汽车科技小镇 现代科技和互联网有关系吗 华服互联网科技官网 未来五年的互联网科技 消费医药和互联网科技 科技互联网海报 互联网科技数字货币 广州燕处互联网科技有限公司 易租星互联网科技有限公司 同城互联网络科技 互联网和科技技术 河南真二互联网科技有限公司 广州互联网科技公司 互联网科技视频 安徽鑫晟辉互联网科技 阿里巴巴算科技企业还是互联网 互联网还是高科技吗 世界互联网科技公司市值排名 互联网科技和医药行业 伍佰万互联网科技是干嘛的
0