我需要调客户一个接口(webservice),客户把这个接口分A、B两台服务器部署了。 但他们又没有配置nginx来做负载均衡,我们也不能用nginx来给他加一个,只能自己用程序来实现。 请问怎么破这个问题?
人生最曼妙的风景,竟是内心的淡定与从容!
自己實現負載平衡,我覺得你可能需要這個。負載平衡演算法
你想怎麼破?不是已經想好了「自己用程式實現」一個了麼?
nginx不能用,是因为nginx通常用作反向代理,所謂反向代理是需要架在客戶伺服器那邊的(在你的情況裡這點做不到)
nginx
所以你需要自己寫代碼實現一個正向的代理伺服器,架在你們這一邊,你的應用程式都發送請求到你的這個“代理伺服器”,然後由代理伺服器轉發請求到客戶那邊去,至於api映射是hard code还是配置文件,亦或是jmx這還不都是你信手拈來麼!
api
jmx
所以你的問題是,自己懶得手寫一個proxy server,有沒有現成的?
proxy server
補充:
其實nginx也能做到啊,而且應該更簡單才對。
自己搭server
在這個服務器上搭nginx
給這個nginx配置轉送規則
讓你的應用程式請求全部都發到上面這台server去
這台新server幫你轉發請求到客戶的各個webservice去
客戶的各個webservice返回資料到這台新server
新 server回傳資料給你的應用程式
也挺好嘛,^^
只能自己做負載了
自己實現負載平衡,我覺得你可能需要這個。負載平衡演算法
你想怎麼破?不是已經想好了「自己用程式實現」一個了麼?
nginx
不能用,是因为nginx
通常用作反向代理,所謂反向代理是需要架在客戶伺服器那邊的(在你的情況裡這點做不到)所以你需要自己寫代碼實現一個正向的代理伺服器,架在你們這一邊,你的應用程式都發送請求到你的這個“代理伺服器”,然後由代理伺服器轉發請求到客戶那邊去,至於
api
映射是hard code还是配置文件,亦或是jmx
這還不都是你信手拈來麼!所以你的問題是,自己懶得手寫一個
proxy server
,有沒有現成的?補充:
其實
nginx
也能做到啊,而且應該更簡單才對。自己搭server
在這個服務器上搭
nginx
給這個
nginx
配置轉送規則讓你的應用程式請求全部都發到上面這台server去
這台新server幫你轉發請求到客戶的各個webservice去
客戶的各個webservice返回資料到這台新server
新 server回傳資料給你的應用程式
也挺好嘛,^^
只能自己做負載了