2018年,我在一家汽車租賃公司做基礎架構,主要是rpc,訊息佇列管理,任務排程系統,簡訊服務,註冊中心,配置中心。簡單說一說:
1 RPC + 註冊中心
RPC是自研的,參考神州專車的模式,支援TCP,HTTP兩種模式。
註冊中心是參考京東jsf的模式
獨立的http名字服務
tcp通訊使用rocketmq remoting
客戶端持久化使用berkleydb
註冊中心client使用推拉結合的方式
2 訊息佇列管理
公司主要是使用rocketmq ,我和團隊的成員做了兩件事情:
參考阿里ons client,參考其中的精華,設計了mq-client 做了簡單的最佳化
修改rocketmq的console,支援多叢集的模式
3 任務排程系統
公司使用的xxlJob , 我們進行了若干最佳化
參考美團crane,阿里的schedulex的測試
支援公司的rpc,自定義通訊協議
4 簡訊服務
公司接入了很多公司的簡訊服務,每個團隊都自己寫介面直接調簡訊公司的服務。每條業務線都單獨維護,假如短息服務變化,很多業務線都得改。
我參考騰訊雲的模式,設計了sdk, 每個業務線單獨接入sdk即可。
我覺得2018年我們基礎架構團隊做了很多事情,有一天,CTO準備創業了,大家在一起聊:“基礎架構的未來”, 他對我們講:“
以後雲越來越便宜了,而且雲端做的基礎架構更加優秀,那你們的未來在哪裡呢?
”
他的這句問話,我思考了很久。我覺得思路可以轉變下:
雲端雖然很美,但很多大的公司基於安全或者戰略考量,還是會自建機房,很多技術部也需要基礎架構,這種情況下,基礎架構的崗位還是會有需求
業務需求千變萬化,很難說雲端的服務可以滿足所有的技術場景, 基礎架構的獨特價值就有了,能夠對技術進行定製化。
公司技術領導肯定希望技術提供的服務安全,可靠,不排除在極端場景下,某一種雲不可靠,這個時候,基礎架構師需要能根據實際場景,能提供可靠的基礎服務(容災,負載均衡)。
基礎架構雖然在很多大公司有單獨的部門,但我想不要分條條框框,能站在高的維度思考公司的技術發展戰略就是好的架構師。
懂業務,技術強,能解決問題的人在任何公司都是受歡迎的。
大家對基礎架構師有什麼想法?歡迎在評論區留言。