日活亿级用户的服务器架构要怎么搭?

tim实践系列——如何架构支持亿级别在线用户的即时消息系统 海量在线用户在应用上的行为,会产生巨大的数据量和高并发压力,对系统的并发处理能力与海量数据处理能力是一项大挑战。构建亿级别在线用户的即时消息系统或更高数据量的系统,不是一个大框架就可以解决的的问题,需要结合业务特点,从许多细微的地方入手才能更好的搭建符合实际业务情况的合理架构。以上3篇文章讲述了tim的集群架构特点,数据存储能力,安全限流等措施。实际上,除了限流措施,tim还提供了系列的验证,接口安全调用等措施。 阅读详情

引言

本来没想写这个题材的,为了某某童鞋能够更好的茁壮成长,临时写一篇负载均衡的。负载均衡,大家可能听过什么3层负载均衡、4层负载均衡、7层负载均衡什么的?那这是怎么分的呢,ok,是根据osi七层网络模型来分的,例如nginx是工作在应用层,应用层刚好是在第7层,因此nginx又可以称为7层负载均衡。

正文

DNS

开始呢,我们的应用只有一台web-server。那么你希望:输入guduyan.com就能定位该server!

那很简单,只要在DNS里配上域名和你的server映射关系,就能访问到啦!

640?wx_fmt=png

好,现在呢,多了一台web-server,你就可以通过在DNS里加一条配置,以DNS轮询方式进行负载均衡。如下图所示

640?wx_fmt=png

Nginx+DNS

现在假设,我们多了一些需求啊。你的系统按照功能模块拆成两个系统:用户系统和订单系统。那么你希望输入guduyan.com/user/的时候定位到用户系统。输入guduyan.com/order/的时候定位到订单系统。

那这时候,光靠DNS就不行了,就需要采用DNS+nginx进行负载均衡!如下图所示

640?wx_fmt=png

ps:nginx还可以做动静分离哦,大家应该懂的!

那如果系统的访问压力进一步加大,万一nginx挂了怎么办?如何给nginx引入热备?

640?wx_fmt=png

Lvs+Nginx+DNS

接下来随着系统规模的继续增大,你会慢慢的发现nginx也扛不住了!nginx工作在网络的第7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结构等。ps:好好思考为什么会出现nginx+Lvs被同时使用,注意看我演变的过程,面试必问!注意了,如果是比较小的网站(日pv<1000万),用nginx就完全可以了。

那么,在这种情况下的架构图如下所示

640?wx_fmt=png

可能有个疑问,为什么nginx层不用keepalived做热备?主要原因是:

最后,为了应对亿级的PV,一般会在DNS端配多个Lvs集群的地址。如下所示

640?wx_fmt=png

方案扩展到了这一步,Lvs层就没有必要再进行扩展新的节点了。这套架构已经能扛得住亿级的PV。当然,前提是你的应用没问题!另外如果资金充裕,Lvs可以替换为F5也是可行的。

总结

OK,这套架构已经能扛得住千万的PV。一般面对面试官的提问,诸如如何设计高并发架构啊,本文都可以作为参考回答之一。

640?wx_fmt=png

水文模型新手必看:用SWAT-CUP做参数率定,如何正确设置预热期、率定期和验证期?(附数据准备避坑指南) 本文详细介绍了使用SWAT-CUP进行水文模型参数率定的完整流程,重点解析了预热期、率定期和验证期的正确设置方法,并提供了数据准备的避坑指南。通过实操步骤和常见问题解决方案,帮助新手快速掌握SWAT-CUP参数率定的核心技巧,提升水文模型模拟精度。 阅读详情

相关推荐

(P2)PALM软件的基本使用流程

上一篇介绍了PALM在Ubuntu系统上的下载安装及安装后的目录文件结构,这一篇以自带的案例介绍软件的基本操作流程。(请转至example_cbl项目) 输入 声明:官网均有各个变量的说明,以下代码来自软件自带案例 palm的最小输入文件是p3d文件,以下是example_cbl_p3d的详细说明。(文件语言格式Fortran,请自行先学习下语言的基本语法。笔者也是新学者,有非常多的问题,很多参数也不能准确的说出是什么意思,还请不吝赐教,谢谢!!!) !几点说明 !1、该运行文件基本由三大块组成:1)in

ysqzhatian的博客 3260

十几亿用户中心系统架构,落地实践!

一、背景会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高...

架构文摘 1488

RRAM/ Near Memory Computing (NMC) Survey - Reading Notes 0707

Reading Notes of Resistive Random Access Memory – Day 2 Chapter 3 RRAM Characterization and Modeling Overview of RRAM Physical Mechanism A general picture for the filamentary switching mechanism. Forming: 对本征RRAM样本,加电压VformingV_{forming}Vforming​,中间氧化层的O

