我正在使用 spring boot + spring cloud + spring JDBC 为单体应用程序开发微服务。目前,该应用程序通过 tomcat JNDI 连接池连接到单个数据库。
我们这里有一个瓶颈,此时不能因为数据库对象数量大、与其他系统的依赖关系等各种原因而改变数据库架构。
所以我们根据应用特性隔离了微服务。我担心的是,如果我们开发的微服务每个都有自己的连接池,那么与数据库的连接数量会呈指数级增长。
目前,我正在考虑两种解决方案
计算每个应用程序功能当前正在使用的连接数并达到每个服务的最大/最小连接参数 - 这是一个非常乏味的过程,我们没有任何机制来获取每个应用程序功能的连接数。
开发具有单个连接池的数据微服务,从其他 MS 获取查询对象,触发对数据库的查询并将结果集对象返回给调用者。
不确定第二种方法是否是微服务架构中的最佳实践。
您能否建议任何其他在当前情况下有用的标准方法?
connection-pooling spring-jdbc spring-boot spring-cloud-netflix