來源:時代周報
信也科技開源兩大自研中間件技術 共築科技開放生態
在技術的領域裡,開源已經成為一種潮流,既能夠推動技術創新,也是企業自身技術實力的體現。近日,信也科技宣布其自研的資料庫訪問中間件DAS和消息中間件PMQ正式開源。據悉,這兩項技術在信也科技內部均已投入核心業務應用,取得了良好成效。
信也科技是在美上市的金融科技集團,致力於通過大數據、人工智慧、區塊鏈等先進技術實現「科技,讓金融更美好」的使命。作為金融科技開放平臺,信也科技以技術連結B端金融機構和C端個人及小微商戶借款人,目前對接持牌金融機構已達20餘家,總註冊用戶數達1.028億。此次開源兩大自研中間件技術,也意味著信也科技在科技開放之路上更進一步。
資料庫訪問中間件DAS
隨著業務的快速發展,企業積累的數據也會迅猛增長,如何簡單、準確和高效地取大量數據逐漸成為企業研發人員不得不面對的問題。信也科技自研的資料庫訪問中間件DAS正式開源,為資料庫訪問提供了一項高效的解決方案。
通常情況下,企業應對大量數據的解決辦法,是使用關係型資料庫來存放數據,並根據情況做分庫分表。而要讓應用能夠快速高效地訪問分庫分表的資料庫,需要開發人員綜合使用各種組件,其包括數據源、連接池組、ORM框架、分庫分表框架,或者直接使用原生分布式資料庫等。對開發人員來說,學習、使用如此多的組件並最終成功部署和排障,所需成本十分高昂。DAS整合了上述所有這些訪問資料庫所需的技術或組件,並以一種簡單、快捷的方式提供給開發人員。
據了解,信也科技DAS是基於Java語言開發的,支持資料庫管理、ORM、動態SQL構建、分庫分表操作的一體化關係型資料庫訪問解決方案。使用DAS完成同樣功能所需代碼量大大少於傳統方式。通過集成接口,研發人員無需做任何本地配置工作即可使用DAS開始編碼,便利性極大提升。為適應不同的應用場景和數據規模,DAS還可以同時支持SqlServer和MySql兩種資料庫,並支持本地直連和基於代理的兩種訪問模式。
信也科技相關負責人介紹,DAS的用法規範,代碼簡潔。得益於DAS良好的API設計,在完成同樣功能的前提下,使用DAS所需代碼量大大少於傳統方式。以按照給定的樣例對象查詢資料庫這個非常常見的需求為例,使用Mybatis的話,用戶需要定義一個mapper文件,針對每個可能賦值的表欄位編寫判斷語句,xml的整體長度取決於表的欄位多少。這種做法整體而言都非常的繁雜易錯,而使用DAS則無需事先定義任何xml或接口,僅調用一個簡單的queryBySample方法即可完成任務。
此外,DAS還具有擴展性強、接入成本低、支持在多個環境中同步配置信息等特點。目前,信也科技內部超過260個應用接入了DAS,每日支持超過6億次的資料庫訪問。
對於該開源項目的發展,信也科技方面制定了明確的未來規劃。在功能方面,DAS未來會基於目前信也科技內部策略實現來提供更多更靈活的分庫分表策略,還會提供基於柔性事務的分布式事務處理機制;在監控方面,DAS會考慮開放DAS目前集成的CAT監控實現;在易用性方面,會考慮提供解析分片時的詳細過程信息,包括原始表達式、表達式所對應的分片範圍,方便用戶診斷調試。
消息中間件PMQ
在2017年左右,信也科技調研了市面上的一些消息系統,發現缺少一款具有完善監控告警、完善治理功能、定製化簡單的消息系統。在參考kafka和業內相關資料的情況下,信也科技開發了一款輕量級、易於維護、易擴展、用戶體驗友好的消息系統的想法應運而生。
「整個消息系統的研發從2017年1月開始,經歷了兩期:第一期實現了基本的發送和消費,監控告警功能。第二期功能完善,實現了動態重平衡,自助治理,動態修改偏移,廣播消息等功能,目前已在github上實現開源。」信也科技相關負責人介紹。
作為信也科技自研的一款輕量級分布式消息系統,PMQ能夠最大限度地保證消息不丟失,具有部署運維簡單、監控治理豐富等特性。PMQ採用mysql資料庫進行消息存儲,能夠非常方便地進行水平擴展。目前信也科技內部超過700個應用接入了PMQ,每日消息量達10億左右。
在消息系統使用和運維過程中,通常會遇到消息發送慢、消息消費慢、消息可靠性、監控治理等常見問題。如果消息系統出現問題,會對業務產生很嚴重的影響。而PMQ針對這些問題都有妥善的解決方案。
以消息發送慢為例,隨著接入的消息量與客戶端的實例越來越多,會出現消息發送變慢的情況,甚至出現消息發送失敗的情況。在PMQ中,客戶端內置了監控措施,用戶可以很方便地查看自己消息發送的情況,當用戶發現消費慢時,可以根據規則在線擴容,將topic的發送壓力分散在其他的節點,從而提高消息發送速度。
在消息可靠性方面,由於消息在各條業務線的廣泛應用,其可靠性要求非常高,需要防止消息的存儲單點故障。在PMQ中,消息最終是存儲在mysql中,dba會對每個mysql實例做一主兩從設置,當某個消息發送成功後,mysql備份機制會將消息備份到2個從節點上,以此來保證消息的高可靠性。
與主流MQ的功能相比,PMQ的功能更為完善,治理豐富。例如,PMQ內設訂閱關係模塊用於綁定consumerGroup和topic的訂閱關係。通過該模塊,用戶可以動態設置消息的失敗重試次數、堆積告警閾值、延遲消費時間、延遲拉取時間、批量消費條數、批量拉取條數、批量處理線程數、客戶端熔斷時間、設置消費指定消息的tag等功能。
此外,PMQ還包括消費的動態啟停、動態修改偏移等諸多模塊。在功能方面,信也科技未來還將為PMQ實現實時消息、區間消費、全量消息追蹤、多環境支持等功能。
信也科技相關負責人表示,在深耕金融科技行業十二年的歷程中,信也科技的技術人員從開源社區中受益,各類自研技術也經過了千億級別交易量的穩定性捶打,希望通過DAS等產品把這樣的開源精神繼承下去,和廣大技術愛好者一起分享開源果實,共建開放共贏的金融科技生態。 (文/景明)