项目上产品因为前端网络架设负载均衡设备,导致产品运行不稳定,为了尽快重现解决问题,首先需要能够模拟出项目上使用的负载均衡设备,对产品持续进行压力测试;
负载均衡设备特点:
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)
}
分享到:
相关推荐
Reek - Ruby代码味道探测器
Http-2 - HTTP/2协议的纯Ruby实现
Whois一个智能纯Ruby实现的WHOIS客户端与解析器
webmock, 在 ruby 中,对HTTP请求的stub和设置期望的库 WebMock 在 ruby 中对HTTP请求进行存储和设置期望的库。特性在低HTTP客户机库级别的Stubbing请求( 在更改HTTP库时不需要更改测试)设置和验证HTTP请求的期望...
ruby实现邮件收发
ruby-snmp, SNMP ( 简单网络管理协议)的ruby 实现 用于 ruby的 SNMP库摘要这里库实现 SNMP ( 简单网络管理协议) 。 它在纯 ruby 中实现,因此不依赖于的外部库( 如 ) 。 你可以在 ruby 可以运行的任何地方运行这里库...
twitter-cldr-rb - ICU的Ruby实现
Ruby - NetHTTP实现短信验证码注册登录完整示例:Ruby - NetHTTP.rb和附件说明.rar
DeviceDetector一个用Ruby编写的精确和快速的user agent解析器和设备探测器
本资源是飞机大战类射击游戏的ruby实现,需要安装rpg maker xp 1.03才可打开本游戏。
ruby-nmap, Nmap探测工具和安全/端口扫描器的Rubyful接口 ruby源代码问题文档文档[Email] ( mailto: 后端,gmail.com) 处的mod3 描述to nmap,探测工具和安全/端口扫描器的ruby 界面。特性为运行nmap提供一个 ruby ...
ruby实现文件对比资料收集,看完之后写一个文件对比的脚本或者输出报告没有问题,可以看看,
httplog记录从应用程序发出的传出HTTP请求。 帮助调试讨厌的API错误响应,或者只是大致了解幕后情况。 到目前为止,由于此问题,此宝石可与rubygems.org的以下ruby mo httplog版本1.4.0和1.4.1兼容,请更新至1.4.2或...
RESTClient - 简单的HTTP和Ruby的REST客户端
HttpLog - HTTP请求日志输出
基于ruby实现的音乐推荐网站.zip基于ruby实现的音乐推荐网站.zip基于ruby实现的音乐推荐网站.zip
Typhoeus封装libcurl让http请求更快和可靠
ruby_使用ruby实现的排序算法_sorting