微服務架構的思考

  要實現微服務架構,服務必須可以被透明的替代,也就服務支持複製式擴展。多個相同服務是徹底相同的,他們都處於活動狀態,當一個宕掉後,系統仍然是可用的。這是微服務架構顯著的特色。緩存

  服務執行的任務分兩類:被動調用、自發任務。架構

  對於被動調用,請求容易分配到某個服務,服務執行時會依賴一些數據,也會產生一些反作用,若是這些信息和服務是捆綁在一塊兒的,那麼這個請求也會和這個服務捆綁在一塊兒,那麼服務天然沒法透明的替代,這裏關鍵是須要將反作用的數據與服務自己分離開。經過分佈式緩存技術能夠解決這個問題,例如Apache Ignite分佈式

  對於自發任務,多個服務都處於活動狀態,若是你們作的事情都同樣就會產生衝突,他們必須進行合理分工。一般的作法有兩種,一種是有一個主服務進行分配,而後你們各司其職,當有服務宕掉或加入時,主從新分配。一種是引入一個協調者,全部服務共同協商出一個共同結果,當出現服務宕掉或加入時,從新協商。顯而後者的可靠性更高,也更加靈活。全部服務能夠作到真正的對等。解決分佈式一致性問題,ZooKeeper首當其衝。微服務

相關文章
相關標籤/搜索