中间件可以对系统进行解耦,比如上层系统对下层系统进行网络请求,考虑下面结构

	   - U -
	  /  |  \
  /---   |   ---\
 /       |       \
A        B        C

如果下层系统增加节点的话就需要重启 U。

引入 HAProxy 或者 Nginx 之类的中间件可以对两层系统进行解耦:

		 U
		 |
	 +------+
	 |  HA  |
	 +------+
	  /  |  \
  /---   |   ---\
 /       |       \
A        B        C

这样上层和下层系统都依赖中间件,但是系统之间不再强耦合,下层系统可以依赖中间件随意的进行所扩容而不用被上层系统感知。 这时候中间件只要保证中间件稳定即可,可以在中间件上进行热重启。