microservices相关内容

我们可以有后台批处理的微服务架构吗?

最近我开发了一个 spring 批处理应用程序,其中配置了 3 个作业.只需部署一个 jar 即可完成三个 3 工作. 如果我们有另一个业务需求,我很乐意在现有配置中添加一个新作业,它会正常工作.我们不会为此作业创建单独的 jar. 我正在学习一些微服务教程.我注意到我们为每个微服务创建了单独的代码存储库.在 Spring Batch 中,我们将所有作业添加到一个 jar 中,尽管它们 ..
发布时间:2021-11-17 03:10:12 其他开发

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

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

如何使用 docker compose 实现微服务架构?

我正在开发一个 Web 应用程序,该应用程序需要很少的微服务,例如更短的 URL、邮件程序、分析等......这些服务中的每一个都作为 REST api 实现,因此它们可以相互通信.这些服务中的每一个都有一个 docker-compose.yml 文件,并使用 nginx、php、mysql 等容器……我希望它们可以作为一个系统运行.我不想将这些 REST api 暴露给 docker 网络之外的 ..

微服务架构中如何处理网络调用

我们使用微服务架构,其中顶级服务用于将 REST API 暴露给最终用户,后端服务执行查询数据库的工作. 当我们收到 1 个用户请求时,我们会向后端服务发出大约 30k 个请求.我们将 RxJava 用于顶级服务,因此所有 30K 请求都可以并行执行.我们使用 haproxy 在后端服务之间分配负载.然而,当我们收到 3-5 个用户请求时,我们会收到网络连接异常、无路由到主机异常、套接字连接 ..
发布时间:2021-11-17 03:01:22 其他开发

微服务客户端确认和事件溯源

场景 我正在使用微服务构建快递服务系统.我不确定一些事情,这是我的场景 Booking API - 这是客户下订单的地方 Payment API - 这是我们根据预订处理付款的地方 Notification API - 服务负责在一切完成后发送通知. 系统使用事件驱动架构.当客户下预订订单时,我在预订 API 中提交本地事务并发布事件.支付 API 和通知 API 订阅了它们 ..

如何为微服务构建前端

假设我有十几个微服务.我想知道前端应该去哪里.假设前端是 HTML、Javascript、CSS.一种方法是使其成为由 UI 团队处理的单独服务.所以它可以形成浏览器请求首先进入的API网关.但这似乎与独立自包含服务的想法背道而驰. 浏览器------> API 网关------> 微服务 在这个链接中,他们说Javascript 和 CSS 应该由微服务提供.API 网关应该只服务于 HTM ..
发布时间:2021-11-17 02:55:57 其他开发

您如何处理复合微服务请求中的验证?

考虑具有两个实体的应用程序: User(包含基本用户数据,如姓名) Passport(包含身份验证凭据,即密码) 还有两个内部微服务: UserService(负责创建和管理用户及其基本数据) AuthService(负责用户认证和密码处理) User 实体属于 UserService,Passport 实体属于 AuthService. 这两个服务应该分开,因为 ..

对异步微服务客户端的确认

我到处都读到,微服务中的服务到服务调用应该是异步的.当请求必须通过 2 个或多个异步服务时,我们如何进行客户端确认? 这是我的实时场景.我们正在我们的组织中开发电子邮件发送功能.我们计划按以下顺序为此提供 4 个 API 服务. 公共 API - 将电子邮件功能公开 验证 API - 验证电子邮件和其他字段的真实性 模板获取 API - 从数据库/CMS 中获取电子邮件模板并准备要 ..

微服务架构依赖

我已经阅读了很多关于微服务架构的内容,但有一点我不明白如何实现,希望您能帮我解决这个问题... 假设我有一个 web-api-endpoint,它接收 OrderMicroservice 负责处理的订单.当订单被放置时,必须更新库存,以便 OrderMS 向订阅者发布一个事件(使用例如 Nats 发布/订阅)并且 InventoryMS 将更新库存,因为它正在订阅当前事件/消息......我 ..

抽象掉 GO 中的持久层

所以,我对 Go 编程的世界比较陌生,想知道在尝试抽象持久层时社区认为什么是“最佳实践". 在 DDD 中,这通常是通过引入存储库来处理的,该存储库向应用层公开了一组聚合. 我担心的是,我过于“习惯"从面向对象设计的角度思考这些问题,并想探索其他编程范式. 这也是我第一次尝试开发微服务;这也是我希望设计尽可能简单的部分原因. 解决方案 我认为这个问题没有一个好的答案,多种 ..
发布时间:2021-11-17 02:52:11 其他开发

出于项目推荐目的在微服务之间共享(几乎)相同的数据是否是个坏主意

