负载均衡和故障转移
负载均衡和故障转移

网关既支持delphi,又支持lazarus开发(支持更多操作系统和CPU平台)。
必须使用网关才能部署中间件集群,中间件集群是通过网关实现客户端负载均衡和故障转移的。
网关配置server.json
{ "ssl":false,//开启https "selfsigned":false, "cert":"server.pem",//ssl证书 "privatekey":"server.key",//ssl私钥 "privpassword":"", "httpport":12345,//网关使用端口 "threadpoolsize":64,//网关工作线程池线程初始数量 "httpclientpoolsize":64, "loadbalance":"roundrobin",//roundrobin(轮转),random(随机),iphash(ip哈希)
// 主动地健康检查,网关定时主动地去ping后端的服务列表,当发现某服务出现异常时,
// 把该服务从健康列表中移除,当发现某服务恢复时,又能够将该服务加回健康列表中。
"health": { "interval":3000, "retry":1, "timeout":200 }, "httpserver"://被网关代理的服务列表 [ { "protocol":"http", "name":"webapi server1", "prefix":"http", "ip":"127.0.0.1", "port":1234 } ], "rewrite"://url重定向 [ { "frommethod":"GET", "tomethod":"GET", "fromurl":"/rest/test", "tourl":"/test" } ] }
负载均衡和故障转移算法:
server.json文件的"loadbalance":"roundrobin"配置,共有3种配置项:iphash,roundrobin,random。
1)随机(random)算法:
网关将客户端请求随机地分配给后端的代理服务。
2)轮转(轮转)算法:
网关将客户端请求根据代理服务列表,顺序依次分配给后端的代理服务。
3)ip(哈希)算法:
网关将同一客户端请求,分配给同一的后端代理服务,依据是客户端访问网关的remote ip。
网关可以静态配置代理服务,代理服务也可以通过webapi接口动态地向网关注册或移除自身。
1)静态配置代理服务
server.json文件httpserver数组。
"httpserver": [ { "protocol":"http",//协议 "name":"webapi server1",//代理服务名称 "prefix":"http",//前缀 "ip":"127.0.0.1",//代理服务ip "port":1234//代理服务端口 } ],
2)代理服务通过webapi接口动态地向网关注册或移除自身
2.1)动态注册服务
http://网关ip:port/addserver/{"name":"service1","prefix":"http","ip":"localhost","port":1234,"protocol":"http"}
2.2)动态注销服务
http://网关ip:port/removeserver/{"name":"service1"}
url重定向
通过url重定向,可以改变客户端请求的http method和url。
server.json的rewrite数组。
"rewrite": [ { "frommethod":"GET",//源方法 "tomethod":"GET",//目的方法 "fromurl":"/rest/test",//源url "tourl":"/test"//目的Url } ]
https配置
server.json文件
"ssl":false,//是否使用https "selfsigned":false,//使用自签名 "cert":"server.pem",//ssl证书 "privatekey":"server.key",//ssl私钥 "privpassword":"",//私密
反向代理健康检查
网关主动地检查代理服务的健康,网关定时主动地去ping后端的服务列表,当发现某服务出现异常时,
把该服务从健康列表中移除,当发现某服务恢复时,又能够将该服务加回健康列表中。
"health": { "interval":3000,//间隔3秒 "retry":1,//尝试次数 "timeout":200//Ping超时 },
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/18853525

浙公网安备 33010602011771号