系统部署在AWS VPC(私有虚拟网络)中,分为内网区(PRIVATE SUBNET)和外网区(PUBLIC SUBNET)。
内网区的主机/节点仅可以和VPC内部的主机/节点进行受限通讯;外网区主机/节点不仅可以和内部的主机/节点进行受限通讯,同时可以和VPC之外的网络进行受限通讯。即VPC外部仅可以受限访问外网区而不能直接访问内网区。
一个VPC由两个AZ(可用区)组成,AZ是跨机房的,可以有效防止一个机房出问题而影响整个产品。
请求访问过程:
- HTTP请求到AWS的ELB(弹性负载均衡器);
- 请求分发给Haproxy;
- haproxy将请求继续分发到nginx上,nginx即是web server又是反向代理和负载均衡器,请求为静态资源时nginx可作为静态资源服务器;
- 请求为动态资源转发到后面的tomcat上处理;
- tomcat接收请求,组装业务逻辑,通过name server(zookeeper)查找service,并通过rpc(RMI)调用;
- service为服务的实现。