目前,我们正在构建一个面向微服务的应用程序。
我们面临的问题是如何在保持服务独立的同时在服务之间发送和接收对象。
问题: 假设我们有一个EventService和一个NotificationService。 EventService生成一个Event,将其序列化(json / java?)并在ActiveMQ主题上发布序列化对象。 正在侦听该特定主题的NotificationService接收序列化对象并且必须对其进行反序列化,因此需要知道事件类。
解决两个服务之间共享Event-Class的问题有什么好办法? 我应该介绍一个只包含Event-Class的新项目吗?我在这里看到的问题是,这可能导致两种情况:
答案 0 :(得分:0)
遵循以下经验法则:
对于企业应用程序和复杂对象,创建第三个项目(API项目),然后将其作为依赖项在服务之间共享。
对于简单和自描述对象,请在每项服务中使用相同对象的“副本”;请注意,此功能非常强大,因为POJO不必相同;
我刚刚共享了示例代码here