1. zeromq很好很强大,可以应付多种网络通信模式,容错能力很高。比传统socket编程传输的优点:A.收到的是完整的数据,不是数据流的一部分。不用自己检查长度。B。不用考虑接收方和发送方的启动顺序。
2. google protocol buffer配合zeromq是特别好的网络通讯方式。发送和接受的信息用这个格式打包的好处是代码可读性好。不用自己设计字符如何分割。代码十分清晰易懂。
3. 基于1,2就自然导出了一个很好的实践经验,针对接口和消息编程,而不是针对实现编程。这样可以很容易将某个模块用其他的语言实现。
4. 尽量让服务器端的代码简短,提供较少的功能,如果需要其他程序的数据,通过发送消息获得。这么做可以极大的降低代码的重构难度,可以很容易的将程序扩展到多个服务器。
5. 用python语言写的服务器端通信程序,很容易翻译成go 语言版本。如果是针对接口编程,完全可以做到同样的服务分别用python和go都实现一遍,可以帮助找到服务器和程序的性能瓶颈。
6. 只看别人的benchmark就做选择是没有意义的,要针对自己的业务应用来设计专门的benchmark程序才有意义。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/50625
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.