两个 uService 通过消息队列 (RabbitMQ) 进行通信。数据使用message pack进行编码。
我有以下场景:
- python3-> python3:工作正常
- python2 -> python3:编码问题
编码通过以下方式完成:
umsgpack.packb(data)
解码:
umsgpack.unpackb(body)
在 python3 中进行编码和解码时,我得到:
data={'sender': 'producer-big-red-tiger', 'json': '{"msg": "hi"}', 'servicename': 'echo', 'command': 'run'}
在 python2 中进行编码并在 python3 上进行解码时,我得到:
data={b'command': b'run', b'json': b'{"msg": ""}', b'servicename': b'echo', b'sender': b'bla-blah'}
为什么数据没有“完全”解码?在发送方/接收方上应该怎么做才能实现python2和python3的兼容?