springcloud 实现注册端口和服务启动端口不同

需求

使用openscoring 做实时预测,想将其整合到springcloud中。openscoring默认使用jersey框架实现http。为了少改代码,只做了简单的修改:在ServerApplication.class启动后,再启动openscoring Server。

@Component
@ConfigurationProperties(ignoreUnknownFields = true, prefix = "com.pactera.rd.service.openservice")
public class OpenService implements ApplicationRunner{

	@Setter
	int  openPort = 8080;
	@Override
	public void run(ApplicationArguments args) throws Exception {
		System.out.println("MyApplicationRunner class will be execute when the project was started!");
		System.out.println(openPort);
		String [] config = new String[2];
		config[0] = "--port";
		config[1] = "" + openPort;
		Main.execute(Main.class, config);
	}

}

存在问题

使用springcloud是为了服务注册和发现,如果我设置server.port=8080openscoring Server 监听8081,那么eureka注册信息即为8080端口,而实际上最好注册openscoring Server的监听信息。

1. 设置eureka.instance.non-secure-port

eureka.instance.non-secure-port = ${com.pactera.rd.service.openservice.openport}

2. 设置 eureka.instance.instance-id

参考文档:https://blog.csdn.net/shog808/article/details/77161071
默认情况

  eureka.instance.instance-id=${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}}

只需改变其配置即可,最终配置如下:

com.pactera.rd.service.openservice.openport = 50052

eureka.instance.non-secure-port = ${com.pactera.rd.service.openservice.openport}

eureka.instance.instance-id=${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${com.pactera.rd.service.openservice.openport}}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值