我正在使用Node.js和基于REST的轻量级Web服务在服务器之间进行通信。我想知道是否有另一种更有效的方法在服务器之间进行通信?我正在使用vpn中的ec2示例。
e4yzc0pl1#
比HTTP上的REST更高效,从最低效率到最高效率:
但是,如果您的miscroservices实际上正在做任何有用的事情,并且不花费大部分时间处理HTTP头,那么这种差异可能完全无关紧要。例如,当你花半秒钟等待数据库,然后返回一兆字节的JSON,然后添加几行额外的HTTP头甚至是不可测量的。在进行过早优化之前,你需要分析你的代码并对其进行测试,并记住,其中一些在发送更少字节方面更有效地通信的方法,在开发时间方面效率可能要低得多,维护和调试。请记住,没有什么比基于文本的协议更容易检查和调试的了,比如很好的旧HTTP/1.1,你可以使用netcat或任何其他处理纯文本的东西进行对话。
nhjlsmyf2#
有几种选择:
我个人最喜欢的是前两个-一个提供简单和熟悉,其他速度和鲁棒性和控制。
fdx2calv3#
上面的两个答案都很好。我想知道你是否期待使用Docker来有效地支持你的微服务,并拥有更多的可见性和安全性。到目前为止,它被用作最流行的微服务架构组件。这是一个很好的阅读:https://medium.com/aws-activate-startup-blog/using-containers-to-build-a-microservices-architecture-6e1b8bacb7d1#.qztlom227
3条答案
按热度按时间e4yzc0pl1#
比HTTP上的REST更高效,从最低效率到最高效率:
但是,如果您的miscroservices实际上正在做任何有用的事情,并且不花费大部分时间处理HTTP头,那么这种差异可能完全无关紧要。
例如,当你花半秒钟等待数据库,然后返回一兆字节的JSON,然后添加几行额外的HTTP头甚至是不可测量的。
在进行过早优化之前,你需要分析你的代码并对其进行测试,并记住,其中一些在发送更少字节方面更有效地通信的方法,在开发时间方面效率可能要低得多,维护和调试。请记住,没有什么比基于文本的协议更容易检查和调试的了,比如很好的旧HTTP/1.1,你可以使用netcat或任何其他处理纯文本的东西进行对话。
nhjlsmyf2#
有几种选择:
我个人最喜欢的是前两个-一个提供简单和熟悉,其他速度和鲁棒性和控制。
fdx2calv3#
上面的两个答案都很好。我想知道你是否期待使用Docker来有效地支持你的微服务,并拥有更多的可见性和安全性。到目前为止,它被用作最流行的微服务架构组件。
这是一个很好的阅读:https://medium.com/aws-activate-startup-blog/using-containers-to-build-a-microservices-architecture-6e1b8bacb7d1#.qztlom227