中间件可以对系统进行解耦,比如上层系统对下层系统进行网络请求,考虑下面结构
- U -
/ | \
/--- | ---\
/ | \
A B C
如果下层系统增加节点的话就需要重启 U。
引入 HAProxy 或者 Nginx 之类的中间件可以对两层系统进行解耦:
U
|
+------+
| HA |
+------+
/ | \
/--- | ---\
/ | \
A B C
这样上层和下层系统都依赖中间件,但是系统之间不再强耦合,下层系统可以依赖中间件随意的进行所扩容而不用被上层系统感知。
这时候中间件只要保证中间件稳定即可,可以在中间件上进行热重启。