【发布时间】:2016-02-28 20:16:54
【问题描述】:
我正在尝试将单体架构的某些部分移至外部服务。到目前为止,我喜欢这个想法,将所有相关功能封装在一个应用程序中似乎更简洁。不同的应用程序使用 RabbitMQ 进行通信。
我在一项服务中有一个用户对象。如果我想在服务中使用这个完全相同的类,我可以轻松地对其进行序列化并在消息正文中发送序列化对象。但是由于发送者和接收者都需要包含用户类,我将不得不共享一个包含用户对象的一些表示的库(尽管对我来说将真实的用户对象放入库中似乎很奇怪,因为它是主应用程序的核心)。我想我也可以只传递一个带有 user 键和定义键值的数组。
我也在想,如果有一天我用 PHP 以外的东西创建服务,那么它将无法反序列化用户对象,因此无法访问消息中的数据。
所以基本上我喜欢在服务之间传递实体并能够在接收端将它们作为对象使用的想法,但我不确定这是否是正确的方法。
我的问题是在这些服务之间传递对象的最佳方式是什么?
【问题讨论】:
标签: php oop soa microservices