一.HttpClient 在java代理內部能夠使用httpClient發起http請求訪問服務器獲取資源.(工具API)
二.SOA思想(微服務代理編輯的標準),面向服務的架構是一個組件模型,它將應用程序的不一樣功能單元(稱爲服務)進行拆分,並經過這些服務之間定義良好的接口和協議聯繫起來,接口是採用中立的方式進行定義的,它應該獨立於實現服務的硬件平臺、操做系統和編程語言。這使得構建在各類各樣的系統中的服務能夠以一種統一和通用的方式進行交互。
三.RPC思想介紹
RPC是遠程過程調用(Remote Procedure Call)的縮寫形式。
總結:
1.當完成業務時本身沒有辦法直接完成,須要經過第三方幫助才能完成的業務,
2.使用RPC時「感受」上就是在調用本身的方法完成業務
四.微服務思想
核心: 1.分佈式思想(拆) 2.自動化(HA,自動化)
4.1傳統項目問題
1.若是採用nginx方式 實現負載均衡,當服務數量改變時,都必須手動的修改nginx.conf配置文件.不夠智能.
2.全部的請求都會經過nginx服務器做爲中轉.若是nginx服務器一旦宕機,則直接影響整個系統.nginx最好只作簡單的反向代理便可
傳統的方式 不夠智能…
java
調用步驟:
1.將服務信息寫入到註冊中心(1.服務名稱 2.服務IP地址 3.端口)
2.註冊中心接收到服務器信息,會動態的維護服務列表數據.
3.消費者啓動時會連接註冊中心.目的獲取服務列表數據.
4.註冊中心會將服務列表數據同步給消費者,而且保存到消費者本地.之後方便調用.
5.當消費者開始業務調用時,會根據已知的服務信息進行負載均衡操做,訪問服務提供者.
6.當服務提供者宕機時,由與註冊中心有心跳檢測機制.因此會動態的維護服務列表.
7.當註冊中心的服務列表變化時, 則會全網廣播 通知全部的消費者 更新本地服務列表.nginx
ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。
ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。
ZooKeeper包含一個簡單的原語集,提供Java和C的接口。
ZooKeeper代碼版本中,提供了分佈式獨享鎖、選舉、隊列的接口,代碼在$zookeepe
r_homesrcrecipes。其中分佈鎖和隊列有Java和C兩個版本,選舉只有Java版本。
歸納: ZK主要的任務是服務的調度,提供一致性的功能.ajax
4.3.1 最小的集羣單位幾臺
公式: 存活節點的數量 > N/2 集羣能夠建立
1臺: 1-1 > 1/2 假的
2臺: 2-1 > 2/2 假的
3臺: 3-1 > 3/2 正確
4臺: 4-1 > 4/2 正確
結論: 搭建集羣的最小單位3臺.編程
原則: myid最大值優先 myid值越大的越容易當主機. 超半數贊成即當選主機
題目: 問1,2,3,4,5,6,7依次啓動 問1:誰當主機 4當主機
問2:誰永遠不能當選主機??? 1 2 3json
說明: 瀏覽器規定 發起ajax時若是請求協議/域名/端口號若是3者有一個與當前的瀏覽器的地址不相同時,則違反了同源策略的規定.則瀏覽器不予解析返回值.跨域
跨域問題: 違反同源策略的規定就是跨域請求.瀏覽器
1.jsonp本質利用javaScript中的src屬性的get請求實現的跨域.
返回值必須通過特殊的格式封裝.
2.cors
添加在響應頭中信息.指定哪些服務器容許訪問.服務器