经过Nginx的反向代理将请求分发到tomcat中,若是tomcat支持100并发,Nginx支持50000并发,理论上nginx把请求发送到500个tomcat就能够了。nginx
Tomcat和数据库均可以水平扩展以后,单机的Nginx会成为瓶颈。数据库
LVS和H5解决网络四层负载均衡,性能高于七层的Nginx,单机LVS可支持几十万并发请求转发,F5是硬件负载均衡,性能比LVS高,可是价格昂贵。tomcat
为解决LVS服务高可用,能够采用主备方式解决可用性,使用keepalived模拟虚拟IP,而后把虚拟IO绑定到多个LVS机器上,访问虚拟IP时,请求会被路由到真实到LVS服务器上,当主LVS宕机时,keepalived会自动更新路由策略,把虚拟IP重定向到另外一台正常到LVS服务器上,达到LVS服务高可用。服务器
通常几个Nginx下面是一部分tomcat,Nginx之间经过keepalived实现高可用。网络
LVS是单机的,当并发数增长到几十万时,LVS服务器变成了瓶颈,用于用户较多,请求分布在不一样地区,致使访问同一个机房存在跨地域延迟。并发
DNS服务配置一个域名对应多个IP地址,每一个IP对应不一样机房虚拟IP,经过DNS实现了机房间的负载均衡,实现了机房级别的水平扩展。负载均衡
按照业务拆分代码,使单个应用指责清晰,能够独立升级迭代,同时因为不一样应用之间存在共用模块,致使升级迭代过程不自由。微服务
因而抽象出通用业务中台,用户,订单,支付,鉴权等做为单独服务进行治理,服务之间经过http,rpc进行通讯,服务之间须要作服务治理,限流,熔断,降级等工做,提升系统稳定性和可用性。性能