·
client访问服务器的时候,为了不同的地区能够有一个快速的响应,获取静态资源即可,那就通过CDN来访问,例如,北京的用户访问某宝会直接连接到北京的CDN,上海的会连接到上海的CDN.
client通过CDN,访问会从Nginx服务器通过转发,到某台Tomcat。其中Nginx与Tomcat需要作为高可用的服务器,这里会使用Keepalived。
tomcat的服务器部署的时候不会只有几台,受限于服务器的CPU,内存,io,中型以上公司都会部署很多台服务器,这要看网站的规模程度。
我们的Service都会跑在tomacat上吗?不一定,因为如果Service都跑在Tomcat上的话,比如订单服务,会员服务,不同的子网站都会有这一块业务,问题就来了。比如说,公司的子网站都用的是同一个服务,如果跑在Tomcat上的话更新的时候就把Tomcat一个一个停了再更新?肯定不会!所以Tomcat上只有Action,服务跑在单独的服务器上。
再接下来会做一个分库分表的操作,现在用的火热的技术是MyCat,里面实现了一致性Hash,当我们的数据库不断增加的时候,查询库表依然能够查到原来的用户的信息,而不至于分库分表找不到原来的用户信息了。
一般做数据库存储单独会有读写分离,就是做两个数据库,其中一台读操作,另外一台进行写操作。
技术要点:keepalived,dubbo,mycat,redis,分库分表,一致性Hash