当前位置: 首页 > 知识库问答 >
问题:

我的所有微服务都有自己的数据库,我应该创建公共微服务来处理连接吗?

单勇
2023-03-14

我有许多维护自己数据库的微服务(mongodb、弹性、mysql),并且我必须不断设置新连接的每个微服务。

我在考虑如果我创建另一个微服务,可以在微服务启动之前处理这些连接,这是否明智。

示例:我的API网关微服务收到一个搜索请求,然后调用搜索微服务,在搜索开始之前,该服务调用数据库设置miscroservice,并根据微服务的名称(在本例中为搜索微服务)返回已建立的连接。

如果我只是发现 API 网关内部需要什么连接会更好吗?或者我应该在每个微服务中单独保留逻辑。

共有1个答案

岳炎彬
2023-03-14

您可以通过假设每个微服务使用的持久性类型来打破微服务封装。

每个微服务都应该可以自由地使用它想要的任何持久性类型,或者在需要透明地更改它时,而无需通知或请求其他微服务的权限。

 类似资料:
  • 我读过萨姆·纽曼的《微服务》一书,在关于分裂整体的一章中,他举了一个“打破外键关系”的例子,他承认跨API进行连接会更慢--但他接着说,如果你的应用程序足够快,它比以前慢有关系吗? 这似乎有点油嘴滑舌?人的经历是什么?您使用了哪些技术来使API联接执行得令人满意?

  • 示例:                               >>>服务B(获取消息) 服务A>推送消息>>>服务B(不应接收消息,已复制)                         >>>服务C(获取消息) 我认为它是“路由”和“工作队列”的组合,我需要什么? 但我怎样才能正确地做到这一点呢?我使用node.js或C#(如果您有示例的话)。

  • 如果一个微服务只知道它自己的领域,但是有一个数据流需要多个服务以某种方式交互,那该怎么做呢? 假设我们有这样的东西: 为论证起见,假设一个订单发货后,就应该创建发票。 我确实知道这可以被认为是高度基于意见的。但它也有具体的一面,因为微服务不应该做上述的事情。因此,必须有一个“根据定义它应该做什么”,这不是基于意见的。 开枪啊。

  • 当前体系结构: 问题: 我们在前端和后端层之间有一个两步流程。 null 微服务2(MS2)需要验证I1的完整性,因为它来自前端。如何避免对MS1进行新的查询?最好的办法是什么? 我试图优化的流删除了步骤1.3和2.3 流程1: null 流程2: 2.1用户X已在本地/会话存储中存储了数据(MS2_Data) 2.2用户X在MS1上保留数据(MS2_Data+MS1_Data) 2.3 MS1使

  • 我所有的橱柜。Service.ts 我的app.module.ts 我在控制台收到这条消息 ×执行命令'javac'时出错。确保您已经安装了Java Development Kit(JDK)并设置了JAVA_HOME环境变量。您将无法为Android构建您的项目。为了能够为Android构建,请验证您是否安装了Java Development Kit(JDK),并按照http://docs.nat

  • 我们正在尝试将我们的单片应用程序转换为基于微服务的体系结构。我们使用Postgresql作为单一应用程序中的数据库之一,并使用BoneCP进行连接池。 当这个整体被拆分为多个独立的微服务,每个服务都运行在不同的JVM中时,我可以考虑两种连接池选项 BoneCP或任何适合每个微服务的连接池-我的初步研究表明,这是主要选择。可以对每个服务的连接需求进行细粒度控制。但是,不利的一面是,随着服务数量的增加