Spring Cloud实战技巧之使用随机端口
前言
在Spring Cloud构建微服务架构中,我们经常会需要启动多个实例的情况来测试注册中心、配置中心等基础设施的高可用,也会用来测试客户端负载均衡的调用等。但是,我们一个应用只能有一个端口号,这就使得在本机测试的时候,不得不为同一个服务设置不同的端口来进行启动。
在本地用不同端口启动同一服务实例的方法有很多。最传统的我们可以粗暴地修改配置文件中的server.port
属性来分别启动多个实例,这种方法虽然可以实现,但是非常的不方便。比较好的一种方法是在启动的时候通过命令的方式为server.port
属性来设置不同的值,这样我们的配置文件就不用反复的进行修改了。
在本文中,我们将介绍另外一种方法:
采用随机端口的方式来设置各个服务实例,这样我们不用去编辑任何命令就可以在本地轻松地启动多个实例了。
使用随机端口
为Spring Cloud的应用实用随机端口非常简单,主要有两种方法:
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、除了上面的方法,实际上我们还可以直接使用random
函数来配置server.port
。这样就可以指定端口的取值范围,比如:
server.port=${random.int[10000,19999]}
由于默认的实例ID会由server.port
拼接,而此时server.port
设置的随机值会重新取一次随机数,所以使用这种方法的时候不需要重新定义实例ID的规则就能产生不同的实例ID了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
Spring Cloud实战技巧之使用随机端口
前言 在Spring Cloud构建微服务架构中,我们经常会需要启动多个实例的情况来测试注册中心.配置中心等基础设施的高可用,也会用来测试客户端负载均衡的调用等.但是,我们一个应用只能有一个端口号,这就使得在本机测试的时候,不得不为同一个服务设置不同的端口来进行启动. 在本地用不同端口启动同一服务实例的方法有很多.最传统的我们可以粗暴地修改配置文件中的server.port属性来分别启动多个实例,这种方法虽然可以实现,但是非常的不方便.比较好的一种方法是在启动的时候通过命令的方式为server.
-
Spring Cloud出现Options Forbidden 403问题解决方法
摘要:本文简述了博主在开发过程中,需要跨域调试的时候,出现了 OPTIONS 请求 Forbidden 的问题,以及解决方法. 403 Forbidden 解释: Forbidden You don't have permission to access / on this server. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to
-
Spring Cloud Feign 自定义配置(重试、拦截与错误码处理) 代码实践
基于 spring-boot-starter-parent 2.1.9.RELEASE, spring-cloud-openfeign 2.1.3.RELEASE 引子 Feign 是一个声明式.模板化的HTTP客户端,简化了系统发起Http请求.创建它时,只需要创建一个接口,然后加上FeignClient注解,使用它时,就像调用本地方法一样,作为开发者的我们完全感知不到这是在调用远程的方法,也感知不到背后发起了HTTP请求: /** * @author axin * @suammry xx 客
-
初探Spring Cloud Gateway实战
目录 关于Spring Cloud Gateway 版本信息 经典配置中的核心概念 启动nacos-2.0.3 源码下载 <Spring Cloud Gateway实战>系列的父工程 创建名为common的子工程,存放共用的常量和数据结构 创建web应用,作为服务提供方 开发一个简单的demo,完成spring-cloud-gateway的初体验 总结 关于Spring Cloud Gateway 这是一个基于Spring技术栈构建的API网关,涉及到:Spring5.Spring Boot
-
Spring Cloud OpenFeign 的五个优化技巧
目录 一.超时优化 1.设置Ribbon超时时间 2.设置OpenFeign超时时间 二.请求连接优化 1.引入Apache HttpClient依赖 2.开启Apache HttpClient使用 三.数据压缩 四.负载均衡优化 五.日志级别优化 总结 前言: OpenFeign 是 Spring 官方推出的一种声明式服务调用和负载均衡组件.它的出现就是为了替代已经进入停更维护状态的 Feign(Netflix Feign),同时它也是 Spring 官方的顶级开源项目.我们在日常的开发中使用
-
Spring boot随机端口你都不会还怎么动态扩容
一般情况下每个spring boot工程启动都有固定的端口,但是固定端口不利用服务的动态扩容,如果在一台服务器上需要对同一个服务进行多实例部署,很容易出现端口冲突,那么怎么解决这个问题呢? random随机端口 在spring boot中,可以通过${random}来生成随机数字,我们可以在配置文件中,这么设置端口: server.port=${random.int(2000,8000)} 通过random.int方法,指定生成2000~8000的随机端口.这样每次启动的端口都不一样. 多次启动
-
Spring Cloud 中自定义外部化扩展机制原理及实战记录
目录 自定义PropertySource 扩展PropertySourceLocator Spring.factories 编写controller测试 阶段性总结 SpringApplication.run PropertySourceBootstrapConfiguration.initialize ApplicationContextInitializer的理解和使用 创建一个TestApplicationContextInitializer 添加spi加载 Spring Cloud针对E
-
spring cloud gateway集成hystrix实战篇
spring cloud gateway集成hystrix 本文主要研究一下spring cloud gateway如何集成hystrix maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> 添加spring-
-
spring cloud如何集成nacos配置中心
目录 spring cloud集成nacos配置中心 一.添加依赖 二.添加bootstrap.yml配置文件 三.添加远程配置 nacos作为SpringCloud配置中心 一.背景介绍 二.项目实战 三.总结 spring cloud集成nacos配置中心 一.添加依赖 <properties> <spring-cloud.version>Finchley.RELEASE</spring-cloud.version> <nacos.version>0.9
-
Spring Cloud Ribbon的使用原理解析
目录 一.概述 1.Ribbon是什么 2.Ribbon能干什么 3.Ribbon现状 4.未来替代方案 5.架构说明 二.RestTemplate 用法详解 三.Ribbon核心组件IRule 四.实战项目 1.回顾之前的项目 2.@RibbonClient注解用法 3.配置文件用法 3.测试 五.Ribbon原理 1.负载均衡算法 2.源码分析 六.手写负载均衡器 一.概述 1.Ribbon是什么 Ribbon是Netflix发布的开源项目,Spring Cloud Ribbon是基于Net
随机推荐
- python正则表达式re之compile函数解析
- 关联的Select,可以支持客户端动态更新
- VS2008无法直接查看STL值的解决方法
- PHP函数microtime()用法与说明
- PHP二维数组排序简单实现方法
- php+ajax实现无刷新分页的方法
- Python操作MongoDB数据库PyMongo库使用方法
- Python读取Excel的方法实例分析
- Android camera实时预览 实时处理,人脸识别示例
- Javascript 自适应高度的Tab选项卡
- 轻松创建nodejs服务器(8):非阻塞是如何实现的
- 利用JQuery的load函数动态加载其它页面的内容的实现代码
- C#用Activex实现Web客户端读取RFID功能的代码
- jQuery增加自定义函数的方法
- jQuery 1.5.1 发布,全面支持IE9 修复大量bug
- 经典的间隔时间滚动新闻(图片),可控制滚动
- C#判断系统是32位还是64位的方法
- Php output buffering缓存及程序缓存深入解析
- 基于C++执行内存memcpy效率测试的分析
- Alpine镜像中telnet转移至busybox-extras