我现在面临一个问题,我在JPA上编写了一个springboot微服务基础来公开一些表并为它提供CRUD restful api。
但现在我必须检查我的服务的依赖性,例如postgresql服务器已经准备好(在K8s环境中部署在docker中并作为具有可用主机名和端口的pod运行),如果postgresq已启动,我还需要检查数据库是否已由postgresql服务器中的某些shellcript创建。
如果检查失败,我的微服务应暂停并稍后再次重试(可能在几分钟之后),当postgresql准备就绪(服务器已启动,数据库已创建)时,myservice正常启动,提供者服务正常。
我想知道任何最佳实践可以达到这个目的吗?
答案 0 :(得分:0)
当我提出这个问题时,我没有得到实施此问题的最佳做法。
经过一些研究,我相信我们应该确保postgresql数据库服务已准备就绪,并且当postgresql容器启动时它会自动启动数据库,例如一些shellcript。
然后在postgresql容器启动后,我的微服务可以使用JDBC连接到这个数据库实例,并使用flyway或其他数据库启动工具集成在spring-boot框架中来创建表并插入现成的数据。
微服务不是处理数据库创建的好地方。