CAT 3.0 開源發佈,支持多語言客戶端及多項性能提高

項目背景

CAT(Central Application Tracking),是美團點評基於 Java 開發的一套開源的分佈式實時監控系統。美團點評基礎架構部但願在基礎存儲、高性能通訊、大規模在線訪問、服務治理、實時監控、容器化及集羣智能調度等領域提供業界領先的、統一的解決方案,CAT 目前在美團點評的產品定位是應用層的統一監控組件,在中間件(RPC、數據庫、緩存、MQ 等)框架中獲得普遍應用,爲各業務線提供系統的性能指標、健康情況、實時告警等服務。html

本文會對 CAT 的客戶端、性能等作詳細深刻的介紹,前不久咱們也發過一篇 CAT 相關的文章,裏面詳細介紹了 CAT 客戶端和服務端的設計思路,欲知更多細節,歡迎閱讀《深度剖析開源分佈式監控CAT》java

產品價值

  • 減小故障發現時間
  • 下降故障定位成本
  • 輔助應用程序優化

技術優點

  • 實時處理:信息的價值會隨時間銳減,尤爲是在事故處理過程當中
  • 全量數據:全量採集指標數據,便於深度分析故障案例
  • 高可用:故障的還原與問題定位,須要高可用監控來支撐
  • 故障容忍:故障不影響業務正常運轉、對業務透明
  • 高吞吐:海量監控數據的收集,須要高吞吐能力作保證
  • 可擴展:支持分佈式、跨 IDC 部署,橫向擴展的監控系統

使用現狀

目前,CAT 已經覆蓋了美團點評的外賣、酒旅、出行、金融等核心業務線,幾乎已經接入美團點評的全部核心應用,並在生產環境中大規模地獲得使用。node

2016 年初至今,CAT 接入的應用增長了400%,機器數增長了 900%,天天處理的消息總量高達 3200 億,存儲消息量近 400TB,高峯期集羣 QPS 達 650萬/秒。python

面對流量的成倍增加,CAT 在通訊、計算、存儲方面都遇到了史無前例的挑戰。整個系統架構也經歷了一系列的升級和改造,包括消息採樣聚合、消息存儲、業務多維度指標監控、統一告警等等,項目最終穩定落地。爲公司將來幾年內業務流量的穩定增加,打下了堅決的基石。git

通過 7 年的持續建設,CAT 也在不斷髮展,咱們也但願更好的回饋社區,將 CAT 提供的服務惠及更多的外部公司。咱們今年將對開源版本進行較大的迭代與更新,將來也會持續把公司內部一些比較好的實踐推廣出去,歡迎你們跟咱們一塊兒共建這個開源社區。github

新版特性

CAT 3.0.0 Release Notes數據庫

多語言客戶端

隨着業務的不斷髮展,不少產品和應用須要使用不一樣的語言,CAT 多語言客戶端需求日益增多,除 Java 客戶端外,目前提供了 C/C++、Python、Node.js、Golang 客戶端,基本覆蓋了主流的開發語言。對於多語言客戶端,核心設計目標是利用 C 客戶端提供核心 API 接口做爲底層基石,封裝其餘語言 SDK。緩存

cat

目前支持的主流語言使用指南:網絡

性能提高

  • 消息採樣聚合架構

    消息採樣聚合在客戶端應對大流量時起到了相當重要的做用,當採樣命中或者內存隊列已滿時都會通過採樣聚合上報。採樣聚合是對消息樹拆分歸類,利用本地內存作分類統計,將聚合以後的數據進行上報,減小客戶端的消息量以及下降網絡開銷。

    cat

  • 通訊協議優化

    CAT 客戶端與服務端通訊協議由自定義文本協議升級爲自定義二進制協議,在大規模數據實時處理場景下性能提高顯著。目前服務端同時支持兩種版本的通訊協議,向下兼容舊版客戶端。

    • 測試環境:CentOS 6.5,4C8G 虛擬機
    • 測試結果:新版相比舊版,序列化耗時下降約 3 倍

  • 消息文件存儲

新版消息文件存儲進行了從新設計,解決舊版本的文件存儲索引、數據文件節點過多以及隨機 IO 惡化的問題。

新版消息文件存儲爲了同時兼顧讀寫性能,引入了二級索引存儲方案,對同一個應用的 IP 節點進行合併,而且保證必定的順序存儲。下圖是索引結構的最小單元,每一個索引文件由若干個最小單元組成。每一個單元分爲 4×1024 個桶,第一個桶做爲咱們的一級索引 Header,存儲 IP、消息序列號與分桶的映射信息。剩餘 4×1024 - 1 個桶做爲二級索引,存儲消息的地址。

cat

新版消息文件存儲文件節點數與應用數量成正比,有效減小隨機 IO,消息實時存儲的性能提高顯著。如下爲美團點評內部 CAT 線上環境單機消息存儲的數據對比:

將來規劃

  • 技術棧升級

    擁抱主流技術棧,下降學習和開發成本,使用開源社區主流技術工具(Spring、Mybatis等),建設下一代開源產品。

  • 產品體驗

    對產品、交互進行全新設計,提高用戶體驗。

  • 開源社區建設

    產品官網建設、組織技術交流。

  • 更多語言 SDK

關於開源

github.com/dianping/ca…

CAT 自 2011 年開源以來,Github 收穫 5900+ star,2400+ forks,被 100+ 公司企業使用,其中不乏攜程、陸金所、獵聘網、平安等業內知名公司。在每一年全球 Qcon 大會、全球架構與運維技術峯會等都有持續的技術輸出,受到行業內承認,愈來愈多的企業夥伴加入了 CAT 的開源建設工做,爲 CAT 的成長貢獻了巨大的力量。

cat

美團點評基礎架構部負責人黃斌強表示,在過去四年中,美團點評在架構中間件領域有比較多的積累沉澱,不少系統服務都經歷過大規模線上業務實際運營的檢驗。咱們在使用業界較多開源產品的同時,也但願能把積累的技術開源出去,一方面是回饋社區,貢獻給整個行業生態;另外一方面,讓更多感興趣的開發工程師也能參與進來,共同加速系統軟件的升級與創新。因此,像 CAT 這樣的優秀項目,咱們將陸續開源輸出並長期持續運營,保證開源軟件自己的成熟度、支撐度與社區的活躍度,也歡迎你們給咱們提出更多的寶貴意見和建議。

結語

這是一場沒有終點的長跑,咱們整個 CAT 項目組將長期有耐心地不斷前行。願同行的朋友積極參與咱們,關注咱們,共同打造一款企業級高可用、高可靠的分佈式監控中間件產品,共同描繪 CAT 的新將來!

此次開源僅僅是一個新的起點,若是你對 CAT 新版本有一些見解以及建議,歡迎聯繫咱們:cat@dianping.com or Github issues

招聘信息

美團點評基礎架構團隊誠招 Java 高級、資深技術專家,Base北京、上海。咱們是集團致力於研發公司級、業界領先基礎架構組件的核心團隊,涵蓋分佈式監控、服務治理、高性能通訊、消息中間件、基礎存儲、容器化、集羣調度等技術領域。歡迎有興趣的同窗投送簡歷到 yong.you@dianping.com

相關文章
相關標籤/搜索