后端架构设计涉及很多方面,并且跟网站规模有很大关系,规模越大涉及技术越多,下面介绍一下超大型网站后端架构设计,以及包含哪些核心技术。
分层是架构设计一种重要方式,通过分层来讲问题很高隔离,后端架构可以分为三层,一层是接入层、服务层、存储层。
接入层通过LVS、HAProxy等技术将请求接入,将请求量转发给后边nginx+lua,在这一层通过 lua 扩展构建一些业务逻辑,性能很高。
服务层包含http 服务,http服务一般实现组合逻辑,Tomcat是http服务所在容器,http服务一般实现比如填充sku 属性、描述、图片、说明、介绍等信息业务逻辑。
服务层RPC服务一般是更为基层服务,比如提供个性化推荐BI服务,返回推荐sku列表或者文章素材列表。RPC服务实现服务横向扩展,以及实现业务纵向拆分,能够使团队按职能进行拆分。RPC服务目前用的比较多的是dubbo、spring cloud。
服务层包含Monitor监控服务,监控包含多个纬度。线上服务业务纬度,对线上服务性能比如tp99指标,对于可用率是否100%情况进行监控,并且可以设置报警阈值,当监控达到阈值进行相应报警。jvm监控,对jvm内存、cpu、线程数等情况进行监控。docker监控,对 docker 内存、进程数、线程数、网络、磁盘等进行监控。通过以上技术手段实现对线上服务可用率、性能、jvm、docker等资源使用情况监控。能够预防线上服务问题,以及线上出现问题后能够快速定位问题,查找问题原因从而解决问题。
服务层Zookeeper可以实现注册中心和配置管理下发等。Zookeeper作为分布式系统核心协作组件,在分布式系统中起着很重要作用。在服务端开发中Zookeeper也起着核心作用,比如用作微服务注册中心,管理微服务注册信息。或者基于Zookeeper实现配置管理工具,方便对于线上服务配置管理以及配置下发,从而实现秒级降级以及秒级配置更新。Zookeeper还可以用作分布式锁,协调多个微服务同步操作。比如微服务缓存更新,可以通过Zookeeper协调,避免后端数据库压力过大导致数据库服务过载或崩溃。
存储层 memcached 、 redis 可以用来作为缓存服务提升访问性能,在某些场景下redis也可以作为主要存储,比如推荐系统,访问量大,但是对于数据事务性要求不高,作为唯一存储时,需要注意缓存系统不稳定或性能问题,需要服务本地缓存通用数据以作为兜底,避免缓存不可用导致服务不可用。
存储层 mysql 、oracle作为关系型数据存储,使用场景是订单、支付等事务强需求场景下,这种场景下分布式nosql数据库对事务支持本身是不够好的,比不上传统数据库,这种场景下mysql、oracle是最优选择。
存储层hbase是一种基于列式存储,方便基于列进行数据分析,分析单列不需要涉及所有列性能会快很多。但不适合基于行查出所有列,因为列存储在不同位置,根据行取出所有列性能会比较差。
以及基于Rocksdb类分布式KV存储,存储基于磁盘可以进行持久化存储,优点存储量大并且能进行持久化,缺点是基于磁盘以及数据结构等多种因素,随机读性能没有redis那么高。所以适合写多读少场景。可以结合redis缓存,作为redis后端的持久化存储。
ES作为全文检索服务,适合于全文检索服务,Mysql就不适合作为全文检索使用,因为一篇文章,每个词都有可能被检索,全部构建索引索引会非常非常大。
java语言栈Spring是事实上Bean管理、以及托管整体配置工业标准。jdk是 java 基石,支持java运行以及庞大 工具 包,来支撑业务快速开发。jdk中容器、多线程、锁、io、nio等。方便应用开发实现高性能网络、磁盘等设备操作,方便应用使用多线程技术。
每一种技术都有它的适用场景,架构设计时要根据实际情况去用,有很多trade off的事情,不要强行复用,要根据实际场景无论是编程语言,还是存储,还是消息队列技术等,都要根据实际场景去合理使用,才能发挥出技术最大价值。
架构设计需要有全局感、整体感,需要从总体上对技术进行把握,下面专栏是学习架构提升架构水平很好选择,当下购买有返现。
以上所述就是小编给大家介绍的《大型网站后端架构设计》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 架构设计(7)——如何设计一个架构
- 架构设计(8)—高可用架构设计
- 【架构设计的艺术】Kafka如何通过精妙的架构设计优化JVM GC问题?【石杉的架构笔记】
- 架构设计笔记(八):详细方案设计
- 微服务架构设计之领域驱动设计
- 架构设计模式—6大设计原则
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Apache源代码全景分析第1卷
2009-5 / 88.00元
《Apache源代码全景分析第1卷:体系结构与核心模块》是“Apache源代码全景分析”的第1卷。书中详细介绍了Apache的基础体系结构和核心模块的实现机制,包括配置文件、模块化结构、多任务并发,以及网络连接和请求读取,其中多任务并发体系结构是《Apache源代码全景分析第1卷:体系结构与核心模块》分析的重点,讨论了Prefork、Worker及WinNT三种MPM。《Apache源代码全景分析......一起来看看 《Apache源代码全景分析第1卷》 这本书的介绍吧!