2017-08-08 388 views
0

我现在面临一个问题,我已经写了一个基于JPA的springboot微服务基础来暴露一些表并提供CRUD restful API。当springboot应用程序启动时检查服务是否可用

但现在我必须检查我的服务的依赖性,如postgresql服务器已准备就绪(部署在K8s env中的docker中,并作为具有可用的ingres主机名和端口的pod运行),并且如果postgresq已启动,我也需要检查postgresql服务器中一些shell脚本创建的数据库。

如果检查失败,我的微服务应该暂停并稍后重试(也许在几分钟后),当postgresql准备就绪时(服务器启动,数据库创建)myservice正常启动并且提供服务。

我想知道任何最佳实践都可以达到这个目的吗?

+0

你写的东西听起来很直截了当。你错过了什么? – yakobom

回答

0

当我问这个问题时,我没有得到最佳实践来实现这个。

经过一番研究,我相信我们应该确保postgresql数据库服务已经准备就绪,并且在postgresql容器启动时它自己初始化数据库,比如一些shellscript。

然后在postgresql容器启动后,我的microservice可以使用JDBC连接到这个数据库实例,并使用flyway或其他数据库启动工具集成在spring-boot框架中来创建表并插入开箱即用数据。

微服务不是处理数据库创建的好地方。

相关问题