microservices相关内容

跨 REST 微服务的事务?

假设我们有一个用户、钱包 REST 微服务和一个将事物粘合在一起的 API 网关.当 Bob 在我们的网站上注册时,我们的 API 网关需要通过 User 微服务创建一个用户,并通过 Wallet 微服务创建一个钱包. 以下是一些可能出错的场景: 用户 Bob 创建失败:没关系,我们只是向 Bob 返回一条错误消息.我们正在使用 SQL 事务,所以没有人在系统中看到过 Bob.一切都很 ..
发布时间:2021-11-17 01:42:10 其他开发

具有共享数据库的微服务?使用多个 ORM?

我正在学习微服务,我将使用微服务架构构建一个项目. 问题是,我的一个团队成员想要为所有服务使用一个数据库,共享所有表,这样“数据不会重复",每个服务都将使用不同的框架和语言构建,例如使用 django 和 rails非常不同的 ORM 标准. 正确的方法是什么?因为我认为使用一个数据库会涉及到很多“破解" ORM 以使其正常工作. 解决方案 如果所有服务共享相同的数据库表,您就 ..
发布时间:2021-11-17 01:41:48 其他开发

API 网关和微服务通信

我正在构建微服务架构,我需要交流方面的帮助.API 网关与服务通信的最佳方法是什么?我的 API 网关将是 graphql apollo 服务器,服务将是 REST API. 我应该使用 REST 与服务或某些消息系统(如 RabbitMQ )通信吗? 解决方案 您可以同时使用两种方式,但使用像 RabbitMQ 这样的消息代理系统会给您带来负载平衡的优势.对于 HTTP 休息通信,您需要 ..
发布时间:2021-11-15 22:15:44 其他开发

通过微服务传播错误的良好做法

