1、我在实习的时候第一次看了小公司的后台系统架构。怎么说呢刚开始觉得真的很厉害的样子。

                                                    后台架构的一点思考-LMLPHP

这是最典型的单机架构一台机子上面放了tomcat,mysql。所有的访问会直接打到mysql上面,单机的mysql是最大的性能瓶颈。 而且还有一点tomcat和mysql会对系统资源进行竞争。只能说这个适用于很小的初始项目。我当时进行了测试,一个2核心8g内存带宽50mb的机器上进行测试(结合当时的业务),最后发现只有可怜的17qps/s。只能说当时用户没什么数量的确够用。

2、当时还在实习公司的时候,因为用户渐渐的有了一定的数目,数据库的负载日渐变大。有时候cpu会达到100%也是很正常的事情。 因此决定进行升级。

                                         后台架构的一点思考-LMLPHP

这个架构只是在之前的基础上加了缓存,同时将mysql和缓存放到其他机器上。这个升级以后,qps得到了不错的提升。经过之前样例的测试从17qps/s->62qps/s。得到了非常不错的提升。但是还有存在瓶颈,tomcat的压力会变得日渐加大。

3、毕业了以后去了一家金融公司,他们的引入了新的体系架构微服务。

后台架构的一点思考-LMLPHP

架构图如上,浏览器去访问入口网关。通过网关去访问其中某一个服务,某一个服务可以做集群这样来进行均衡负载和提高性能。 在数据库方面,使用了读写分离可以降低对主库的io影响。同时使用了缓存来缓存一些热点数据。经过我的简单测试,qps大致可以在100qps/s-200qps/s的一个范围波动,因为和之前的业务并不是同一个,所以没有可比性。不过这种架构的瓶颈出现在数据库上面。因为时间久了表会变得很巨大,查询效率会降低。

4、金融公司的小规模升级,将数据库进行了改造。

正如之前说到的一样,在运行了半年以上的情况下,表的变得很大,查询时候的效率变得有些慢。因为需要对数据库进行一些改造。

后台架构的一点思考-LMLPHP

将数据库 从单一的主从升级为每个业务一个数据库,这样的话可以使将负载分配在不同的数据库下面。虽然这样做以后可能有一些业务库的压力仍然很大,但是可以把其他的业务的压力剥离出来。但是这种架构也有瓶颈就是在网关出,网关的瓶颈会极大的性能提升。

06-27 05:29