`
lj6684
  • 浏览: 955075 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Ruby实现的简单HTTP探测请求发生器

    博客分类:
  • Ruby
阅读更多
项目上产品因为前端网络架设负载均衡设备,导致产品运行不稳定,为了尽快重现解决问题,首先需要能够模拟出项目上使用的负载均衡设备,对产品持续进行压力测试;

负载均衡设备特点:
1. 通过发送空的HTTP请求,探测产品具体服务端口是否可连通;
2. 探测请求发送间隔5秒;
3. 发现某一服务端口不通,立即动态切换服务请求到备用设备上;(这个功能不是此次模拟重点)

Ruby简单实现如下
require "open-uri"

#监听服务器IP地址
ip = '127.0.0.1'
#待监听端口列表
ports = [20440, 20443, 20448]
while true		
  ports.each do |port|
    url = "http://#{ip}:#{port}"		
    begin
      open(url) do |http|
        puts "[#{Time.now}] #{url} OK"
        html = http.read
      end
    rescue Exception => e
      puts "[#{Time.now}] #{url} #{e}"
    end
  end	
  puts "\r\n"
  sleep(5)
end


TCP监听版本
require "socket"

ip = '172.16.13.12'
ports = [30443,7443]
loop {
  ports.each do |port|
    begin
      socket = TCPSocket.open(ip, port)
      puts "#{Time.now} #{ip}:#{port} test OK"
      socket.close
    rescue Exception => e
      puts "#{Time.now} #{ip}:#{port} test error [#{e}]"
    end
  end	
  puts "\r\n"
  sleep(5)
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics