apache thrift的不足
thrift作为RPC优点明显,那些还在坚持使用消息排斥RPC的同学,都应当亲自接触体验一下。
不过thrift确实还有些明显的不足,表现在:
1.不能指定IP TNonblockingServer.cpp: for (res = res0; res; res = res->ai_next) { if (res->ai_family == AF_INET6 || res->ai_next == NULL) break; } if (::bind(s, res->ai_addr, res->ai_addrlen) == -1) {
2.每个service独占一个端口号 m_server.reset(new thrift::server::TNonblockingServer( m_processor, m_protocol_factory, port, m_thread_manager));
3.C++客户端异步支持不好,或者至少这方面的信息太少,让人了解困难 暂只略知有个基于http的异步支持,java客户端的异步支持感觉不错,但没有实践过
4.对外直接暴露了由automake系列命名autoheader生成的config.h头文件 如果使用它的也是使用automake编译,容易造成冲突,结果是警告难消息,目前简单的措施是注释掉Thread.hpp中的#include "config.h"
5.文件、目录组织缺乏严谨 进入config.h所在目录就可以发现 6.命名方式让人吐槽 类都是以T打头的微软骆驼风格,这个还可以接受,但文件名和类名完成相同,这个就有点过了
TBufferTransports.h
TFDTransport.h
TFileTransport.h
THttpClient.h
THttpServer.h
THttpTransport.h
6.内部代码的质量也只能算是一般
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义