Blog of Lucky H6 992

B站刚崩,唯品会又崩:亿级用户网站的架构硬伤与解决方案

事故等级主要针对生产环境,划分依据类似于bug等级。P0级 属于最高级别事故。比如崩溃,页面无法访问,主流程不通,主功能未实现,或者在影响面上影响很大(即使bug本身不严重)。P1级 属于高级别事故。一般属于主功能上的分支,支线流程,核心次功能等P2级 属于中级别事故。主要根据企业实际情况划分。P3级 属于低级别事故。主要根据企业实际情况划分。PN级 ...级别越高。P0属于最高级别事故,比如崩溃、页面无法访问、主流程不通、主功能未实现,或在影响面上影响很大(即使Bug本身不严重)。

架构师尼恩 1998

实测|龙虾机器人(OpenClaw)Windows系统部署全攻略(含避坑指南)

先简单科普下:龙虾机器人本质是一款开源AI代理框架,核心优势是“能行动、可本地、高灵活”——它不内置大模型,需要对接第三方AI接口(如GPT、Claude、阿里云百炼等),但能将AI的指令转化为实际的系统操作,相当于给AI配了一个“能动手的身体”,这也是它和普通对话大模型的核心区别。今天就结合自己的实测经历,从环境准备、分步部署、初始化配置,到常见问题排查,写一篇保姆级攻略,不管是新手还是有一定技术基础的同学,都能跟着一步步完成部署,少走弯路~解决方案:检查聊天软件插件是否安装成功,权限是否配置完整;

wohaiweifaju的博客 1万+

【论文精读】Latent Diffusion

Latent Diffusion

weixin_44934783的博客 4479

亿级用户访问的架构方案

数据库集群:针对不同的应用场景和数据类型,选择合适的数据库类型(如关系型数据库、NoSQL 数据库等),并采用数据库集群来实现数据的高可用性和读写分离。CDN 可以将静态资源(如图片、视频等)缓存到全球各地的 CDN 边缘节点,使用户可以从最近的节点获取资源,减少网络延迟和带宽占用,提高用户体验和应用的可用性。缓存系统可以缓存热点数据和常用的查询结果,减少数据库的访问次数和响应时间,提高应用的性能和可扩展性。分布式文件系统可以实现数据的可扩展性、高可用性和数据的备份等功能,为应用提供数据存储和访问服务。

蜗牛沐雨 479

LT码与Raptor码的性能仿真

从数据分析看来,在数据块大小较小时(100 - 200 左右 ),LT 码和 Raptor 码的平均冗余符号数量差距相对较小,但 LT 码的冗余符号数量始终高于 Raptor 码。现在采用MATLAB进行仿真,直观展示不同数据块大小下,两种解码方式的解码时间差异.如图4.1所示,LT解码(绿色圆点折线)LT 解码方式的解码时间随数据块大小的变化情况。从实际应用的角度来看,LT码由于其简单的编码机制,适用于资源受限或对编码效率要求较高的场景,但其较高的解码复杂度限制了其在一些实时性要求较高的应用中的使用。

道亦无名 1138

亿级流量架构,服务器如何扩容?

为什么要扩容说人话就是, 无论如何优化性能,能达到的最大值是一定的,对于一个用户量大的应用,可以对服务器进行各种优化,诸如限流、资源隔离,但是上限还是在那里,这时候就应该改变我们的硬件,例如使用更强的CPU、更大的内存,在前文中举了一个学生食堂打饭的例子,如果学生多了,可以通过令牌桶算法优先给高三学生令牌打饭,但是如果高三的学生还是很多呢?那就只有增加窗口或者食堂的数量,也就是硬件上的扩容。扩容策...

weixin_45727359的博客 434

Rancher入门到精通 - Nginx Ingress 配置指南

Rancher 是一个开源的容器管理平台,它提供了一套完整且易于使用的工具来部署、管理和扩展容器化应用。而 Nginx Ingress 则是一个常用的开源 Ingress 控制器,用于将外部请求流量导入到 Kubernetes 集群中的服务。在开始之前,请确保您已经正确安装了 Rancher 平台和 Nginx Ingress 控制器。

TechInk的博客 1312

[PCIE5.0] 2.2.8.9 Optimized Buffer Flush/Fill (OBFF) Message

这段文字讲解的是 优化的缓冲区清空/填充(OBFF)消息,它是 PCI Express(PCIe)规范中的一个可选功能,用于向设备报告平台中央资源的状态。简单来说,OBFF 主要帮助设备了解当前平台资源(如缓存或内存)的状态,从而优化数据的处理和传输。这章重点内容如下。

系统固件工程师 539

日活亿级用户的服务器架构要怎么搭&面试

