源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Spring Cloud实战技巧之使用随机端口

  • 时间:2020-09-29 06:24 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Spring Cloud实战技巧之使用随机端口
[b]前言[/b] 在Spring Cloud构建微服务架构中,我们经常会需要启动多个实例的情况来测试注册中心、配置中心等基础设施的高可用,也会用来测试客户端负载均衡的调用等。但是,我们一个应用只能有一个端口号,这就使得在本机测试的时候,不得不为同一个服务设置不同的端口来进行启动。 在本地用不同端口启动同一服务实例的方法有很多。最传统的我们可以粗暴地修改配置文件中的[code]server.port[/code]属性来分别启动多个实例,这种方法虽然可以实现,但是非常的不方便。比较好的一种方法是在启动的时候通过命令的方式为[code]server.port[/code]属性来设置不同的值,这样我们的配置文件就不用反复的进行修改了。 [b]在本文中,我们将介绍另外一种方法:[/b] 采用随机端口的方式来设置各个服务实例,这样我们不用去编辑任何命令就可以在本地轻松地启动多个实例了。 [b]使用随机端口[/b] [b]为Spring Cloud的应用实用随机端口非常简单,主要有两种方法:[/b] 1、设置server.port=0,当应用启动的时候会自动的分配一个随机端口,但是该方式在注册到Eureka的时候会一个问题:所有实例都使用了同样的实例名(如:Lenovo-zhaiyc:hello-service:0),这导致只出现了一个实例。所以,我们还需要修改实例ID的定义,让每个实例的ID不同,比如使用随机数来配置实例ID:
server.port=0
eureka.instance.instance-id=${spring.application.name}:${random.int}
2、除了上面的方法,实际上我们还可以直接使用[code]random[/code]函数来配置[code]server.port[/code]。这样就可以指定端口的取值范围,比如:
server.port=${random.int[10000,19999]}
由于默认的实例ID会由[code]server.port[/code]拼接,而此时[code]server.port[/code]设置的随机值会重新取一次随机数,所以使用这种方法的时候不需要重新定义实例ID的规则就能产生不同的实例ID了。 [b]总结[/b] 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部