我不太清楚如何在服务之间共享命令和事件类。
有什么想法吗?
答案 0 :(得分:0)
我不太清楚如何在服务之间共享命令和事件类。
您不能在服务之间共享命令和事件类。您可以在服务之间共享命令和事件架构。
服务共享合同和架构,而不是类或类型....除了通信协议之外,别无其他。
此外,您将设计资金投入到架构中,以便您可以以向前/向后兼容的方式发展您的消息。 Greg Young关于Versioning in an Event Sourced System的书就是我的参考书,但实际上许多短信标准都有参考讨论相同的想法。
基本理念是这样的;您获取了一些要通信的信息,并使用模式将该信息转换为您发送给我的字节。我使用我的架构将字节转换回信息。如果我的架构与您的架构兼容,那么我将理解您的消息。
这样做的动机是您正在尝试支持服务的独立部署。如果您需要扩展您的消息架构,您应该能够重新部署蓝色服务,然后重新部署红色服务(反之亦然),而不会破坏系统。红色和蓝色架构不需要同步,只需兼容。
Avro,Thrift,Protocol Buffers是用于以字节为单位描述信息的所有系统。
Schema.org是一个架构;它是标识符(如http://schema.org/telephone)与telephone number等语义的映射。它是一个常见词汇表,允许域不可知组件执行有用的操作。
这些常见于消息的超媒体表示中,它们用于描述数据和告诉您在哪里查找更多信息的双重目的。