java项目命名规范示例_spring cloud中的实例命名规则

springboot实例的默认命名

SpringCloud体系里的,服务实体向eureka注册时,注册名默认是“IP名:应用名:应用端口名”,即spring.cloud.client.ipAddress: s p r i n g . c l o u d . c l i e n t . i p A d d r e s s : {spring.application.name}:{spring.application.instance_id: {spring.application.instance_id: {server.port}}。

有些文章说默认的instance-id注册名是用机器主机名代替ip名,至少我在SpringCloud版本Dalston和Edgware下,无论eureka.instance.prefer-ip-address为true或者false,注册到eureka界面的都是以ip开头的,更高版本还没试过。

那么如果我们想自定义服务在eureka上的实例名怎么弄呢?这个需求在服务多实例部署下很自然,因为多个实例下,可能不同的实例运行的是不同的版本,如果在eureka界面能看到每个实例运行的版本号,就更加方便问题的排查。尤其在开发和测试环境下,有些实例A运行的版本可能没有另外一些实例B运行版本的功能,但是ribbon又做了负载均衡,将对应这些功能的请求转发到A,就会造成错误的响应。如果eureka界面显示了版本号,那么我们就能先行定位问题的来源是不是版本的问题。

给实例加上版本号

说了那么多,那么怎么给eureka界面上实例的显示名字加上版本号呢,或者说自定义格式。有如下步骤:

(1)要配置的属性为eureka.instance.instance-id。或者eureka.instance.instanceId也可以。好像目前SpringCloud对属性的中划线和驼峰型写法区分并不是很严。

(2)eureka.instance.instance-id必须写在application.properties或application.yml中。不能写在bootstrap.properties和bootstrap.yml中。可以去了解下springboot加载默认配置文件的顺序,bootstrap是在application之前的。写在bootstrap里的话,自定义的instance-id并不会在eureka界面生效,原理没研究过。

(3)取值如下,这里以写在application.properties为例:

eureka.instance.instance-id=spring.cloud.client.ipAddress: s p r i n g . c l o u d . c l i e n t . i p A d d r e s s : {spring.application.name}:server.port:@project.version@这里注意project.version是引用maven里面的属性,因为springboot的parent包将maven中默认的 s e r v e r . p o r t : @ p r o j e c t . v e r s i o n @ 这 里 注 意 p r o j e c t . v e r s i o n 是 引 用 m a v e n 里 面 的 属 性 , 因 为 s p r i n g b o o t 的 p a r e n t 包 将 m a v e n 中 默 认 的 {*}修改成了@*@,所以引用maven属性要用@@,而其他的比如server.port本来就是springboot的属性,直接${}。另一种方法可以参考博文http://blog.csdn.net/gj5266400/article/details/74914486 修改springboot对maven属性的引用符,统一为${}。

修改完后再次启动实例,eureka界面注册服务名已经加上了版本号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值