Python实现简单负载均衡

使用场景,最近在研究把废弃的安卓手机利用起来跑python代码,但是有好多台安卓手机。我就想着把其中一台拿来做负载均衡,然后分配给其他4台烂手机,哈哈哈,废物再利用。至于安卓怎么跑python代码,就自己查一下相关资料了哈,这里就不赘述了。

``

  from flask import Flask, request, jsonify
   
  app = Flask(__name__)
   
  # 处理GET请求的示例
  @app.route('/get_example', methods=['GET'])
  def get_example():
      # 获取GET请求中的参数值
      param1 = request.args.get('param1')
      param2 = request.args.get('param2')
   
      # 构建返回的JSON数据
      response = {
          "message": "GET request received",
          "param1": param1,
          "param2": param2
      }
   
      # 返回JSON数据
      return jsonify(response)
   
  # 处理POST请求的示例
  @app.route('/post_example', methods=['POST'])
  def post_example():
      # 获取POST请求中的URL参数值
      url_param1 = request.args.get('url_param1')
      url_param2 = request.args.get('url_param2')
   
      # 获取POST请求中的Body值
      body_param1 = request.json.get('body_param1')
      body_param2 = request.json.get('body_param2')
   
      # 构建返回的JSON数据
      response = {
          "message": "POST request received",
          "url_param1": url_param1,
          "url_param2": url_param2,
          "body_param1": body_param1,
          "body_param2": body_param2
      }
   
      # 返回JSON数据
      return jsonify(response)
   
  if __name__ == '__main__':
      # 启动Flask应用
      # debug=True:开启调试模式,便于开发时调试错误,自动重载代码
      # host='0.0.0.0':让服务器可被外部访问,而不仅仅是本地访问
      app.run(debug=True, host='0.0.0.0')

``

代码注释说明
服务器列表和缓存池初始化:

服务器列表 servers 包含四个服务器的URL。
使用 Queue 初始化缓存池 cache_pool,大小为服务器数量。
将所有服务器加入缓存池。
检查服务器状态的函数 check_server_status:

该函数在一个独立的线程中运行,定期检查服务器状态。
对每个服务器发送一个GET请求,超时时间为5秒。
如果服务器响应正常且不在缓存池中,将其加入缓存池。
如果服务器不可用且在缓存池中,将其从缓存池中移除。
每10秒检查一次服务器状态。
处理请求的函数 handle_request:

从缓存池中获取一个可用服务器。
根据请求方法(GET或POST)发送请求。
请求完成后将服务器放回缓存池。
如果请求失败,递归重试最多3次。
示例使用:

设置请求头 headers 和 cookies。
发送一个GET请求并打印响应。
发送一个POST请求并打印响应。
通过这些注释,应该可以更清楚地理解代码的实现和工作原理。

posted @ 2024-06-06 23:26  只想安静的搬砖  阅读(47)  评论(0)    收藏  举报