最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python負(fù)載均衡的簡(jiǎn)單實(shí)現(xiàn)方法

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

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

在Nginx負(fù)載均衡模式下,請(qǐng)求會(huì)發(fā)送到壓力最小的未宕機(jī)服務(wù)器上。今天我們不考慮目標(biāo)服務(wù)器的壓力,用python實(shí)現(xiàn)最簡(jiǎn)單的負(fù)載均衡方法,即將請(qǐng)求發(fā)送到未宕機(jī)的服務(wù)器上。

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

#!/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為封裝好的報(bào)錯(cuò)類無(wú)需在意。

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

總結(jié)

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

相關(guān)文章

  • python中cv2模塊如何安裝使用

    python中cv2模塊如何安裝使用

    這篇文章主要給大家介紹了關(guān)于python中cv2模塊如何安裝的相關(guān)資料,CV2指的是OpenCV2(Open?Source?Computer?Vision?Library),是一個(gè)開(kāi)源的庫(kù)平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),有很強(qiáng)大的圖片處理功能,可實(shí)現(xiàn)圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法,需要的朋友可以參考下
    2023-10-10
  • python常用文件操作(讀寫追加等)

    python常用文件操作(讀寫追加等)

    在Python中,文件操作是一項(xiàng)常用的任務(wù),本節(jié)將介紹如何執(zhí)行基本的文件操作,如讀取、寫入和追加數(shù)據(jù),我們將通過(guò)實(shí)例代碼詳細(xì)講解每個(gè)知識(shí)點(diǎn)
    2023-06-06
  • 詳解基于K-means的用戶畫像聚類模型

    詳解基于K-means的用戶畫像聚類模型

    這篇文章主要介紹了基于K-means的用戶畫像聚類模型,本文中就是使用one-hot思想將不同維度的數(shù)據(jù)利用字典映射的方式將其轉(zhuǎn)化為數(shù)據(jù)向量,需要的朋友可以參考下
    2022-05-05
  • Python subprocess模塊學(xué)習(xí)總結(jié)

    Python subprocess模塊學(xué)習(xí)總結(jié)

    從Python 2.4開(kāi)始,Python引入subprocess模塊來(lái)管理子進(jìn)程,以取代一些舊模塊的方法:如 os.system、os.spawn*、os.popen*、popen2.*、commands.*不但可以調(diào)用外部的命令作為子進(jìn)程,而且可以連接到子進(jìn)程的input/output/error管道,獲取相關(guān)的返回信息
    2014-03-03
  • python神經(jīng)網(wǎng)絡(luò)tfrecords文件的寫入讀取及內(nèi)容解析

    python神經(jīng)網(wǎng)絡(luò)tfrecords文件的寫入讀取及內(nèi)容解析

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)tfrecords文件的寫入讀取及內(nèi)容解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python基礎(chǔ)之矩陣輸入的實(shí)例

    Python基礎(chǔ)之矩陣輸入的實(shí)例

    這篇文章主要介紹了Python基礎(chǔ)之矩陣輸入的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python中用matplotlib畫圖遇到的一些問(wèn)題及解決

    python中用matplotlib畫圖遇到的一些問(wèn)題及解決

    這篇文章主要介紹了python中用matplotlib畫圖遇到的一些問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 在Python中利用Into包整潔地進(jìn)行數(shù)據(jù)遷移的教程

    在Python中利用Into包整潔地進(jìn)行數(shù)據(jù)遷移的教程

    這篇文章主要介紹了在Python中如何利用Into包整潔地進(jìn)行數(shù)據(jù)遷移,在數(shù)據(jù)格式的任意兩個(gè)格式之間高效地遷移數(shù)據(jù),需要的朋友可以參考下
    2015-03-03
  • Python3.10新特性之match語(yǔ)句示例詳解

    Python3.10新特性之match語(yǔ)句示例詳解

    這篇文章主要為大家介紹了Python3.10新特性之match語(yǔ)句示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • pyqt5 刪除layout中的所有widget方法

    pyqt5 刪除layout中的所有widget方法

    今天小編就為大家分享一篇pyqt5 刪除layout中的所有widget方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06

最新評(píng)論

千阳县| 华阴市| 石泉县| 沙田区| 论坛| 铜陵市| 克拉玛依市| 兴业县| 施秉县| 通州市| 泰和县| 襄樊市| 孟津县| 贵南县| 文成县| 烟台市| 梅河口市| 铁力市| 祁连县| 石屏县| 焦作市| 抚松县| 安阳市| 九龙城区| 项城市| 英吉沙县| 营山县| 五原县| 灵宝市| 宣威市| 喜德县| 富民县| 贵州省| 万盛区| 东阳市| 新泰市| 广平县| 淮阳县| 康定县| 秦安县| 巴林左旗|