中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么定義開發環境的服務消費策略

發布時間:2021-09-03 10:33:52 來源:億速云 閱讀:102 作者:小新 欄目:大數據

這篇文章主要為大家展示了“怎么定義開發環境的服務消費策略”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“怎么定義開發環境的服務消費策略”這篇文章吧。

關于rpc框架,簡單介紹下springcloud的 ribbon。

springcloud的注冊發現機制,當發現提供者有多個節點,會通過ribbon模塊的指定負載策略來選擇其中一個節點,這就是負載均衡

ribbon自己默認實現了很多種負載策略,前面先簡單說下這些存在的常用的策略,最后重點說如何定義一個高效的dev環境負載策略。

ribbon代碼jar包:

怎么定義開發環境的服務消費策略

關于負載均衡算法的代碼在

<dependency>
    <groupId>com.netflix.ribbon</groupId>
    <artifactId>ribbon-loadbalancer</artifactId>
    <version>2.2.5</version>
</dependency>

ribbon默認實現的負載均衡策略有:

    RoundRobinRule(輪訓策略):當可用服務有 node1,node2,node3時候,ribbon會在緩存里面存在這三個節點信息,然后再消費時候按照順序依次消費這個三個節點。這個策略也是ribbon默認的策略。

    BestAvailableRule(最佳可用策略):當可用服務有 node1,node2,node3時候,ribbon會在緩存里面存在這三個節點信息,然后依次調用三個節點,如果節點被忽略跳過,沒有被忽略再去嘗試請求節點,如果該節點的瞬間并發最小,則會使用該節點的服務。

怎么定義開發環境的服務消費策略

        RandomRule(隨機策略):當可用服務有 node1,node2,node3時候,ribbon會在緩存里面存在這三個節點信息,然后隨機取出一個節點提供調用。隨機算法也很簡單,取可用節點的總數量值,然后用rand.next(可用節點總數量值)來獲取一個小于總數量的整數值,然后從可用節點list內取出一個服務來調用。

       ZoneAvoidanceRule(百度翻譯:區域回避策略):在可用節點集群的上層,如果存在一個機房集群,比如程序在阿里云的華東節點,北京節點均有部署,則可以使用這個策略,他會優先幫你篩選出一個可用的zone,然后再去選擇一個可用的節點(這個策略應該很少用到吧,如果用到的話,應該運維會去做這個事情,我們的程序目前還只是在阿里云的華東2地區)。

    還有好多種策略,大家可以自行選擇使用。

    重點來了

     對于開發人員有沒有感覺開發微服務程序時候,效率變得很低。程序啟動起來要花費十分鐘左右,一不小心就會出現臨時改端口,系統內存不足的情況。這其實對程序員是很痛苦的。

    我先說一下我們之前遇到的問題: 

  1. 開發需要把所有后端啟動起來,一個注冊中心,五個后端微服務,兩個前端(如果開發一個,就啟動一個)。這樣本地開發機器需要啟動最少七個程序(每個開發程序員擁有了服務端全代碼的git權限)。

  2. 領導對每個程序員擁有全代碼的權限有點敏感。

  3. 開發人員diss我,,程序吃內存導致電腦卡頓。

  4. 本地開發機器的服務不小心注冊到公共開發環境,但是本地代碼會有個別bug,開發環境的服務就會變得很詭異,一會好一會不好,使得產品經理總以產品不穩定理由來diss整個開發團隊,搞得火很大。

這個問題其實已經驗證影響開發人員的效率了,并且都在做一些無用功。所以就在想如果解決這個問題。

第一種:寫一個啟動腳本文件。一鍵啟動所有的程序,時間降低到了三分鐘,雖然時間減少了,但是對于開發人員的電腦卡頓,領導的敏感問題還是沒有解決。

第二種:開發環境部署一套完整的服務,程序員各自開發自己的程序。所有本地開發機器的服務都注冊到公共開發環境內。這時候,開發環境就是一個集群環境了。但是本地代碼都是不穩定的,如果其他同事調用了你的服務,那很容易就影響了其他同事的進度了。這時候的消費者歸納為兩種:開發環境,開發人員。提供者有三種:開發環境,當前開發人員,其他開發人員。所以對于開發環境他的消費優先級是開發環境》開發人員。對于開發人員他的消費優先級是當前開發人員提供的服務》開發環境提供的服務》其他開發人員提供的服務。這樣就可以達到一種效果,當你使用測試環境的app,web系統,他始終消費的是開發環境的服務。相對很穩定,對于開發人員想要調試自己寫的一個服務,只需要把對應點服務啟動起來,本地調用服務的時候,發現注冊中心只有開發環境的服務時候,直接消費。如果注冊中心多個服務節點的話,優先去本地開發環境ip的服務,如果沒有改服務,說明該服務其他同事本地也注冊進去了,但是相對來說消費開發環境的服務會更靠譜一些,所以取開發環境服務。

這樣就降低了啟動時間,減少了因為程序多耗內存,領導敏感的事情了。

具體的代碼實現:

聲明一個policy

怎么定義開發環境的服務消費策略

   實現該規則類,主要就是繼承 AbstractLoadBalancerRule 類

怎么定義開發環境的服務消費策略

以上是“怎么定義開發環境的服務消費策略”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁海县| 抚顺市| 扬州市| 兰溪市| 陆丰市| 鹤峰县| 汶上县| 德惠市| 吕梁市| 呼伦贝尔市| 稷山县| 普安县| 双城市| 渭源县| 巴彦淖尔市| 丁青县| 辽阳市| 乐昌市| 湟源县| 崇仁县| 巴中市| 绿春县| 专栏| 德安县| 信宜市| 岚皋县| 高阳县| 彩票| 卓尼县| 雅安市| 电白县| 江北区| 龙州县| 杨浦区| 平湖市| 绥德县| 永顺县| 乐清市| 荣昌县| 丰镇市| 天津市|