大型高并发系统架构

高并发的系统架构都会采用分布式集群部署,服务上层有着层层负载均衡,并提供各种容灾手段(双火机房、节点容错、服务器灾备等)保证系统的高可用,流量也会根据不同的负载能力和配置策略均衡到不同的服务器上。
下边是一个简单的示意图:
在这里插入图片描述
①OSPF(开放式最短链路优先)是一个内部网关协议(Interior Gateway Protocol,简称 IGP)
OSPF 通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,OSPF 会自动计算路由接口上的 Cost 值,但也可以通过手工指定该接口的 Cost 值,手工指定的优先于自动计算的值。
OSPF 计算的 Cost,同样是和接口带宽成反比,带宽越高,Cost 值越小。到达目标相同 Cost 值的路径,可以执行负载均衡,最多 6 条链路同时执行负载均衡。
②LVS (Linux Virtual Server)
它是一种集群(Cluster)技术,采用 IP 负载均衡技术和基于内容请求分发技术。
调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。
③Nginx
想必大家都很熟悉了,是一款非常高性能的 HTTP 代理/反向代理服务器,服务开发中也经常使用它来做负载均衡。
Nginx 实现负载均衡的方式主要有三种:
轮询
加权轮询
IP Hash 轮询
下面我们就针对 Nginx 的加权轮询做专门的配置和测试。
Nginx 加权轮询的演示

Nginx 实现负载均衡通过 Upstream 模块实现,其中加权轮询的配置是可以给相关的服务加上一个权重值,配置的时候可能根据服务器的性能、负载能力设置相应的负载。
下面是一个加权轮询负载的配置,我将在本地的监听 3001-3004 端口,分别配置 1,2,3,4 的权重:
在这里插入图片描述
我在本地 /etc/hosts 目录下配置了 www.load_balance.com 的虚拟域名地址。

接下来使用 Go 语言开启四个 HTTP 端口监听服务,下面是监听在 3001 端口的 Go 程序,其他几个只需要修改端口即可:
在这里插入图片描述
我将请求的端口日志信息写到了 ./stat.log 文件当中,然后使用 AB 压测工具做压测:
在这里插入图片描述
NGINX 中Upstream机制的负载均衡https://www.kancloud.cn/digest/understandingnginx/202607

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
12306系统是一个大型高并发系统,它是由B/S架构大型高并发系统架构组成的。B/S架构(Browser/Server)是一种客户端与服务器端的分离架构,它将应用程序的界面和应用逻辑分别放在客户端和服务器端,通过浏览器与服务器进行通信。大型高并发系统架构是将整个系统分成多个模块,每个模块都有自己的职责和功能,通过分布式计算、负载均衡等方式实现高并发和高可用性。 B/S架构的原理是将应用程序的界面和逻辑分离,客户端只需要具备浏览器的功能,服务器端负责处理数据和业务逻辑。在12306系统中,用户通过浏览器访问系统系统返回HTML页面和JavaScript脚本,用户可以在浏览器中执行JavaScript脚本与服务器进行数据交互。服务器端采用Java语言开发,使用Spring、MyBatis等框架实现业务逻辑。由于12306系统需要处理大量的并发请求,因此需要使用大型高并发系统架构来保证系统的性能和可用性。 大型高并发系统架构的原理是将系统分成多个模块,每个模块都有自己的职责和功能,通过分布式计算、负载均衡等方式实现高并发和高可用性。在12306系统中,系统分成多个模块,包括用户模块、订单模块、车票模块、支付模块等。每个模块都有自己的数据库和缓存,数据的读写通过分库分表的方式实现负载均衡。系统采用分布式缓存技术来提高系统的性能和可用性,采用分布式锁技术来保证数据的一致性和并发性。 12306系统中应用B/S架构大型高并发系统架构的实现方式如下: 1. B/S架构的实现方式 (1)前端页面和JavaScript脚本的开发:前端页面采用HTML和CSS开发,JavaScript脚本采用jQuery等框架实现交互和数据处理。 (2)后端业务逻辑的开发:后端业务逻辑采用Java语言开发,使用Spring、MyBatis等框架实现。 2. 大型高并发系统架构的实现方式 (1)分布式架构的实现:将系统分成多个模块,每个模块都有自己的职责和功能,通过分布式计算、负载均衡等方式实现高并发和高可用性。 (2)分库分表的实现:将数据分成多个数据库和表,通过读写分离和负载均衡的方式实现高并发和高可用性。 (3)分布式缓存的实现:采用Redis等分布式缓存技术来提高系统的性能和可用性。 (4)分布式锁的实现:采用ZooKeeper等分布式锁技术来保证数据的一致性和并发性。 综上所述,12306系统采用B/S架构大型高并发系统架构来实现高并发和高可用性。通过分布式计算、负载均衡、分库分表、分布式缓存、分布式锁等技术来保证系统的性能和可用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值