一、适用对象
本方案可以用于前后端分离的单体应用,采用双活的简单设计,保证服务的高可用。
二、方案内容
- 硬负载:用户请求首先到达硬负载。硬负载负责把请求以用户选择的负载策略分发到nginx服务器;同时硬负载还可探活,如果某台服务器宕机则会把这台机器从负载均衡池中移除;同时硬负载还可以配置会话保持策略等;本网站的域名也绑定到这台硬负载服务器上。
- nginx服务器:即web服务器,把前端包部署到本服务器上,两台nginx服务实现双活;nginx还可以配置各种转发策略,把后端请求转发到应用服务器等;一般nginx服务器还会配置错误页跳转、浏览器缓存等等。
- 应用服务器:后端jar包在此服务器上启动,提供后台数据接口服务。
- 数据库服务器:可以使用主备服务,应用服务器连接vip,利用keepalive实现主备数据库的切换;两台mysql数据库服务器间可以使用binlog实现主从复制。
- 共享存储:两台nginx服务器或者应用服务器可以挂载同一个共享存储,实现上传文件的共享等。
- 缓存服务器:为了保证服务的快速响应,可以添加缓存服务器,常用的数据存放在缓存服务器中。