eureka集群方案:

1.通常我们部署的eureka节点多于两个,根据实际需求,只需要将相邻节点进行相互注册(eureka节点形成环状),就达到了高可用性集群,任何一个eureka节点挂掉不会受到影响。

2.可能会有初学者和我一样,一开始的时候没有完全理解eureka集群的原理,直接把每个eureka节点的url写进配置文件,期望所有的eureka节点进行相互注册。实际上,节点间进行信息同步的时候,只会选取配置文件第一个eureka的url,除非发生url错误,才会依次选取有效url进行信息同步。

3.可能有的童鞋有这样的疑问,eureka节点形成环状以后,相隔的多个节点挂掉,eureka节点的数据就会出现不一致的情况。长话短说,要么忍,要么改变方案。

忍其实也是合理的,毕竟挂掉的eureka节点重新启动后会自动同步数据。

改变方案可以把所有的eureka进行相互注册,但把所有的eureka url都写一遍,这个着实有点令人不爽,万一新增节点,所有的节点都需要改一遍!!

所以我们很自然的想到了是否可以通过dns来解决上面的问题?eureka的开发者当然也想到了这种问题,并提供了基于dns的解方案。

一、搭建DNS服务器(unbutun环境)

1.ubuntu需安装bind9软件包来配置dns-server

 apt-get install bind9

2.配置dns

2.1添加zone

vim /etc/bind/named.conf.local 加入以下配置,可参考/etc/bind/zones.frc1918中的格式

"eureka.com" { type master; file "/etc/bind/db.eureka.com"; };

2.2创建db.eureka.com文件(需要和2.1添加的file文件同名)

cp db.local db.eureka.com

2.3修改db.eureka.com

添加以下内容

txt.huabei.huabei  IN  TXT "huabei.eureka.com"

txt.huabei   IN TXT "192.168.0.1"  "192.168.0.2"  "192.168.3"

2.4修改named.conf.options配置文件,这里选用循环给出结果的方式

rrset-order { order cyclic; };

3.修改域名解析配置文件

vim /etc/resolv.conf

加入nameserver 192.168.0.1

注意nameserver顶格写 ip可配置本机ip

4.重启服务

/etc/init.d/bind9 restart

二、eureka集群配置

spring:
  application:
   name: eureka-server
server:
  port: 8081
eureka:
  environment: alpha
  client:
    region:  huabei
    availability-zones:
      huabei: hb10
    eureka-server-d-n-s-name: huabei.eureka.com
    use-dns-for-fetching-service-urls: true
    eureka-server-port: 8081

三、总结

笔者也是首次使用spring-cloud,网上有很多适合入门的使用文档,但在实际项目应用中,我们需要进一步挖掘spring-cloud的特性。后续我继续分享关于eureka的相关知识,比如如何使用region、zone等。

基于dns搭建eureka集群的更多相关文章

  1. SpringCloud学习之搭建eureka集群,手把手教学,新手教程

    一.为什么需要集群 上一篇文章讲解了如何搭建单个节点的eureka,这篇讲解如何搭建eureka集群,这里的集群还是本地不同的端口执行三个eureka,因为条件不要允许,没有三台电脑,所以大家将就一下 ...

  2. 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现

    庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介      在第七篇文章<庐山真面目之七微服务架构Consul ...

  3. 基于docker搭建elasticsearch集群

    es集群的搭建 - 基于单机搭建elasticsearch集群见官网 https://www.elastic.co/guide/en/elasticsearch/reference/current/d ...

  4. 基于Dokcer搭建Redis集群搭建(主从集群)

    最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...

  5. 基于 twemproxy 搭建 redis 集群

    概述 由于单台redis服务器的内存管理能力有限,使用过大内存redis服务器的性能急剧下降,且服务器发生故障将直接影响大面积业务.为了获取更好的缓存性能及扩展型,我们将需要搭建redis集群来满足需 ...

  6. SpringCloud搭建Eureka集群

    第一部分:搭建Eureka Server集群 Step1:新建工程,引入依赖 依赖文件pom.xml如下 <?xml version="1.0" encoding=" ...

  7. 基于pgpool搭建postgresql集群

    postgresql集群搭建 基于pgpool中间件实现postgresql一主多从集群部署,这里用两台服务器作一主一从示例 虚拟机名 IP 主从划分 THApps 192.168.1.31 主节点 ...

  8. 基于pgpool搭建postgressql集群部署

    postgresql集群搭建 基于pgpool中间件实现postgresql一主多从集群部署,这里用两台服务器作一主一从示例 虚拟机名 IP 主从划分 THApps 192.168.1.31 主节点 ...

  9. 搭建Eureka集群

    1.pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

随机推荐

  1. Java仪器数据文件解析-PDF文件

    一.概述 使用pdfbox可生成Pdf文件,同样可以解析PDF文本内容. pdfbox链接:https://pdfbox.apache.org/ 二.PDF文本内容解析 File file = new ...

  2. guava cache使用和源码分析

    guava cache的优点和使用场景,用来判断业务中是否适合使用此缓存 介绍常用的方法,并给出示例,作为使用的参考 深入解读源码. guava简介 guava cache是一个本地缓存.有以下优点: ...

  3. 自创最精简的python装饰器

    个人心血原创,欢迎转载,请注明作者和出处.否则依法追究法律责任!!!! author:headsen  chen date:2018-03-21  10:37:52 代码: 代码解析过程:1,def ...

  4. 部署openstack的官网文档解读mysql的配置文件

    部署openstack的官网文档解读mysql的配置文件(使用与ubutu和centos7等系统) author:headsen chen  2017-10-12 16:57:11 个人原创,严禁转载 ...

  5. python作业01

    1.编译型语言在应用源执行前,需要先通过编译将程序源代码翻译为可被硬件平台直接运维的二进制机器码,编译好的二进制执行文件仅能在对应平台运行.因此不依赖解释器,执行效率高,跨平台性差.常见的编译型语言: ...

  6. [POJ1050] To the Max 及最大子段和与最大矩阵和的求解方法

    最大子段和 Ο(n) 的时间求出价值最大的子段 #include<cstdio> #include<iostream> using namespace std; int n,m ...

  7. 笔记:Eclipse 安装 m2eclipse 插件

    M2eclipse 插件 Eclipse 下一款十分强大的 Maven 插件,可以访问 http://m2eclipse.sonatype.org 了解更多该项目的信息,如果需要安装该插件可以按照如下 ...

  8. RabbitMQ 消息确认与公平调度消费者

    一.消息确认 为了确保消息一定被消费者处理,rabbitMQ提供了消息确认功能,就是在消费者处理完任务之后,就给服务器一个回馈,服务器就会将该消息删除,如果消费者超时不回馈,那么服务器将就将该消息重新 ...

  9. html-简单的简历表制作

    代码如下: <!DOCTYOE html> <html> <head> <meta charset='UTF-8'/> <title>课后作 ...

  10. 【Python】 垃圾回收机制和gc模块

    垃圾回收机制和gc模块 Py的一个大好处,就是灵活的变量声明和动态变量类型.虽然这使得学习py起来非常方便快捷,但是同时也带来了py在性能上的一些不足.其中相关内存比较主要的一点就是py不会对已经销毁 ...