博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Cloud Eureka 集群搭建 - 以及发现一个 “直觉BUG”
阅读量:4981 次
发布时间:2019-06-12

本文共 2631 字,大约阅读时间需要 8 分钟。

首先解释一下标题所说的“直觉BUG”,这个是我自己的定义。就是我们直觉上认为这是一个BUG,是一个错误,而实际并没有出错。

比如下图:

虽然出现报错信息,但是,整个程序并没有出错。至于原因,图片上的文字已经很好的解释了。

在此,再简单的说一下。

出现这种情况的原因是,我们的程序已经启动(已经出现红框中此条日志,代表程序已经启动,所以程序本身没有问题。),为什么会出现错误呢?

是因为在此系统中,我们要搭建的是集群环境, 每一台服务器在自己启动之后,都要去连接集群中的其他服务器,以便于相互之间通讯传递信息。

但是,我们肯定是按照次序启动服务器,我们不管先启动哪一台服务器,其他的服务器都还没有准备就绪,所以肯定会出现找不到要连接的服务器,所以会报错。

这个错误根本不需要解决, 把所有的服务器全部启动,整个集群就可以正常运行(因为出现的是连接错误,现在所有的服务器已经准备就绪,所以不会再一次出现连接错误,除非某台服务器down掉。)。

 

下面我们看一下SpringCloudEureka集群的搭建过程:

1、首先创建项目结构:(使用SpringBoot 1.5.10)

 

2、在启动程序类头部加入注

package com.thunisoft.thunisoftregister;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@EnableEurekaServer@SpringBootApplicationpublic class ThunisoftRegisterApplication {	public static void main(String[] args) {		SpringApplication.run(ThunisoftRegisterApplication.class, args);	}}

 

3、编写配置文件

spring:  application:    name: spring-cloud-eureka  profiles: peer1server:  port: 8000eureka:  instance:    hostname: peer1  client:    serviceUrl:      defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/    fetch-registry: true    register-with-eureka: true---spring:  application:    name: spring-cloud-eureka  profiles: peer2server:  port: 8001eureka:  instance:    hostname: peer2  client:    serviceUrl:      defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/    fetch-registry: true    register-with-eureka: true---spring:  application:    name: spring-cloud-eureka  profiles: peer3server:  port: 8002eureka:  instance:    hostname: peer3  client:    serviceUrl:      defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/    fetch-registry: true    register-with-eureka: true

  以上配置中标红的代码段很重要,在此进行说明:

  1、fetch-registry:表示是否从eureka server获取注册信息,如果是单一节点,不需要同步其他eureka server节点,则可以设置为false,但此处为集群,应该设置为true,默认为true,可不设置。

  2、register-with-eureka:表示是否将自己注册到eureka server,因为要构建集群环境,需要将自己注册到及群众,所以应该开启。默认为true,可不显式设置。

    

4、因为实在一台机器上实验,所以修改host文件(windows系统下、C:\Windows\System32\drivers\etc)

127.0.0.1       peer1127.0.0.1       peer2127.0.0.1       peer3

  增加如上三段

 

5、启动注册中心服务

5.1、可以使用IDEA进行启动

按照这个步骤添加三个启动节点,注意: program arguments 参数依次更改为 peer2 、peer3,与配置文件中的 spring.application.files 参数值对应。

之后全部启动。

 

5.2、打包成jar之后,使用 java -jar命令启动

使用maven插件或gradl插件等等构件工具,将程序打包为jar。然后执行以下命令

java -jar 生成的jar包名称.jar --spring.profiles.active=peer1java -jar 生成的jar包名称.jar --spring.profiles.active=peer2java -jar 生成的jar包名称.jar --spring.profiles.active=peer3

 

注意: 以上两种启动方式均可以将集群启动,但是有一个问题要注意,就是上面提到“直觉BUG”问题。详细参考上面。

 

6、查看集群效果

转载于:https://www.cnblogs.com/hfultrastrong/p/8549590.html

你可能感兴趣的文章
sklearn 线性回归
查看>>
matplotlib
查看>>
django 0
查看>>
knn 算法 k个相近邻居
查看>>
710
查看>>
python SMTP发邮件
查看>>
数据存储 csv
查看>>
redis 解决秒杀
查看>>
python 测试
查看>>
ms2
查看>>
nginx
查看>>
单下滑线 事务 锁
查看>>
mysql 索引
查看>>
spider
查看>>
shell
查看>>
drf 组件
查看>>
amazon 1
查看>>
MS yc
查看>>
Electron-vue中通过WebAudioApi实现录音功能,并转换为mp3格式,实时监测音频设备变化...
查看>>
Express配置ssl证书,为网站开启https
查看>>