asp.net-core - 使用或不使用 Akka.NET 的微服务开发
问题描述
我们正在尝试使用 Asp.NET Core 在当前环境中创建新应用程序来实现微服务架构。我们的第一代微服务将使用请求/回复通信模式,不需要任何消息代理。但是,我们将在 2 年后拥有一个 Message Broker。
两年后是否需要在开发方面付出很多努力才能使我们的微服务适应使用消息代理并采用发布/订阅通信模式?
什么是好方法?我们现在应该在没有 Message Broker 的情况下使用 Akka.NET 之类的东西吗?我们应该稍后实现 Akka.net 以使微服务使用 pub/sub 通信模式吗?
感谢和appriciate各种建议。
解决方案
从一开始就正确对待。微服务的主要目的是松散耦合的服务。您最初可能没有意识到,但在某些时候您可能需要它。从技术上讲,req/resp 是重构的整体。使用带有消息代理的事件驱动架构稍微复杂一些,但好处是深远的。想象一下,您有越来越多的微服务加入俱乐部,使用 pub sub 非常容易。
回到您的第二点,稍后重构和包含消息代理可能需要付出很大的努力。例如,您决定使用 CQRS 和事件溯源,这是分布式应用程序非常常见的模式。您将需要系统的主要重新架构师。但是对于简单的应用程序,这些模式可能不是必需的,并且根据您的业务需求,您必须决定您的服务应该具有多大的弹性、可用性和解耦性,并且在可以简单地满足要求时是否值得付出努力。
如果您想寻求真正的微服务架构,那么它从可以使用消息代理的异步通信开始。
希望有帮助。
推荐阅读
- angular - rxjs 运算符,如何在单个对象中返回嵌套数据?
- sql - 在 PostgreSQL 中按数组重叠分组
- node.js - SyntaxError:JSON 输入 NODE.js 意外结束
- django - django Cast 函数总是设置 UTC 时区
- r - 基于另一列创建列
- javascript - 在 Python 中解码从 JavaScript 生成的 base64 编码 JSON 字符串
- zfit - 从 zFit 中的玩具中提取情节
- mysql - 连接数据库的课程
- python - 单击html中的href链接后如何停止加载页面?
- sql-server-2016 - 内存优化表(EF 核心 5)不支持保存点