我有一个关于由微服务组成的应用程序架构的问题. 我的微服务很少,但在这个问题的上下文中有趣的是: 人力资源 - 这里存储了所有用户数据,例如用户名、性别、用户体验等. 职位 - 这里存储了每个职位广告的所有数据 - 职位描述、预期经验等. 因此,我需要创建新的微服务(我们将其命名为 Recommender),其唯一目的是 - 基于上述微服务的文本,从 Human 推荐最适合的人 ..
发布时间:2021-11-17 02:50:32 其他开发

微服务创建实体实现

这是我在此处概述的问题的后续问题. 网关充当应用程序的入口点,客户端的每个请求都会发送到该入口点.然后网关将请求分配给负责的微服务并处理身份验证. 在这种情况下,网关侦听 HTTP POST/bok 并通知 微服务 A 创建一本书.因此,Microservice A 负责管理和存储有关图书实体的所有内容. 以下伪代码是该架构的简化实现: 队列通信 网关 router ..
发布时间:2021-11-17 02:49:29 其他开发

怎么电路又闭合了?

我正在尝试了解 Hystrix.我了解当服务调用 3rd 方服务并且该服务没有响应并且阈值已超过配置时,电路将打开并且继续调用将被短路. 但我无法理解电路是如何再次闭合的.让我们假设我们的服务正在调用 3rd 方服务,并且该服务无法正常工作,因此电路已打开.5 分钟后,该服务开始正常工作,现在电路应该关闭.调用服务怎么知道第三方服务已经开始正常运行,现在应该关闭? 解决方案 实际上有 ..
发布时间:2021-11-17 02:47:36 其他开发

微服务、amqp 和服务注册/发现

我正在研究微服务架构,实际上我在想一些事情. 我非常同意使用(返回)服务发现来使请求能够在基于 REST 的微服务上进行.我需要知道发出请求的服务(或至少是服务器集群的前端)在哪里.因此,在这种情况下能够发现 ip:port 是有意义的. 但我想知道在处理 AMQP(仅基于,没有 HTTP 可能调用)时使用服务注册/发现的目的是什么? 我的意思是,使用 AMQP 就像“我需要那个 ..
发布时间:2021-11-17 02:47:33 其他开发

API网关是否应该负责授权?

目前我有一个带有 Java/Spring Boot 的单体应用程序,具有以下端点: /login /注销 /some-resource 访问some-resource,流程如下: 用户向 /login 端点发出 POST 请求.如果凭据正确,则在标头中返回 JWT 令牌,否则返回 401. 用户将 JWT 令牌与请求一起发送到 /some-resource.如果令牌有效,则 ..

微服务异步操作 HTTP 响应

我们正在构建一个微服务应用,客户可以在其中创建项目.下图展示了这个过程的技术流程: 我的问题:API 网关应该向客户端返回什么 HTTP 响应(第 1 步)? 我最初的想法是返回 202,但问题是我还不知道 Location (/projects/{id}),因为 project 的 id 将在项目管理服务中创建. 解决方案 考虑到新创建的 project 实体的 ID 在请求 ..

两个微服务,用于读写一个数据库表

我对微服务最佳实践方法有点困惑. 以下场景: 来自 mqtt 设备的大量传入消息.一个rest api,客户可以在其中阅读消息(大部分只是其中的一部分). 我的想法是,创建一个微服务来将消息存储在数据库表中.还有一个带有休息 api 的微服务来读取此消息.由于缩放问题,我想这样做.(传入的存储部分需要更多的权力,比阅读休息api) 我读到“完美"微服务应该是唯一一个访问数据 ..
发布时间:2021-11-17 02:32:24 其他开发

如何使用 Webpack 创建与容器应用程序共享库的微前端包?

我有一个任务. 拥有带有单spa框架的微前端. 门户/主应用程序(通过 url 加载所有其他 js 代码) 微前端 1(基于 React) 微前端 2(基于 React) 所以我的问题只是一个:我不想复制像 react、react-dom(任何其他)这样的供应商库.我想让它们在其他微前端(与 webpack 捆绑在一起)之间共享 我知道拥有一些全局内容是什么不好的做法( ..

微服务:REST 与消息传递

我听说亚马逊在其基于微服务的架构中使用 HTTP.另一种方法是使用消息系统,如 RabbitMQ 或 Solace 系统.我个人有使用基于 Solace 的微服务架构的经验,但从未使用过 REST. 知道 Amazon、Netflix、UK Gov 等各种大联盟实施使用什么吗? 另一个方面是,在微服务中,需要以下内容(除其他外): * 模式匹配 * 异步消息.. 接收系统可能已关闭 * ..
发布时间:2021-11-17 02:25:45 其他开发