问题是我需要一种标准方法来序列化和取消不同微服务之间的域事件(通过每个type event
的unique identifier
(,因此这些消息的协定类型必须与编程语言无关。
在微通道之间的events
传递之间是否有任何通信协议或标准,以便用队列识别它们?最适合您的方式是什么?或者一些用于在net.Core
上传达这些事件的标准框架?
我们将事件作为外部事件复制到其他服务中。我们还使用共享事件模型向每个人传达即将发生的更改。https://eventmodeling.org/posts/what-is-event-modeling/
这是发布者/订阅者模型/事件模式的情况。通常,组织可以定义自己的事件消息格式,每个发布者(在本例中为域,例如客户、订单、产品、付款等(都必须遵循该格式,然后订阅者应用/域将使用已发布的事件 [如果订阅]。
虽然有许多选项可用于实现这一点,例如RabitMQ,Azure Service Bus,Azure EventHUb和开源Kafka或用于Apache Kafka的Azure Event Hubs。您可能希望首先对齐发布/订阅以及哪种合同最适合您的组织(您可以随时发展(。
如果您感兴趣,请参阅 https://learn.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/integration-event-based-microservice-communications 以获取使用 RabitMQ 的一些示例。