一開始接觸spring cloud的時候,還沒有聽說過微服務這個概念,對於服務直接的溝通是什么個情況,怎么組成微服務的完全懵逼,看到網上的教程都是用ribbong和fegin來調用接口,然后官網也給的是這個教程就朝着這個方向一路走到黑。。。。
1、先記錄下ribbon和fegin的技術實現以及問題
ribbon和fegin說到底都是直接調用接口,主要是用來解決一些需要多個服務同時做的事,ribbon直接調用接口地址,無非是做了一些封裝處理,什么異常,根據服務名稱負載均衡,甚至還有相配套的斷路器hystrix,turbine,而fegin是差不多的,無非就是把restful api接口封裝成本地函數,這里還有個問題就是fegin調用遠程接口如果不能用的話,項目啟動的時候就會報錯,這點很坑非常坑。
2、串聯不是很好可以考慮采用消息隊列的方式
這里主要有兩種大的考慮,一種是串聯就是上面的ribbon,fegin,還有一種是通過消息組件的方式解耦微服務,前面一種方式通過可靠事件模式,業務補償模式,TCC模式(Try-Confirm-Cancel)可以很高精度的保證數據的最終一致性,后面一種思路當出現異常的時候貌似不能很好保證數據的一致性,還是要再做一些東西才行,上面的3中模式也可以做第二種思路
這篇文章未完待續。。。。