272得票9回答
何时以及如何在微服务架构中使用GraphQL

我正在尝试了解GraphQL在微服务架构中的最佳适用情况。 有一些争议,关于是否只需要一个GraphQL模式作为API网关,将请求代理到目标微服务并强制执行其响应。但是微服务仍然会使用REST / Thrift协议进行通信。 另一种方法是每个微服务都有多个GraphQL模式。具有较小API网关...

249得票8回答
编排微服务

什么是编排微服务的标准模式? 如果一个微服务只知道自己的领域,但有一些数据流需要多个服务以某种方式进行交互,该怎么办? 假设我们有这样的东西: 开票 出货 为了论证,假设一旦订单发货,就应创建发票。 在某个地方,有人在 GUI 中按下一个按钮,"我完成了,让我们开始吧!" 在传...

246得票11回答
跨REST微服务的事务?

假设我们有一个用户、钱包REST微服务和一个API网关将它们粘合在一起。当Bob在我们的网站上注册时,我们的API网关需要通过用户微服务创建用户和通过钱包微服务创建钱包。 现在这里有几种情况可能会出错: 创建用户Bob失败:没关系,我们只需向Bob返回错误信息。我们正在使用SQL事务,所...

176得票5回答
微服务认证策略

我在为微服务架构选择一个良好/安全的身份验证策略上遇到了困难。我在这个主题上找到的唯一一个SO帖子是这个:Single Sign-On in Microservice Architecture 我的想法是,在每个服务中(例如认证、消息传递、通知、个人资料等),都有对每个用户的唯一引用(很自然地...

172得票7回答
API网关与反向代理的区别

为了应对微服务架构,通常会与反向代理(如nginx或apache httpd)一起使用,以及采用API网关模式来实现交叉关注点。有时候反向代理会执行API网关的工作。 可以清楚地看到这两种方法之间的明显区别是:API网关的潜在好处是调用多个微服务并聚合结果。 API网关的所有其他职责都可以使...

152得票5回答
微服务:如何处理外键关系

微服务架构建议每个服务处理自己的数据。因此,任何依赖其他服务(服务B)拥有的数据的服务(服务A),都不应该直接调用数据库,而应该通过第二个服务(服务B)提供的API来访问这些数据。 那么微服务最佳实践在检查外键约束方面有什么建议呢? 例如:我正在为产品开发交付功能(微服务1),某些产品只能...

143得票5回答
微服务和数据库连接查询

针对将单块应用程序分解为微服务的人们,您如何处理破解数据库的难题。我所涉及的典型应用程序出于性能和简单性的原因,进行了大量的数据库集成。 如果您有两个在逻辑上不同的表(如果您愿意,可以称之为有界上下文),但通常对大量数据进行聚合处理,则在单块中,您很可能会避免使用面向对象编程,而是使用数据库...

119得票1回答
"Elixir/erlang在微服务方法中扮演什么角色?"

最近,我做了一些有关docker-compose的实验,以便部署多个协作式微服务。我可以看到微服务提供的许多好处,现在有很好的工具集来管理它们,我认为跳上微服务的车不是非常困难。 但是,我也正在尝试使用Elixir,并且我非常喜欢它本身提供的好处。鉴于它鼓励将代码打包成多个解耦合的应用程序,...

95得票3回答
微服务与单体架构

微服务和单体架构各有优缺点。 何时选择微服务或单体架构?

88得票4回答
数据去规范化在微服务模式中是如何工作的?

我刚刚阅读了一篇关于微服务和PaaS架构的文章。在这篇文章中,大约三分之一的篇幅下面,作者在像疯子一样去规范化下陈述道: 重新设计数据库模式,对所有内容进行去规范化,以允许数据完全分离和分区。也就是说,不要使用为多个微服务提供服务的底层表。不应该存在跨越多个微服务的底层表共享和数据共享。相反...