首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C++中创建高性能网络服务器

在C++中创建高性能网络服务器
EN

Stack Overflow用户
提问于 2011-10-05 02:10:19
回答 7查看 6.6K关注 0票数 19

我需要在C++中为一个交易应用程序创建一个网络服务器。此网络服务器需要执行以下任务:

  • 处理客户端的身份验证,并为客户端发出的每个execution.
  • handle订单提供会话id,并将客户端请求的其他数据请求通知客户端,然后将数据发送回它们。

我计划使用Boost.Asio networking库和Google protocol buffers来实现从客户端发送到服务器的消息。基于XML-RPC或SOAP的方法是一个严格的禁忌,因为延迟是一个很大的问题。

我对stackoverflow社区有以下问题:

  1. 使用协议缓冲区实现这些消息是个好主意吗?我也在考虑发送消息Boost序列化库来实现这一点。当我查看代码时,我发现自己更有信心使用boost序列化来实现这一点,而Google protobuf头看起来太重了。这些方法中,哪种方法a)更易维护,b)需要更少的工作?我想,这两种方法都会在不同的platforms.
  2. Is上工作,除了Boost.ASIO之外,还有其他的网络库我应该看看吗?我发现concerned.
  3. Eventually编码风格有点过时了,我想让这个网络服务器在C++上运行,但是,我没有任何实施SSL的经验。以后迁移到SSL需要多大的努力。我应该从SSL开始吗?
  4. 有没有人知道一个很好的开源网络项目,它可能已经使用Boost.Asio实现了类似的网络服务器,以获得灵感?
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-10-05 03:37:11

你还应该看看Apache Thrift (起源于Facebook)或Apache Etch (最初由思科开发)。它们是RPC框架,可以轻松地开发满足您(或多或少)需求的服务器和客户端。对于使用protobuf和boost.asio开发的框架,请查看server1 project

票数 4
EN

Stack Overflow用户

发布于 2011-10-05 02:58:40

BSON ( http://www.mongodb.org/display/DOCS/BSONhttp://bsonspec.org )是一种非常快的二进制协议。C++的实现很容易从mongodb获得。它基本上是JSON,这使得它很容易实现和维护。

SSL实现不会向基于asio的服务器添加太多额外代码:使用证书路径和一些握手逻辑进行SSL上下文初始化。

票数 3
EN

Stack Overflow用户

发布于 2011-10-05 04:17:08

你应该调查一下MessagePack http://msgpack.org/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7652208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档