面向海量数据的高并发高可用分层系统架构设计

阅读文本大概需要4分钟。

       近期参与一个互联网项目,按照该项目的需求设计了分层的系统架构,主要目的是高并发高可用,能够根据用户访问量和并发情况进行伸缩。

        第一个部分是由Web服务器和应用服务器构成的负载均衡区。该区域的主要目标是分散用户的访问量,平衡各服务器的压力,提高各服务器的资源利用率,因为大多数网站都是属于IO密集型,因此可以利用线程池增加并发处理能力,采用多核多内存的资源配置模式。可以采用Apache+Tomcat或Nginx+Jboss来实现,其中消息服务器通过异步处理机制可以提高系统响应速度,增加用户体验。

       第二个部分是数据存储区。包括了NoSql数据库和关系型数据库,NoSql数据库主要目的是实现快速缓存,通过主从结构提高处理能力,NoSql数据库可以存储需要经常访问的数据,可以选择Redis、Memcache、berkelydb等。关系型数据库主要存储交易和行为数据,通过读写分离和业务拆分提高数据库的负载能力。同时,数据在写入关系型数据库时候同时更新读库和Nosql数据库,以保证数据的一致性。数据一致性符合CAP原理。同时数据库存储的大量交易、行为数据可以通过ETL的形式提供给数据仓库作为数据分析和报表使用。

       第三个部分是数据采集区。包括了多并发多线程的采集服务器集群,以提高数据更新的实时性。数据采集后存入分布式数据库,因存在大量非结构化数据,所以可以采用Monogodb、Hbase等文档或列表型数据库存储海量数据。Monogodb内置Map-reduce处理,Hbase可以结合Hadoop做Map-reduce大数据分析。生成的结果可以同步到数据存储区,以便于用户的查询。

  整个体系结构如下图:

       一个系统能不能支持百万并发或者千万并发需要一张牛逼的架构图,就像万丈高楼平地起,如果图纸设计不合理可能盖到一般就倒了。系统也一样,如果前期没有做好整体架构,后期业务量上来了想拓展发现只能推倒从来,这样的话有需要花费大量的人力物力,还不如前期好好搭建。

来源:https://blog.51cto.com/casey/1741461
作者: 清茶问道

往期精彩

01 漫谈发版哪些事,好课程推荐

02 Linux的常用最危险的命令

03 精讲Spring Boot—入门+进阶+实例

04 优秀的Java程序员必须了解的GC哪些

05 互联网支付系统整体架构详解

关注我

每天进步一点点

很干!必须好看☟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值