Spring Boot指定随机端口

本文件给介绍在SpringBoot中指定随机端口的两种方式。

在微服务开发中,一个项目可能涉及到多个,甚至几十个服务,如果每一个服务都需要我们手动指定端口,可能管理起来比较麻烦。于是,便可以使用随机端口,因为微服务调用是通过服务名称进行调用的。例如:

@Service
public class HelloService {
    /**
     * 使用Spring内置的工具
     */
    @Autowired
    private RestTemplate restTemplate;

    public String hiService(String name) {
        // SERVICE-HI 根据服务名进行调用,不能使用IP地址进行调用
        return restTemplate.getForObject("https://SERVICE-HI/hi?name="+name,String.class);
    }
}

其中,SERVICE-HI是在Eureka中映射到一个或多个具体服务地址信息(IP+端口)。

设置随机端口

Spring Boot有两种方式去设置使用随机端口,分别如下:

方式一

在 application.properties 文件中将 server.port 设置为 0。如下:

server.port=0

Spring Boot会随机分配一个端口。

注意:

这种方式在向Eureka注册时会出现问题。如果你启动多个实例,那么这些实例所有的ID都是相同的。如:yourPC:service-name:0,此时我们需要手动设置实例ID。如下:

eureka.instance.instance-id=${spring.application.name}:${random.int}

这样每次都会产生一个不同的实例ID。

方式二

通过 random.int 随机生成一个端口。如下:

server.port=${random.int[8080,8999]}
我们一定不要当三等公民:等下班、等薪水、等退休。
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号