我们有一个微服务架构,我们正在讨论如何向客户端公开内部错误. 这是一个例子: 假设我们有 3 个服务,服务 A、B 和 C.当客户端向公共服务 A 发送请求时,该服务向服务 B 发送请求,该服务向服务 C 发送请求(这是内部的,需要身份验证,但凭据像环境变量一样在内部存储,它们是不是由客户端发送). 由于某种原因,B 和 C 之间的通信收到 401(可能是 422、403 或任何 ..
发布时间:2021-11-15 03:26:34 其他开发

API 和微服务有什么区别?

我用 Django 创建了我的 API rest,但我不明白如何将 API 转换为微服务,我不明白它们之间的真正区别.我看到一个像微服务一样的 API,但我不知道在微服务中转换整个 API,我需要创建微 Web 服务器吗? 拜托,我无法理解微服务,我需要理解这一点. 解决方案 微服务通过 API 公开它的接口,它可以做什么.API 是微服务在收到命令/查询时响应的所有端点的列表.微服 ..
发布时间:2021-11-15 03:21:14 其他开发

API 和微服务有什么区别?

我用 Django 创建了我的 API rest,但我不明白如何将 API 转换为微服务,我不明白它们之间的真正区别.我看到一个像微服务一样的 API,但我不知道在微服务中转换整个 API,我需要创建微 Web 服务器吗? 拜托,我无法理解微服务,我需要理解这一点. 解决方案 微服务通过 API 公开它的接口,它可以做什么.API 是微服务在收到命令/查询时响应的所有端点的列表.微服 ..
发布时间:2021-11-15 03:15:29 其他开发

使用 JWT 和 OpenID Connect 在微服务中进行客户端身份验证

我对微服务架构中的身份验证有一些疑问.我现在有一个单体应用程序,我的目标是将应用程序拆分为小型微服务. 我最大的问题是身份验证(目前).在阅读了大量文档后,似乎最好的解决方案是使用 OpenID Connect 对用户进行身份验证以检索可以通过请求传递给微服务的 JWT. 此外,为了避免有多个端点,您可以部署 API Gateway 以便最终用户只有一个端点.好的,现在我对这个架构有两 ..
发布时间:2021-11-15 03:00:49 其他开发

在微服务中用作消息总线时,kafka 是否可靠

我使用 kafka 作为微服务架构的消息总线,因此多个服务监听一个主题以获取消息.因此,服务高度依赖于要直播的主题. 但是,在很多情况下,我会在主题上获得 leader not available、broker not available 和 leader= - 1. 现在,我不确定是否可以依赖 kafka 主题,因为当主题出现问题并导致平台出现问题时,服务会中断. 有人可以对这 ..
发布时间:2021-11-15 00:02:49 其他开发

Spring Kafka Consumer 将消息作为 LinkedHashMap 消费,因此自动将 BigDecimal 转换为 double

我正在使用基于注解的 spring kafka 监听器来消费 kafka 消息,代码如下 使用员工对象 Class Employee{私人字符串名称;私有字符串地址;私人对象帐户;//获取者//二传手} Account 对象在运行时决定它是 Saving Account 还是 Current Account 等. Class SavingAcc{私人 BigDecimal 余额 ..

同一主题的 2 个 kafka 消费者的分区结构

如果我创建 2 个 kafka 消费者实例 传递相同的属性 订阅同一主题 这 2 个消费者实例(在 diff group Id 中)是否具有相似的分区结构,或者可能不同? 即,如果我执行 .assignment() 我会得到相同的结果 我的实际问题陈述,我将在其中使用此验证 在我的应用程序中,我在特定状态下获得了代理的偏移量(这是通过我的第一个 kafka 消费者 ..
发布时间:2021-11-12 03:08:27 Java开发

在 kafka 事件驱动的主干中保持服务同步

假设我在系统设计中使用 Kafka 作为我所有微服务的事件驱动主干.许多微服务使用事件数据来填充其内部数据库.现在有一个需求,我需要创建一个新服务,它使用一些事件数据.该服务只能在它上线后使用事件,因此不会有很多数据丢失.我想要一个策略,这样我就不必通过编写脚本来回填我的内部数据库. 我可以采用哪些不会对 Kafka 造成巨大负载的很酷的策略?没有考虑到大量脚本来回填我创建的新服务中的数据? ..

Kafka 有条件的生产/消费

我有这种情况: 微服务 MS1 有一个数据库,假设有 N 条记录,外部源提供新数据,如果有效,则应保留这些数据 验证过程由作为 kafka 主题 T1 的消费者的微服务 MS2 执行,MS1 在该主题上发送新数据 潜在 N+1 记录的验证涉及对所有前 N 条记录的查询.如果验证成功,MS2 会在主题 T2 上产生结果,MS1 是消费者,因此它可以持久保存新的、有效的数据. ..
发布时间:2021-11-12 03:06:25 其他开发

使用 OAUTH2 保护单个 kafka 主题

对于大型 Kafka 实现,我需要能够在每个主题的基础上实现安全性(更具体地说是授权).理想情况下,我想使用 OAUTH2(client_credentials 流),但是从阅读文档(Confluent 和 Apache 以及第三方供应商)看来,主题的授权只能在全局范围内完成.换句话说,Kafka OAUTH2 安全在其配置中使用单一范围,这是访问任何/所有主题所必需的.相反,我需要为每个单独的主 ..
发布时间:2021-11-12 03:04:07 其他开发

Kafka 有条件的生产/消费

我有这种情况: 微服务 MS1 有一个数据库,假设有 N 条记录,外部源提供新数据,如果有效,则应保留这些数据 验证过程由作为 kafka 主题 T1 的消费者的微服务 MS2 执行,MS1 在该主题上发送新数据 潜在 N+1 记录的验证涉及对所有前 N 条记录的查询.如果验证成功,MS2 会在主题 T2 上产生结果,MS1 是消费者,因此它可以持久保存新的、有效的数据. ..
发布时间:2021-11-12 02:59:39 其他开发

使用 Kafka 作为 EventStore 时在 Flink 中恢复状态一致性

问题 我正在将微服务作为事件溯源聚合实现,而该聚合又作为 Flink FlatMapFunction 实现.在基本设置中,聚合从两个 kafka 主题中读取事件和命令.然后,它将新事件写入第一个主题,并在第三个主题中处理结果.因此,Kafka 充当事件存储.希望这张图有帮助: RPC 请求 RPC 结果||~~~~>命令-||--->结果~~~~~~||--> 聚合--|~>输入 evs ..

断路器模式是否也适用于异步请求?

我是 微服务 架构的新手.我发现了很多在同步请求中实现断路器的例子. 但是我们在异步请求流中是否也需要断路器? 解决方案 断路器模式主要适用于同步服务通信.这是为了避免服务因请求而变得不堪重负,并且客户端开始重试请求,从而使情况变得更糟. 在异步、事件驱动的架构中,服务将事件放在代理上,消费者按自己的节奏读取事件 - 因此生产者和消费者解耦所以它不存在与服务之间的同步通信相同的 ..
发布时间:2021-11-12 02:40:28 其他开发

Rails:如何收听/从服务或队列中提取?

大多数 Rails 应用程序的工作方式是等待来自客户端的请求,然后发挥作用.但是,如果我想使用 Rails 应用程序作为微服务架构的一部分(例如),进行一些异步通信(服务 A 将事件发送到 Kafka 或 RabbitMQ 队列,而服务 B - 我的 Rails 应用程序 - 应该监听这个队列),如何调整/启动 Rails 应用程序以立即侦听队列并由那里的事件触发?(意味着初始触发器不是来自客户端 ..
发布时间:2021-11-12 02:18:11 其他开发