spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息
spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息
本文主要内容:
1:管理页面主机名及访问ip信息提示修改
2:获取当前注册中心的服务列表及每个服务对于的服务提供者列表
本文是由凯哥(凯哥Java:kagejava)发布的《spring cloud系列》教程的总第八篇:《修改服务名称及获取注册中心注册者的信息》。
本文是几个维度中的第一个维度:注册与发现维度配置中心管理之Eureka相关教程第五篇。
一:主机名及IP信息修改
在eureka管理页面显示的不是很友好。怎修改页面机器名称及访问连接URL的提示,来方便管理呢?
主要由如下图的两个地方修改
1:修改服务名称
先来看看当前问题:在注册中心status中显示的是机器ip,怎么修改成显示自己想要的?方便管理呢?
修改对应项目YML文件,在eureka相关配置中,添加 instance: instance-id: 自定义的名称。需要注意的是,这个instance需要和client对齐的。
如我们想要修改payment8001这个项目对应的自定义名称为paymeng8001。修改如下:
instance: instance-id: payment8001
如下图:
修改后,熟悉注册中心的管理页面:
2:修改范围信息中IP信息提示。
现在问题:将鼠标放置在服务上,没有ip提示。
修改方法:
同样,在需要修改的服务yml文件的eureka相关配置中在instance-id下面添加prefer-ip-adderss:ture
比如我们修改payment8002的:
添加完成后,刷新页面。我们可以看到:
以上修改相应代码对应git的版本:
为什么要添加这些呢?是为了访问吗服务管理。以后如果服务很多的话,我们想要知道对应服务的机器名称或者是ip是什么的时候,直接通过页面就可以查看了。
二:获取当前注册中心的服务列表及每个服务对于的服务提供者列表
这里就以payment8001为例来获取。
2.1:在controller中添加
@Resource
private DiscoveryClient discoveryClient;
2.2:获取注册中心所注册的服务名称(也就是application的名字)
//获取注册中心注册的服务列表。对应的就是Application
List<String> applicationList = discoveryClient.getServices();
2.3:根据服务名称获取到对应的服务实例。也就是application后面的status信息
//获取每个服务的提供者。对应的就是Application的status
List<ServiceInstance> instanceList = discoveryClient.getInstances(applicationName);
2.4:修改启动类
在启动类上添加启用discoverClient的注解
2.5:写测试类进行访问测试。
编辑
重启后,访问,查看效果:
获取到的信息和我们实际一致。说明从注册中心获取当前注册的服务信息及服务对应实例信息获取成功。
本案例代码对应git上面的tag版本是: v0.1.3-20200504