Spring 从部署在PCF中的微服务建立到couchbase的连接
我已经读到,在构建微服务时,必须考虑以下内容-Spring 从部署在PCF中的微服务建立到couchbase的连接,spring,spring-boot,spring-data,couchbase,cloud-foundry,Spring,Spring Boot,Spring Data,Couchbase,Cloud Foundry,我已经读到,在构建微服务时,必须考虑以下内容- 基于业务领域而非技术层(如DAO)拆分微服务 所有服务都必须是自包含的——我认为它不应该有很多外部依赖关系。例如,如果服务需要与外部数据库交互并使用10个查询,那么所有这些都应该在应用程序的DAO层中,而不应该是由多个微服务共享的外部库 我有一个现有的遗留应用程序,我计划将其转换为微服务。传统应用程序与Couchbase DB交互。我们有一个库项目,它连接到现有遗留应用程序中包含的couchbase db。在当前设置中,我们使用weblogic,该
请让我知道您对上述方法的看法,以及是否有其他建议方法。谢谢。您描述的计划将把一个遗留应用程序转换为一个“微服务”,该服务将与多个实例一起运行(再次在16结尾)。正如你所说的,这会给你带来和以前一样的问题 主要问题似乎是数据库。所有实例只有一个数据库,这就是瓶颈。但是,您有couchbase,因此可以使用集群并获得可伸缩性 如果您真的想使用micro服务,您需要将遗留应用程序分成更小的部分,每个部分只处理业务领域的一部分 正如您在案例中看到的那样,在多个微服务之间共享一个数据库是一种已知的反模式 由于每个微服务只负责域的一部分,因此每个微服务只需要访问数据库的一个子集。理想情况下,每个微服务都有自己的数据库,允许自由选择持久性技术、缓存和其他优化 这就是你可以从微服务中获得的好处。这不是免费的,它需要一些努力才能正确 关于共享外部库的信息 我不认为共享技术库是个问题。不管怎样,你都可以这样做,例如SpringBoot
如果您共享与业务领域相关的库,那么确实会出现问题。这意味着,许多微服务都关注同一件事。这与“关注点分离”相反,这是微服务的主要目标之一。服务。感谢Stefan给出的详细答案。这很有帮助。我还有几个问题。我正在尝试转换的遗留应用程序只涉及一个域,它是一个非常小的服务。当我们将这个实例部署到多个服务器时,它正在创建多个线程,couchbase团队提到我们需要限制正在打开的线程数量。我们正计划增加节点的数量,但是,我们还需要一种机制来限制我们正在创建的连接数量。我们正在使用pivotal cloud foundry。它提供了ServiceBroker抽象,所以想看看它是否允许创建可由部署的应用程序共享的连接