我有一个不是RESTful的服务,但是需要运行状况检查终结点。因此,我添加了一个,但注意到即使Tomcat服务器显然已启动,我也无法在本地对其进行访问。在输出中,DispatchServlet没有选择新的/ health端点。
有一个在onStart上运行的函数,它启动了我的Kinesis Worker,它看起来像这样:
@EventListener(ContextRefreshedEvent.class)
public void onStart() {
log.info("Kicking off Kinesis Consumer...");
Worker worker = new Worker.Builder()
.config(getKinesisConfig())
.recordProcessorFactory(kinesisFactory)
.build();
worker.run();
}
当我将其更改为此时,我可以达到运动终点,就像Kinesis工人所做的那样,一切都很好:
@EventListener(ContextRefreshedEvent.class)
public void onStart() {
log.info("Kicking off Kinesis Consumer...");
new Thread(() -> {
Worker worker = new Worker.Builder()
.config(getKinesisConfig())
.recordProcessorFactory(kinesisFactory)
.build();
worker.run();
}).start();
}
我的问题是:这是同时运行Kinesis进程和Web服务器的正确方法吗?对此有更好的做法吗?