Eureka服务信息优化、Eureka集群

注册进Eureka中的微服务信息优化:

注册进Eureka的服务:status标题下,显示的是“计算机名:服务名:端口号”,且将鼠标放在status标题下的服务信息中,浏览器的左下角会显示计算机名和端口号。如果在微服务比较多的情况,且分布在不同服务器上的情况下,无法定位是那台服务器上的服务出了问题。

status标题下的值信息,是一个超链接,点击进去,进入到SpringBoot的错误页面。

下面针对上面三点,对服务信息进行优化:

1、status标题下显示的服务信息

注册进Eureka的服务cloudProvider,修改application.yml配置文件:

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/
  instance:
    instance-id: cloudProvider-${server.port}dept   #设置status的值

重启Eureka服务端和注册进Eureka的微服务,查看Eureka服务管理页面,会发现status的值已经变成了我们设定的值:

2、显示微服务的IP地址,而不是计算机名

和修改status的值一样,只需要修改cloudProvider的application.yml文件:

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/
  instance:
    instance-id: cloudProvider-${server.port}dept   #设置status的值
    prefer-ip-address: true   #true显示主机IP信息

重启Eureka服务端和注册进Eureka的微服务,查看Eureka服务管理页面:

3、修改超链接的错误页面:使它展示微服务信息

在cloudProvider的父工程的POM文件中添加:


	<build>
                <!-- 父工程名 -->
		<finalName>cloud</finalName>
                <!-- 允许访问的路径 -->
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
		</resources>
                <!-- 解析插件 -->
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
                    <!-- 自定义字符,解析被该字符包裹的信息 -->
				<configuration>
					<delimiters>
						<delimit>$</delimit>
					</delimiters>
				</configuration>
			</plugin>
		</plugins>
	</build>

在cloudProvider的配置文件application.yml中添加配置:

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/
  instance:
    instance-id: cloudProvider-${server.port}dept
    prefer-ip-address: true

info:  #info下定义的信息和值,都可以根据自己的需要自定义
  app.name: cloud
  company.name: zn.zsm.cloud
  build.artifactId: $project.artifactId$     #解析$字符中定义的信息,$在父工程的pom文件中定义
  build.version: $project.version$

重启EurekaServer和cloudProvider,进入Eureka的服务管理页面,点击status下的超链接:

这时info信息展示的不再是SpringBoot自定义的错误页面,而是我们定义的微服务的相关描述信息的JSON串。这里展示的信息我们可以根据项目需要,自定义展示信息内容。

Eureka集群:

Eureka集群指的是Eureka服务器端集群实现高可用。Eureka支持高可用的集群配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它允许分片故障期间继续提供服务的发现和注册,当故障分片恢复正常时,集群中其他分片会把他们的状态再次同步回来。

1、按照Eureka服务器端创建过程,创建三个注册中心:EurekaServer7001、EurekaServer7002、EurekaServer7003。修改这三个Eureka注册中心的application.yml配置:

EurekaServer7001:

server:
  port: 7001
 
eureka:
  instance:
    hostname: eurekaServer7001  #eureka服务端的实例名称
  client:
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url: 
      defaultZone: http://eurekaServer7002:7002/eureka/,http://eurekaServer7003:7003/eureka/

EurekaServer7002:

server:
  port: 7002

eureka:
  instance:
    hostname: eurekaServer7002  #eureka服务端的实例名称
  client:
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://eurekaServer7001:7001/eureka/,http://eurekaServer7003:7003/eureka/

EurekaServer7003:

server:
  port: 7003

eureka:
  instance:
    hostname: eurekaServer7003  #eureka服务端的实例名称
  client:
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://eurekaServer7001:7001/eureka/,http://eurekaServer7002:7002/eureka/

注意:这里将Eureka服务端实例名由写成EurekaServer7001/7002/7003,如果要用http://eurekaserver7001:7001访问Eureka管理界面,需要修改映射文件:C:\Windows\System32\drivers\etc\hosts ,添加如下配置:

当然也可以使用localhost:7001访问Eureka管理界面。

分别启动EurekaServer7001、EurekaServer7002、EurekaServer7003,再访问者三个管理界面:以7001服务为例:

可以看到DS Replicas下面有两个超链接,也就是我们配置的集群中的其他两个Eureka服务。至此说明Eureka集群搭建成功。

2、将微服务注册进集群,修改cloudProvider的application.yml配置:

eureka:
  client:
    service-url:
      #defaultZone:  http://eurekaServer7001:7001/eureka/,http://eurekaServer7002:7002/eureka/,http://eurekaServer7003:7003/eureka/
      defaultZone:  http://eurekaServer7001:7001/eureka/

微服务同时注册进这三个Eureka注册中心中,也可以只注册进其中的一个注册中心。不管哪种方式,在任何一个注册中心中都会看到该微服务的注册信息。

访问7001注册中心:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值