了解Apache Thrift与TCP套接字服务器的特征
Understanding the characteristics of Apache Thrift versus TCP socket servers?
我有一些使用OpenSSL编写TCP套接字服务器的经验,我希望更多地了解Apache Thrift。我已经查看了Thrift服务器的一些基本示例,我知道Thrift可以处理管道。
有人可以简单解释一下Thrift服务器与TCP服务器的不同之处(除了使用管道)吗?Thrift 框架是否使用不同的传输协议?
我知道这是一个直截了当的问题,但我似乎找不到初学者级别的解释。
Thrift 服务器与 TCP 服务器有何不同?
节俭至少是原始套接字上方的一个抽象层。它为您提供了一个抽象,允许您通过任何介质发送和接收信息,其中一种可能是TCP套接字。
底层传输介质本身并不重要,使用的协议也不重要(二进制、紧凑、JSON ...你的名字)。两者都对应用程序的其余部分完全透明。
换句话说,您针对类型安全的服务 API 进行开发,而不是自己编写套接字或解析某些 JSON。
Thrift 允许您专注于作为客户端使用该服务执行的操作和/或实现服务器端逻辑,而不是摆弄字节、编码和对抗套接字的微妙之处。
此外,您可以根据需要更改传输和/或协议,而不会影响代码的其余部分。
-
节俭协议是TCP传输层上的更高级别的实现。它提供了重要的元素:
- 序列化
- RPC 协议
-
从我个人的角度来看,主要好处之一是类型安全,尤其是在不同语言之间。为复杂情况手动编写TCP(套接字)解决方案似乎非常困难。
因为它是从正式定义(IDL - *.thrift 文件,有时这种形式称为模式)生成的,所以它与 WSDL/SOAP 有相似之处,但性能更高。我在移动客户端等上使用它。
去年最流行的是JSON而不是REST,据我所知,大多数代码应该手动编写。JSON没有模式(在官方标准中),也许在未来。
我使用的首字母缩略词是众所周知的。我的回答非常笼统和简化,专业人士请原谅我。
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 特征命名访问向量段
- 将特征矩阵的向量设置为0
- 从服务器传输到客户端的消息不会出现
- 特征:模板函数中矩阵的平面图
- basic_string的前导/尾部不区分空格的特征
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- OpenSSL TLS服务器-使用客户端证书白名单
- 我正在开发服务器,ip作为参数传递不起作用
- 特征 3 类的模板专用化
- 特征 c++:复矩阵的面积双曲正切(atanh)
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- C++ 中的特征向量计算
- 了解Apache Thrift与TCP套接字服务器的特征