qian奇岸微信二维码 如您需要快速报价 请加技术经理微信 服务热线
13501992972
"MENU"
首页 > 行业新闻 > 正文

网站架构模式的解决方案

奇岸开发
ahqian.com
08/15/2022
wechat

无需加好友免费技术支持

网站架构模式的目标:面对高并发访问、大量数据处理、高可靠运行等问题和挑战,我们在实践中提出了许多解决方案,主要是为了实现网站的高性能、高可用性、易扩展、可扩展、安全等架构目标。

具体方案如下:

1、分层

分层是一种常见的架构模式,将系统划分为水平维度的几个部分,每个部分负责单一的责任,然后通过上对下层的依赖和呼叫完成整个系统的工作。大型网站系统一般分为以下三层:

应用层:负责具体业务和视图显示;服务层:为应用层提供服务支持;数据层:提供数据存储访问服务;分层架构挑战:必须合理规划分层边界和界面;

分层架构的约束:禁止跨层次和反向调用(服务层不允许数据层,应用层不允许服务层)

2、分割

分层是横向分割,分割是纵向分割,将不同的功能和服务分开,包装成高内聚低耦合的模块单元其优点是:

有助于软件开发和维护;方便不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力;3.分布式

对于大型网站,分层和分割的目的是促进分布式部署,在不同的服务器上部署不同的模块。通过远程呼叫协作工作,分布式意味着我们可以使用更多的计算机来完成相同的任务。计算机物理机器越多,CPU,存储资源越多,并发访问和数据量就越大,但分布式也会带来一些问题:

分布式服务意味着通过网络呼叫会影响性能;服务器越多,服务器停机的可能性越大,降低网站的可用性;数据难以保持分布式环境中的数据一致性;分布式事务难以保证;分布式管理增加了开发和维护的难度,记住不要为分布式分布;分布式常见方案:

分布式应用和服务:将分层和分割后的应用和服务模块分布式部署,可以改善网站性能和并发性,加快开发和发布的速度,减少数据库连接资源消耗,使不同的应用复用共同的服务,便于业务扩展;分布式静态资源:网站的静态资源例如js,css,独立分布式部署图片等资源,采用独立域名,即动态和静态分离;静态资源分布式部署可以通过域名独立加速浏览器并发加载,降低应用服务器的负载压力;分布式数据和存储:大型网站需要处理以P为单位的大量数据,单台计算机无法提供如此大的存储空间,这些数据需要分布式存储;分布式计算:网站广泛使用Hadoop和MapReduce批处理计算的分布式计算框架,其特点是移动计算而不是移动数据,将计算程序分发到数据的位置,加速计算和分布式计算;分布式配置:实时更新网站在线服务器配置;分布式锁:并发协同工作;分布式文件:支持云存储的分布式文件系统;4。

对于用户访问集中的模块,我们还需要考虑将其集群化,多台服务器部署相同应用构成一个集群,通过负载均衡器将请求分发给集群中不同的服务器处理。集群模式可以很好地扩展,当更多的用户访问时,只需要添加一个新的服务器到集群,同时由于多个服务器的应用,当服务器故障时,负载平衡器或系统故障转移机制将要求转发到集群中的其他服务器,所以我们需要至少两个服务器来组成一个集群,目的是提供系统的可用性。

5、缓存

将数据存储在最近的计算位置,以加快处理速度。缓存设计通常用于大型网站架构设计:

CDN:即内容分发网络,部署在最接近终端用户的网络服务提供商,用户网络请求总是先到达他的网络服务提供商,缓存一些静态资源,可以尽快返回用户;反向代理:属于网站前端,部署在网站前端,当用户要求到达网站时,第一个访问是反向代理服务器,缓存网站的静态资源,无需将请求转发给应用服务器,即可直接返回给用户;本地缓存:在应用服务器中缓存一些热点数据(经常访问的数据),应用程序可以直接访问机器内存中的数据,而无需访问数据库;分布式缓存:在特殊的分布式缓存集群中缓存数据,应用程序通过网络通信获取缓存数据;缓存有两个前提:

数据访问热点不平衡,部分数据访问更频繁,应放入缓存;数据在一定时间内有效,不会很快过期,否则缓存故障数据会出现故障,影响结果的正确性;缓存的优点:加快数据访问速度,降低后端应用和数据存储的负载压力;

6、异步

大型网站的一个重要目标是减少软件的耦合。除了上述分层、分割和分布式外,还有一个异步。业务之间的信息传输不是同步呼叫,而是将业务操作分为多个阶段,每个阶段通过共享数据异步合作;

在单个服务器中,可以通过多线程共享内存队列实现异步。业务前执行的线程将数据写入队列,后续线程从队列中读取数据进行处理;在分布式系统中,多个服务器集群通过分布式消息队列实现异步,可视为内存队列的分布式部署;异步架构是典型的生产者和消费者模式。此外,异步消息队列还具有以下特点:

提高系统可用性:当消费者服务器关闭时,数据将积累在消息队列中,生产者服务器可以继续处理业务请求,不影响系统的整体运行,当消费者服务器恢复正常时,可以继续处理消息队列中的数据;加快网站响应速度:处于业务处理前端的生产者服务器可以在处理业务请求后将数据写入消息队列,无需等待结果直接返回,减少响应延迟;消除并发访问高峰:使用消息队列将突然的高峰访问请求数据放入消息队列,等待消费者依次处理,不会对整个网站负太大压力;7。

网站需要24小时为用户提供服务,为了确保服务器停机,不影响网站运行,不丢失数据,需要一定程度的服务器冗余运行,数据冗余备份,当服务器停机时,可以将上述服务和数据访问转移到其他冗余服务器。

除了定期备份、存档和实现冷备份外,为了确保在线业务的高可用性,还需要分离数据库,实时同步实现热备份。

为了抵御一些非人为的自然灾害,一般需要备份整个网站数据中心,全球部署灾难数据中心,网站程序和数据实时同步到多个灾难中心。

8、自动化

主要包括自动化代码管理、自动化测试、自动化安全检测、自动化部署、自动监控、自动报警、自动故障转移(从集群中隔离故障服务器)、自动故障恢复(重启服务后同步数据保证数据一致性)、自动降级(拒绝部分请求,关闭部分不重要服务,将系统负荷降低到安全水平)、自动资源分配(将空闲资源分配给重要服务,扩大部署规模)。

9、安全

主要考虑以下几点

通过密码移动验证码进行身份验证;登录、交易等操作加密网络通信;防止机器人程序滥用网络资源攻击网站,使用验证码识别;常见XSS攻击、SQL注入编码转换;垃圾信息。过滤敏感信息;根据交易模式和交易信息控制交易转账等重要操作;10.总结

热度517

了解更多网站架构模式的解决方案欢迎联系奇岸开发客服。

奇岸开发可定制企业官网小程序、小程序商城、餐饮外卖小程序、预约小程序、多门店小程序、分销小程序及个人小程序。

微信二维码

微信长按识别或扫一扫,无需加好友直接咨询,企业网站开发、网站托管维护、企业管理系统开发、微信小程序制作、域名主机、网站备案、网站改版等提供专业技术解答。

精彩推荐

猜你喜欢