91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

python負載均衡的簡單實現方法

發布時間:2020-10-03 22:10:27 來源:腳本之家 閱讀:251 作者:熔遁丶螺旋手里劍 欄目:開發技術

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

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

我們想調用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為封裝好的報錯類無需在意。

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

總結

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

向AI問一下細節

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

AI

双城市| 德江县| 苍溪县| 桂林市| 崇文区| 吉水县| 安阳县| 巫溪县| 凤山县| 海口市| 南澳县| 青岛市| 莱阳市| 黄大仙区| 台中县| 富平县| 阳朔县| 阳新县| 乌兰察布市| 明水县| 邢台市| 商洛市| 万盛区| 深州市| 龙州县| 柏乡县| 临安市| 保靖县| 姚安县| 安泽县| 辉县市| 宁明县| 巴林右旗| 桐乡市| 济宁市| 宁强县| 佳木斯市| 洪泽县| 扎鲁特旗| 乌拉特中旗| 安塞县|