如何評價騰訊開源的分布式隊列Phxqueue?
想當初公司分布式隊列差點用了phxqueue,最后還是選用了kafka,只能說各有優缺點!
先說下kafka的不足:
1,為保證可靠性,kafka打開同步刷盤,會引起吞吐量急劇下降,ssd寫入數據比原始數據大數倍!
2,生產消息打包常常難以進行,因為上下文之間的不同!
3,broker故障時,讀寫成功率下降嚴重!
4,數據同步常常需要各節點的返回標志!
微信中間件團隊針對kafka同步性能的不足,采用了不同的協議--paxos,優化了同步協議的不足!
phxqueue有哪些特性呢?
1,高可用,分布式,高并發!
2,出隊,入隊有序進行!
3,采用paxos協議,做同步刷盤,入隊數據可靠性強,內部自動實時對賬!
4,模塊可平行擴展!
5,存儲層自動容災,均衡!同時支持同城多中心部署!
可以說phxqueue類似于kafka,但是在其缺點上進行了極大的優化,性能更優于kafka等傳統老牌的消息隊列框架!
phxqueue隊列的不足:
1,開源時間晚,對比kafka等老牌分布式隊列稍顯稚嫩!
2,技術文檔少,學習資源少!
3,占用磁盤容量很多!
4,多語言支持嚴重不足!
總的來說,性能上看phxqueue確實有所提高,但是技術文檔少,沒有可供參考的經驗,遇到問題只能靠自己解決,這樣的情況還是難以在生產環境廣泛使用!
所以雖然公司也算是騰訊系,但最后還是選用了kafka!不過phxqueue還是蠻值得研究的,開源地址如下:https://github.com/Tencent/phxqueue
在學習過程中如果有問題,希望大家不吝留言,我們一塊研究!