在服務器集羣環境中,阿里推出的dubbo框架一直是讓人仰望的存在,可如今想想,也沒啥。
dubbo其實就是一個調用工具,他的服務調度也就是知名的幾個負載均衡算法,服務監控其實也就是有一個定時任務在定期檢查服務情況,剩下的,調用的底層逃不開socket鏈接tcp協議,說白了,我其實完全可以自己實現自己的dubbo框架,至於註冊中心zookeeper,也不再是高山仰止般的存在了。(PS:我討厭那種有很多繁雜配置和很高學習成本的新技術)
zookeeper其實也可以自己實現,我完全可以用redis存儲各項配置,配合一套合理的緩存管理系統實時刷新各項服務的最新信息,譬如:A服務的配置是一個json信息:
1 { 2 'url':'192.168.1.123', 3 'serviceName':'A_Service' 4 'last_service_time':'12ms' 5 }
然後A服務有N臺機器,那麼這個服務其實是一個json數組的配置,這時路由策略就可以根據這些配置和算法去進行負載均衡,至於監控,也有很多實現方式,譬如:服務每次調用完更新配置時間到redis,如果不更新,則默認爲它不在狀態,郵件通知運維同學。
各種框架在這些道理上做了N多擴展,因爲要讓更多不通的場景使用,所以它必須要有很高的兼容性,所以每一個框架都是有很多功能是用不到的。