TLDR;内部微服务避免串行化并以二进制形式相互通信以节省发送消息时的计算成本是否可行?如果是这样,它将如何与JMS一起使用?
在Internet上的机器之间交换消息时,我们经常使用某种形式的编码,例如JSON。通过这样做,我们确保了具有不同二进制格式和不同默认编码的两台不同的计算机可以相互通信。
作为Web开发人员,这是合理的,我们不知道什么机器可以连接到我们的服务。但是,随着微服务的兴起,诸如Amazon VPC之类的专用网络中的应用程序之间相互通信的情况并不少见。给定诸如云前端之类的技术,我们可以非常精确地了解堆栈的许多细节,例如操作系统和软件版本。
在这种情况下,我们不必考虑与公共服务(例如不同的操作系统和不同的编码类型)相同的考虑因素。
在这一点上,这些服务通过HTTP支付JSON编码的计算成本是否仍然合理?开发团队在引入序列化策略以促进与分支技术的通信时支付开发开销是否合理?看来我们有机会简化堆栈并获得性能。有了这个机会,我们将如何以这种方式交换消息?我们的Java代码是什么样的?这甚至是可行的吗?