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

java - Java微服务如何处理跨库查询?

章宏峻
2023-07-09

最近在做微服务的开发,突然发现一个问题,就是微服务好像是每个服务对应一个数据库,那么,微服务之间如果存在关联查询的话,那怎么做跨库查询呢?

共有2个答案

徐高韵
2023-07-09

微服务目标是解耦,所以千万别跨库查询!!!

另外微服务拆分是一门艺术活,我先假设你拆的是合理的,且你说的关联查询用数据库解决

比如你的需求是统计报表,那么老老实实再建一个报表服务和包含两个表的数据库,数据库是通过其他服务的表同步过来的,前提是牺牲了一致性和数据时效性,这样的情况下正常关联查询就好

当然根据具体需求应该还有其他更好的方案,具体情况具体分析
田马鲁
2023-07-09

Sql表名前加上库名

 类似资料:
  • Java异常处理分为错误、已检查异常和未检查异常。这个问题是关于例外的。 正常的Java异常处理是扩展检查异常的异常类,并通过考虑异常层次结构来处理您需要的异常。 例如: 但是我看到了主要的Spring书籍,甚至在Spring boot中提到的Internet教程中,以及在微服务的上下文中,总是从RuntimeException类扩展而来,即使使用@ControllerAdvice。 这显然违反了

  • 我有一堆在唯一端口中运行的Spring启动微服务。我们如何在生产中处理这些微服务? 在生产中,我们只需要DNS,如何处理DNS映射。 例如:示例微服务-1(端口:8001) 示例微服务-2(端口:8002) 示例微服务-3(端口:8003) 示例微服务-4(端口:8004) 示例微服务-5(端口:8005) 我想要下面的东西, myprod。com/example-microservice-1 m

  • 使用nestjs 构建了一个微服务,java 如何连接.

  • 最近刚刚接触微服务相关内容,对于“微服务治理”,感觉网上的解答都比较偏概念,希望大佬可以结合平时企业应用场景,用大白话把微服务治理这个讲清楚

  • 假设有两个微服务:订单和库存。order service中有一个API,它接受< code>ProductId 、< code>Qty等并下订单。 理想情况下,只有在库存服务中存在库存时才允许下订单。人们建议使用Saga模式或任何其他分布式事务。这很好,最终将利用一致性。 但是如果有人想滥用这个系统。他可以使用无效或缺货的产品(< code>ProductId)推送订单。系统将接受所有这些订单,并

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