亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python負載均衡的簡單實現(xiàn)方法

 更新時間:2018年02月04日 09:19:18   作者:熔遁丶螺旋手里劍  
這篇文章給大家介紹用python實現(xiàn)最簡單的負載均衡方法,即將請求發(fā)送到未宕機的服務器上,感興趣的朋友一起看看吧

提到分發(fā)請求,相信大多數(shù)人首先會想到Nginx,Nginx作為一種多功能服務器,不僅提供了反向代理隱藏主機ip的能力,還擁有簡單的緩存加速功能。當然Nginx最強大的功能還是分發(fā)請求,不僅提供了哈希,一致性哈希,負載均衡等多種請求分發(fā)模式,還保證了自己服務的輕量和穩(wěn)定。一臺Nginx服務器常年工作在高并發(fā)請求的環(huán)境下,也極少宕機。

在Nginx負載均衡模式下,請求會發(fā)送到壓力最小的未宕機服務器上。今天我們不考慮目標服務器的壓力,用python實現(xiàn)最簡單的負載均衡方法,即將請求發(fā)送到未宕機的服務器上。

我們想調(diào)用module_b模塊中的接口,module_b服務在10.10.10.115服務器上的10081,10082,10083,10084這4個端口上。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import random
import os
import sys
import time
import ConnectionError
import Module_bException
module_b = "10.10.10.115:10081,10.10.10.115:10082,10.10.10.115:10083,10.10.10.115:10084"
class Module_b():
  def __init__(self):
    self.url_prefix = [val.strip() for val in module_b.split(',')]
  def _request(self, short_uri, payload):
    res = None
    try_count = 1
    url_prefixs = self.url_prefix[:]
    url_prefixs.sort(key=lambda f: random.randint(0, 100))
      
    for curr_url_prefix in url_prefixs:
      url = os.path.join(curr_url_prefix, short_uri)
      try:
        res = requests.post(url, data=payload)
        break
      except ConnectionError as e:
        try_count += 1
        sys.stderr.write('can not connect to Module_b, retry ...\n')
        time.sleep(1)
        if try_count == len(url_prefixs):
          raise e
    if res.status_code != 200:
      raise Module_bException('HTTP ERROR: %s' % res.text)
    result = res.json()
    if result['status'] != '0':
      raise Module_bException(result['errstr'])
    return result['result']

ConnecttionError和Module_bException為封裝好的報錯類無需在意。

整個負載均衡的實現(xiàn)也很簡單,傳入api和參數(shù),然后從所有的module_b地址中隨機選出一個,拼接成完整的requests請求,如果無法訪問到module_b服務,那么將換到另一個未訪問過的module_b服務地址,直到訪問過全部的module_b服務。

總結

以上所述是小編給大家介紹的python負載均衡的簡單實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

相關文章

  • python通過郵件服務器端口發(fā)送郵件的方法

    python通過郵件服務器端口發(fā)送郵件的方法

    這篇文章主要介紹了python通過郵件服務器端口發(fā)送郵件的方法,涉及Python發(fā)送郵件的相關技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Python 獲取主機ip與hostname的方法

    Python 獲取主機ip與hostname的方法

    今天小編就為大家分享一篇Python 獲取主機ip與hostname的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python中如何調(diào)用ansys

    python中如何調(diào)用ansys

    這篇文章主要介紹了python中如何調(diào)用ansys問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python人工智能tensorflow函數(shù)tf.nn.dropout使用方法

    python人工智能tensorflow函數(shù)tf.nn.dropout使用方法

    這篇文章主要為大家介紹了python人工智能tensorflow函數(shù)tf.nn.dropout使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • matplotlib更改窗口圖標的方法示例

    matplotlib更改窗口圖標的方法示例

    這篇文章主要介紹了matplotlib更改窗口圖標的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • python+pygame實現(xiàn)代碼雨(黑客帝國既視感)

    python+pygame實現(xiàn)代碼雨(黑客帝國既視感)

    這篇文章主要介紹了python+pygame實現(xiàn)代碼雨(黑客帝國既視感),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 詳細聊聊為什么Python中0.2+0.1不等于0.3

    詳細聊聊為什么Python中0.2+0.1不等于0.3

    最近在學習過程中發(fā)現(xiàn)在計算機JS時發(fā)現(xiàn)了一個非常有意思事,0.1+0.2的結果不是0.3,而是0.30000000000000004,下面這篇文章主要給大家介紹了關于為什么Python中0.2+0.1不等于0.3的相關資料,需要的朋友可以參考下
    2022-12-12
  • Python importlib動態(tài)導入模塊實現(xiàn)代碼

    Python importlib動態(tài)導入模塊實現(xiàn)代碼

    這篇文章主要介紹了Python importlib動態(tài)導入模塊實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 詳解Python 爬取13個旅游城市,告訴你五一大家最愛去哪玩?

    詳解Python 爬取13個旅游城市,告訴你五一大家最愛去哪玩?

    這篇文章主要介紹了Python 爬取13個旅游城市,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • pytorch單維篩選 相乘的案例

    pytorch單維篩選 相乘的案例

    這篇文章主要介紹了pytorch單維篩選 相乘的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論