首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >案例:高并发业务系统上云设计

案例:高并发业务系统上云设计

作者头像
希望的田野
发布2019-12-13 18:09:44
2.1K0
发布2019-12-13 18:09:44
举报
文章被收录于专栏:信息化漫谈信息化漫谈

业务系统上云后,得益于丰富的云产品,让高并发的系统架构成为可以,如支持海量的用户访问、解决跨运营商的互联问题等以前私有云难以解决的问题。我们今天介绍一下简单的高并发系统设计案例。

首先看一下概览图

1、最终用户通过最后一公里上互联网。通过近几年运营商的提速降费,接入网络已成为光纤,速度很快。

2、业务流量通过骨干网进行中间业务交换。不同运营商之间的带宽拥塞、时延大的问题近几年来随着省内带宽互联已有一定解决,但如果业务跨域运营商,体验仍不如服务器、用户在同一张网好。该问题可以通过BGP多线进行解决。

3、第一公里是业务架构师设计的重点。接下来重点讲。

常用的高可用业务系统架构设计

1、CDN解决地域远、带宽突发的问题。首先采购CDN服务,四川的电信用户访问北京联通的源站点,通过CDN后,直接访问四川电信侧的CDN近端服务器。各位有兴趣会看到大型网站中,图片都放到了CDN中,表现形式是图片的地址是http://image.**.com,这样便于静态资源的加速。

2、反向代理服务器放在本地,避免对后端服务器的压力。Nginx服务器可以实现本地静态资源的存储。用户访问过来后,如果Nginx有用户需要的静态资源,直接返回,不再向内传递业务流量。

3、负载均衡实现多台web服务器的业务均衡。根据不同的用户ip来源、web服务器的真实压力,将请问分发到不同的web服务器中。弹性伸缩服务能根据web服务器的cpu、内存、带宽等平均值、最大值灵活增加、减少web服务器。

4、web服务器的本地缓存再次减少后端负荷的压力。web服务器可以实现本地静态资源的存储。用户访问过来后,如果web有用户需要的静态资源,直接返回,不再向内传递业务流量。

5、分布式缓存降低对数据库的压力。平常我们访问用户的数据,如积分都需要查询、并修改真实数据库的记录,造成压力。例如在11.11期间,我们将秒杀数据缓存到redis内存分布式数据库中,减少对Mysql数据库的压力;或者是更常用的网页间的session数据,判断用户是否登录成功,不用再到mysql数据库中查询。并不是所有数据都要放到redis中,而是将访问频率高、对数据更新频率不高的数据。

6、数据库读写分离。利用云上的数据库读写分离特性,将写数据库引流至主数据库,而将大量的读数据库的请求引流至从数据库中。当然读写分离一般通过数据库中间件来完成,如Mysql Proxy。

读写分离会带来新的问题,主从库的数据存在短时的数据不一致。因此要求数据库的中间件有cache,知道将正在修改的数据读请求应指向主数据。

7、分布式的文件服务器。对于图像、视频等大存储量的数据,一般会放到NAS、OSS等分布式文件系统中,便于横向扩展。

8、消息队列服务器将同步方式转异步方式处理。如果业务量突然暴涨十倍,难以支撑,我们可以增加一个消息队列服务器,将减库存等数据先缓存下来慢慢排队处理。大家都有在12306订过火车票,当你支付成功后,仍有提示订票失败的情况,12306将给你退费,这实际已经是一个应用场景。12306只同步扣了您的费用,但库存数据通过消息队列服务器进行异步处理。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信息化漫谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档