Eureka 本机集群实现

距离上次发布博客已经一年多了,主要就是因为考研,没时间学习技术的内容,现在有时间继续完成关于代码方面的心得,希望跟大家分享。

今天在做一个 Eureka 的集群实现,我是在本电脑上跑的,感觉这个挺有意思,跟大家介绍一下。

首先介绍一下大概的环境背景,自己使用了三个注册中心来搭建Eureka集群,使用的依赖下面已经列出

XML 复制代码
 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            <version>2.2.5.RELEASE</version>
 </dependency>

接着是创建yml文件并进行简单的配置,代码如下:

java 复制代码
server:
  port: 7001


eureka:
  instance:
    hostname: eureka7001.com
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://eureka7003.com:7003/eureka/,http://eureka7004.com:7004/eureka/
java 复制代码
server:
  port: 7003


eureka:
  instance:
    hostname: eureka7003.com
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7004.com:7004/eureka/
java 复制代码
server:
  port: 7004


eureka:
  instance:
    hostname: eureka7004.com
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://eureka7003.com:7003/eureka/,http://eureka7001.com:7001/eureka/

注意这里我是使用了yml文件,**一定要注意缩进。**如果大家在意的话其实上面三段代码是有内在的逻辑关系的,这里的每个server port所对应的defaultZone都是另外两个的注册中心访问地址,这样就相当于完成了互相的绑定工作,我想这也是集群的一个重要过程体现,下面就是代码运行结果:

这里的DS Replicas就是表示当前的注册中心依赖了的其他注册中心。

在上面的结果实现过程中还有一个比较关键的点就是,本电脑的路径映射问题,这个路径映射也是需要进行配置的,具体的配置文件在自己电脑的如下路径:

使用任意编辑工具对hosts文件进行编辑,加入如下内容完成映射:

java 复制代码
127.0.0.1 eureka7001.com
127.0.0.1 eureka7003.com
127.0.0.1 eureka7004.com

在这里可能存在有文件修改权限的问题,大家记得使用管理员权限进行更改,我这里没遇到这个问题(额,也没有复现问题情景,这个麻烦大家看看别的相关文章的具体解决办法)。

接着创建了一个服务提供者,首先是导入相关的依赖:

XML 复制代码
  <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <version>2.2.5.RELEASE</version>
  </dependency>

这个就是 Eureka 的客户端的依赖,从最后的后缀也比较容易辨别,下面是进行yml文件的配置,代码如下:

java 复制代码
eureka:
  client:
    service-url:
      defaultZone: http://eureka7003.com:7003/eureka/,http://eureka7001.com:7001/eureka/,http://eureka7004.com:7004/eureka/
  instance:
    instance-id: springcloud-provider-8001

这部分的代码主要就是完成客户端到服务端也就是上面代码之间的访问,主要就是配置了客户端对Eureka 集群的访问地址,完成上面的内容就可以达到以下效果。

可以看到客户端会在三个注册中心都有显示,这代表我们已经完成了向 Eureka 集群注册的功能。

还有一个就是大家可以看到最后一张图片上有两行红字,这个大家不用担心,我先复制下来:

java 复制代码
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

这是 Eureka 自我保护机制的体现,大家可以通过配置文件对 Eureka 自我保护机制进行关闭,但是在我看来默认打开自然有他的道理,推荐使用默认打开,下面是关闭的语句:

java 复制代码
server:
    enable-self-preservation: false

新的一年继续加油!!!

奥利给!!!

相关推荐
今天背单词了吗98042 分钟前
算法学习笔记:17.蒙特卡洛算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·笔记·考研·算法·蒙特卡洛算法
Dcs1 小时前
从 C 到 Rust:一位开发者的 `tmux` 全面移植之旅
java
Maybyy1 小时前
力扣242.有效的字母异位词
java·javascript·leetcode
小小寂寞的城2 小时前
JAVA观察者模式demo【设计模式系列】
java·观察者模式·设计模式
探索java3 小时前
Java并发编程中的StampedLock详解:原理、实践与性能优化
java·stampedlock
界面开发小八哥3 小时前
「Java EE开发指南」如何用MyEclipse将Java项目转换为Web项目?
java·ide·java-ee·eclipse·开发工具·myeclipse
pobu1683 小时前
aksk前端签名实现
java·前端·javascript
一个天蝎座 白勺 程序猿3 小时前
飞算JavaAI进阶:重塑Java开发范式的AI革命
java·开发语言·人工智能
前端 贾公子3 小时前
tailwindCSS === 使用插件自动类名排序
java·开发语言