Eureka集群搭建
服务注册、发现是微服务架构的关键原理之一,由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就必然引入一个服务注册发现的问题,也就是说服务提供方要注册报告服务地址,服务调用方要能发现目标服务。在我们的微服务架构中我们采用了Eureka来完成微服务的注册与发现。微服务通过Eureka进行注册,服务调用方通过Eureka找到目标服务。由于服务提供方以集群方式提供服务,Eureka也采用集群的方式来提供服务的注册与发现,集群中的Eureka实例之间可以进行数据同步,所有Eureka实例中的服务注册信息都是同步的。那么问题来了,Eureka集群中的实例怎么知道其他实例的存在呢,怎么来发现其他的实例呢?通常的做法是通过DNS,因此我们需要搭建DNS服务器。下面来介绍Euraka集群的搭建过程。
一、搭建DNS服务器(Linux环境下)
1、安装DNS服务器组件,这里我们用的是bind
命令:yum install -y bind bind-chroot bind-utils
2、编辑配置DNS主配置文件
命令:vi /etc/named.conf

3、修改named.rfc1912.zones文件
命令: vi /etc/named.rfc1912.zones
添加所需要的zone

4、添加设置DNS正向解析
修改zone配置文件,正向解析
命令:cd /var/named/
cp named.localhost eureka.com.zone
vi eureka.com.zone
注意:要和主配置文件[/etc/named.rfc1912.zones]里面定义的zone文件名一致

5、启动DNS服务器
命令:service named start
6、测试检测域信息是否正常
检查之前先看下配置文件有没有读取权限
命令:ll /var/named

如果没有读取权限,用chmod +r /var/named/* 命令添加即可

7、重新启动DNS服务器
命令:service named restart
8、DNS服务器地址配置
第一种方式:此方式是暂时修改dns地址,当网络重启之后,则自动清除。
命令:vi /etc/resolv.conf

第二种方式:此方式是永久修改dns地址,当网络重启之后,不会清除。
命令:vi /etc/sysconfig/network-scripts/ifcfg-enp0s25

二、将eureka的dns配置放在jar包外面启动微服务
docker 命令:docker run –e eurekaServerDNSName=域名 镜像
三、EUREKA集群配置
编写Eureka 配置文件(application.yml)

其中 eureka 的配置分为client 端和server 端:
Eureka client配置中,eurekaServerURLContext: eureka 表示eureka注册中心的路径,默认为http://x.x.x.x:x/eureka/,在eureka的配置文件中加入此配置表
示eureka作为客户端向注册中心注册,从而构成eureka集群。
Eureka server 配置中,enableSelfPreservation: false表示在此eureka服务器中关闭自我保护模式,所谓自我保护模式是指,出现网络分区、eureka在短时间内丢失过
多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka也不会将其删除。默认为true:

自我保护模式默认为开启,这就涉及到阈值因子,默认为0.85,这些在eureka主界面上可以看出:

阈值不能大于最小值,否则将会进入自我保护模式。
以上是eureka集群的搭建过程,在搭建的过程中踩过很多坑,也有很多收获,eureka相关的一些配置项就不在这里赘述了,内容比较多,有必要的话我再另外单独介绍这部分内容。
Eureka集群搭建的更多相关文章
- 微服务架构:Eureka集群搭建
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 服务注册.发现是微服务架构的关键原理之一,由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就必 ...
- SpringCloud学习之—Eureka集群搭建
Eureka集群的搭建 上次说过了在SpringCloud应用中使用Eureka注册中心,用来对服务提供者进行服务注册与发现,但同时,它也是一个"微服务",单个应用使用空间有限,因 ...
- Spring Cloud Eureka 集群搭建 - 以及发现一个 “直觉BUG”
首先解释一下标题所说的“直觉BUG”,这个是我自己的定义.就是我们直觉上认为这是一个BUG,是一个错误,而实际并没有出错. 比如下图: 虽然出现报错信息,但是,整个程序并没有出错.至于原因,图片上的文 ...
- Spring Cloud--实现Eureka的高可用(Eureka集群搭建)实例
将10086注册到10087上: 再在10086服务的基础上复制一个Eureka的服务,端口为10087,将其注册到10086上: application-name的名称保持一致,只是一个服务的两个实 ...
- Eureka集群
Eureka集群搭建 高可用集群配置 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 普通操作 我们再新建两个module microservice-eureka-server-2002 m ...
- SpringCloud——eureka集群
目的: 第一种普通方式 第二种方式骚操作 Eureka自我保护机制 Eureka集群搭建 说的通俗易懂一点就是,同一个项目部署在多个服务器上. 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 今 ...
- spring cloud系列教程第六篇-Eureka集群版
spring cloud系列教程第六篇-Eureka集群版 本文主要内容: 本文来源:本文由凯哥Java(kaigejava)发布在博客园博客的.转载请注明 1:Eureka执行步骤理解 2:集群原理 ...
- springCloud系列教程01:Eureka 注册中心集群搭建
springCloud系列教程包含如下内容: springCloud系列教程01:Eureka 注册中心集群搭建 springCloud系列教程02:ConfigServer 配置中心server搭建 ...
- 基于dns搭建eureka集群
eureka集群方案: 1.通常我们部署的eureka节点多于两个,根据实际需求,只需要将相邻节点进行相互注册(eureka节点形成环状),就达到了高可用性集群,任何一个eureka节点挂掉不会受到影 ...
随机推荐
- ISP模块之RAW DATA去噪(二)--BM3D算法
在正式开始本篇文章之前,让我们一起回顾一下CFA图像去噪的一些基本思路与方法.接着我会详细地和大家分享自己学习理解的BM3D算法,操作过程,它的优缺点,最后会给出算法效果图供参考. 在ISP模块里,研 ...
- log4j教程 7、日志记录级别
org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别. Level 描述 ALL 各级包括自定义级别 DEBUG 指定细粒度信息事件是最有用的应用程序调 ...
- 【Zookeeper】Zookeeper 和他的小伙伴们
ZK实际应用场景.实例:
- SQL SERVER 使用订阅发布同步数据库(转)
一.数据库复制涉及 1.发布服务器: 数据的来源服务器,维护源数据,决定哪些数据将被分发,检测哪些数据发生了修改,并将这些信息提交给分发服务器. 2.分发服务器: 分发服务器负责把从发布服务器拿 ...
- acd - 1403 - Graph Game(博弈 + 二分图最大匹配)
题意:N与P在玩游戏,N有 n1 个点,P有 n2 个点,N的点与P的点之间有 m 条无向边.将一个石子放在当中一点.N先移动石子.沿边移动一次,石子移动前的点及与该点相连的边被删除.接着到P移动石子 ...
- Python列表切成多个/生成多个空列表
li = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18] #arr是被分割的list,n是每个chunk中含n元素. def chunks(arr, n) ...
- JQuery修改对象的属性值
JQuery修改对象的属性值 用到的便是JQuery提供的attr方法,获取属性值的基本结构为:$(obj).attr("属性名"):修改属性值的结构为:$(obj).attr(& ...
- IOS压缩解压缩
#import <zlib.h> 压缩 -(NSData *)compressData:(NSData *)uncompressedData { if ([uncompressedData ...
- LeetCode题目:Best Time to Buy and Sell Stock
原题地址:https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ 解决方法:动态规划,minimun存储的是当前价格中最小的. c ...
- springMVC 【@response 返回对象自动变成json并且防止乱码】 & 【配置支持实体类中的@DateTimeFormat注解】
在springmvc的配置文件中加上这一段即可 <bean class="org.springframework.web.servlet.mvc.annotation.Annotati ...