閱讀325 返回首頁    go 阿裏雲 go 技術社區[雲棲]


微服務基礎

微服務基礎篇

  • 1: service consumer -> Proxy Server ->Load Balance -> Service Discovery -> Target Service
  • 2: Broser curl Other -> Zuul -> Ribbon -> Euraka -> Restful API

  • zuul: 是邊緣服務,用來提供動態路由,監控,授權,安全,調度等功能,將權限控製等一些業務邏輯抽離出來,單獨放到Zuul裏,使得服務組件更簡單,具有更好的複用性.

  • Zuul還負責將請求路由到服務上,起到了前台接待人員的作用,負責訪客接待,當然也可以不使用zuul,
    這時請求直接與後台的服務交互,但是這樣破壞了接口原則,相當於不要前台人員直接去公司裏麵找人

  • zuul是反向代理工具,類似的還有Nginx,
    區別:
    正向代理 代理的是客戶端,反向代理代理的是服務端
    正向代理: 服務端不知道客戶端是誰.
    反向代理: 客戶端不知道服務端是誰.

  • Ribbon 維護了一個服務列表,如果實例注銷,ribbon能夠自行將其剔除,但是如果該服務實例重新啟動或者增加實例,需要手工調用Ribbon的接口吧服務加進Ribbon的服務列表.
    這個工作還是交給euraka好了,所以一般二者結合使用.
    客戶端負載均衡: 具體來說是通過采取某種策略為客戶端選擇一個服務端,從而能夠減少對服務端的壓力,達到均衡負載的效果

  • Feign: 是一個組件也是一個webservice客戶端,用戶服務之間調用.

  • 微服務之間的通信有同步和異步: 同步的方式有: Rest,SOAP,RPC ,其中 Rest是麵向資源的,SAOP的麵向方法的,RPC是麵向接口的.
    Rest的主要特點: 每個資源都有一個ID,鏈接資源在一起,使用標準方法,資源多重描述,無狀態通信, 優勢: 易開發已維護,使用RPC的話,需要調用接口方法,代碼上有滲透.
    AXIS,CXF都會根據WSDL文件生成客戶端代碼,調用時代碼耦合很多第三方代碼

  • Kafka: 來自LinkedIn之後成為Apache的一部分,Kafka本身是一個基於分布式係統,具有快速,可擴展,高性能,低耦合,高可靠性,數據不丟失等優點,
    相比於傳統消息係統有:(1)基於分布式(2)可同時為發布和訂閱提供高吞吐量(3)支持多訂閱者,當失敗時能自動平衡消費者(4)將消息持久化到磁盤,因此可用於批量消費,如ETL以及實時應用等
    係統架構:

  • Broker:Kafka集群包含一個或多個服務器,這些服務器被稱為Broker
    Topic: 集群上有很多Topic,每個topic代表一類消息,所有發布到集群上的消息都會進入到屬於自己的那個topic中,等待被處理
    Partition:在物理存儲上,每個topic包含一個或多個patition,創建topic時刻指定partition的數量,每個partition對應於一個文件夾,該文件夾下存儲該partition的數據和索引文件.
    Producer: 負責發布消息到Kafaka broker
    Consumer: 消息消費者,負責從kafka broker讀取消息進行處理.
    Consumer Group: 每個消費者都屬於一個特定的Consumer Group,沒有就是默認組.

最後更新:2017-10-23 12:33:35

  上一篇:go  雲效2.0助力企業成功實施DevOps,讓軟件交付質量更快更好
  下一篇:go  2017杭州雲棲大會,你帶走.club的猴米米了嗎?