本文转载自博客: https://mp.weixin.qq.com/s/R048kDYI5HYRUH4tO5LyPg?scene=25#wechat_redirect 本来没想写这个题材的,为了某某童鞋能够更好的茁壮成长,临时写一篇负载均衡的。负载均衡,大家可能听过什么3层负载均衡、4层负载均衡、7层负载均衡什么的?那这是怎么分的呢,ok,是根据osi七层网络模型来分的,例如nginx是工作在...

ice-wee的专栏 696

飞书接入OpenClaw:从零到一的保姆级图文教程

本文主要介绍了飞书接入OpenClaw:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 解决方案 2.1 步骤一:安装插件 2.2 步骤二:创建机器人应用 2.3 步骤三:测试 3. 注意事项

weixin_43178406的博客 13万+

如何构建亿级用户承载的分布式Java游戏服务器:game-server完全指南

在当今游戏行业快速发展的时代,**分布式Java游戏服务器**已成为支撑大型多人在线游戏的关键技术。`game-server`项目作为一个功能完善的分布式游戏服务器框架,为开发者提供了构建高性能、可扩展游戏服务的完整解决方案。这个开源项目不仅实现了集群管理、网关服务、大厅服务器等核心组件,还集成了状态机、行为树、A*寻路、导航网格等AI工具,为游戏开发带来了革命性的便利。 ## 🎯 为什么选择

gitblog_00019的博客 478

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

突破万亿参数训练瓶颈:Monolith分布式参数服务器架构深度解析

你是否还在为推荐系统训练中的万亿级参数存储头痛?是否因模型更新延迟错失热点推荐机会?本文将带你深入字节跳动Monolith框架的参数服务器(Parameter Server, PS)架构,掌握高并发场景下的分布式训练核心技术,让你的推荐系统轻松应对亿级用户实时推荐需求。 读完本文你将获得: - 理解参数服务器如何解决分布式训练中的通信瓶颈 - 掌握Monolith框架的核心组件与数据流转机制 -...

gitblog_00863的博客 861

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

即时通信服务器架构的一些思考

在其会话结束后,将最近最久未使用的路由数据淘汰出去,这种做法再考虑到内存使用的同时,又大大减少了服务器的访问次数,算是一种较好的折中方案. 在完成了路由信息系统之后,route server也可以进行水平扩展,route server要做的仅仅是转发消息,并不需要存储数据,扩展起来非常方便。如果是,那么向目的用户转发该消息。1. 本文所描述的即时通信服务器架构,着重讨论的是消息如何路由的问题,但这并不代表一个完整的即时通信服务器系统,诸如注册,登录,离线消息,文件等功能这些都未在本文的讨论范围之类。

SDHTRGDSG的博客 167

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

亿级用户下的新浪微博平台架构

来源:InfoQ中文站作者:卫向东序言新浪微博在2014年3月公布的月活跃用户(MAU)已经达到1.43亿,2014年新年第一分钟发送的微博达808298条,如此巨大的用户规模和业务量,...

公众号-老炮说Java 297

腾讯大规模分布式机器学习系统无量是如何进行技术选型的?

作者|腾讯编辑|DebraAI 前线导读:在互联网场景中,亿级的用户每天产生着百亿规模的用户数据,形成了超大规模的训练样本。如何利用这些数据训练出更好的模型并用这些模型为用户服务,给机器学习平台带来了巨大的挑战。腾讯开发了一个基于参数服务器架构的机器学习计算框架——无量框架,已经能够完成百亿样本 / 百亿参数模型的小时级训练能力。无量框架提供多种机器学习算法,不但能进行任务式的离线训练,还能支持以...

weixin_33939380的博客 1213

PPT下载 | 亿级用户万台服务器背后,vivo云服务容器化如何破茧化蝶?

2018年数人云Meetup第一站,联合vivo在深圳举办 Building Microservice 系列活动第一期。本次技术沙龙vivo、中兴通讯、华为、数人云共同派出技术大咖,为开发者们带来有关微服务、容器化、配置中心、服务网格等领域的实战与干货分享。 数人云Meetup每月一期,欢迎大家来面基、学习。本文为vivo云计算架构师袁乐...

weixin_33693070的博客 217

QQ架构演进

QQ在最早期1.0时代,由于用户量较少,十万级在线,并且业务功能非常简单,因此架构非常简单,由QQ客户端+接入服务器+存储服务器组成。随后随着业务的拓展,需要支持支持视频、语音、传文件等实时宽带业务,以及更多类型的用户资料 1. 增加了长连接服务器,为无法直连的客户端进行实时宽带数据中转,还对存储服务器进行轻重分离,使核心服务器保证稳定,利用扩展服务器快速支持新增业务。 2. 2.0...

weixin_30302609的博客 1858
上一篇: 深度解密HTTP通信细节
下一篇: Golang之轻松化解defer的温柔陷阱
码洞
博客等级 码龄10年 41粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值