![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
高并发分布式
文章平均质量分 81
高并发分布式
yygr
这个作者很懒,什么都没留下…
展开
-
分布式锁解决秒杀超卖问题
本章节主要实现限时、限量优惠券秒杀功能,并利用分布式锁解决《超卖问题》、《一人一单问题》。登录后复制@Resource@Resource@Override// 1.查询优惠券return Result.fail("优惠券不存在!");// 2.判断秒杀是否开始,开始时间在当前时间之后return Result.fail("秒杀尚未开始!");// 3.判断秒杀是否结束,结束时间在当前时间之前return Result.fail("秒杀已结束!");// 4.判断库存是否充足。转载 2024-07-24 14:53:27 · 38 阅读 · 0 评论 -
基于 Nginx 与 Lua 的高性能 Web 平台-OpenResty快速入门教程
上面的代码直接把lua代码写到nginx配置里面了,维护起来不是很方便,我们把它拿出来一个单独的文件,并放到openresty-1.13.6.2-win64目录下面单独的lua目录下,方便管理。我们知道http请求通常分为两种,分别是GET,POST,在http协议中,GET参数通常会紧跟在uri后面,而POST请求参数则包含在请求体中。使用OpenResty获取请求参数的方法也有二种,为了统一获取请求参数的方式,隐藏具体细节,提供一个更友好的api接口,我们可以简单的封装一下。转载 2024-07-05 15:54:53 · 3 阅读 · 0 评论 -
分布式事务详解【分布式事务的几种解决方案】彻底搞懂分布式事务
什么是事务?举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。明白上述例子,再来看事务的定义:事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。2PC即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(commit phase),2是指两个阶段,P是指准备阶段,C是指提交阶段。转载 2024-07-03 14:53:25 · 695 阅读 · 0 评论 -
浅谈几种常用负载均衡架构
在实际应用中,在 Web 服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为 Web 服务器流量的入口,挑选最合适的一台 Web 服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。最近几年很火的「云计算」以及分布式架构,本质上也是将后端服务器作为计算资源、存储资源,由某台管理服务器封装成一个服务对外提供,客户端不需要关心真正提供服务的是哪台机器,在它看来,就好像它面对的是一台拥有近乎无限能力的服务器,而本质上,真正提供服务的是后端的集群。实现时,一般为服务器带上权重;转载 2024-07-02 14:53:48 · 65 阅读 · 0 评论 -
微言Netty:百万并发基石上的epoll之剑
但是需要注意的是,当有成千上万个客户端连接上来开始进行数据发送,由于LT的特性,内核会频繁的处理通知操作,导致其相对于ET来说,比较的耗费系统资源,所以,随着客户端的增多,其性能也就越差。客户端socket怎么管理这块解决了,接下来,当有socket有数据需要进行读写事件处理的时候,系统会将已经就绪的socket添加到双向链表中,然后通过epoll_wait方法检测的时候,其实检查的就是这个双向链表,由于链表中都是就绪的数据,所以避免了针对整个客户端socket列表进行遍历的情况,使得整体效率大大提升。转载 2024-04-10 11:08:59 · 23 阅读 · 0 评论 -
Keepalived高可用
KeepAlived是一个用C语言编写的路由软件,它的主要目的是为了提供基于Linux服务器的负载均衡和高可用功能。其负载均衡是依赖lvs的,keepalived还实现了一些的检测器来实现后端服务器的健康检查。KeepAlived一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。由于某些原因,导致两台keepalived高可用服务器在指定时间内,无法检测到对方的心跳,各自取得资源及服务的所有权,而此时的两台高可用服务器又都还活着。转载 2022-11-28 17:31:39 · 385 阅读 · 0 评论 -
高并发:流量削峰与服务端优化
通过队列来缓冲请求,即控制请求的发出队列缓冲方式更加通用,它适用于内部上下游系统之间调用请求不平缓的场景,由于内部系统的服务质量要求不能随意丢弃请求,所以使用消息队列能起到很好的削峰和缓冲作用通过答题来延长请求发出的时间,在请求发出后承接请求时进行控制,最后再对不符合条件的请求进行过滤答题更适用于秒杀或者营销活动等应用场景,在请求发起端就控制发起请求的速度,因为越到后面无效请求也会越多,所以配合后面介绍的分层拦截的方式,可以更进一步减少无效请求对系统资源的消耗对请求进行分层过滤。转载 2022-11-02 12:39:51 · 478 阅读 · 0 评论 -
服务降级、熔断、流量削峰、限流
如果检查出来频繁超时,就把cusmmer(服务调用方)调用provider(服务提供方)的请求,直接短路掉,不实际调用,而是直接返回一个mock的值。举例:淘宝的搜索功能,平时的时候 搜全站。高峰期的时候,限制只能搜店内或者一些品类不给搜。举例:12306的春运票,一段时间一段时间的放,一个地方一个地方的放。调用第三方api的时候,经常提示:等待1分钟或者排队~转载 2022-11-02 12:25:21 · 177 阅读 · 0 评论 -
(秒杀项目) 4.9 削峰限流与防刷(核心)
理解并熟记削峰限流的流程防刷的几种方式能够大概讲出来限流的两种算法要熟记。转载 2022-11-02 12:18:27 · 638 阅读 · 0 评论 -
@Reference是干啥的
Reference是dubbo的注解,也是注入,他一般注入的是分布式的远程服务的对象,需要dubbo配置使用。SpringBoot项目中常用。简单来说就是引入由Spring容器管理的bean。作用相当于@Autowired,只不过@Autowired是byType自动注入,而@Resource默认byName自动注入。转载 2022-09-28 16:17:32 · 1140 阅读 · 0 评论 -
什么是指针回拨? 优化snowflake指针回拨的缺陷(不引入任何第三方中间件(redis, zk))
首先简单了解下, 什么是指针回拨?解决方案 我这里两种都采用了。转载 2022-09-22 10:16:55 · 183 阅读 · 0 评论 -
秒杀系统怎么搞?虐死人
https://baijiahao.baidu.com/s?id=1708077070561268291&wfr=spider&for=pc高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10 个)的商品(比如:手机),以极低的价格(比如:0.1 元),让大量用户参与活动,但只有极少数用户能够购买成功。这类活动商家绝大部分是不赚钱的,说白了转载 2022-05-24 10:39:51 · 133 阅读 · 0 评论 -
万字超详解秒杀系统
https://zhuanlan.zhihu.com/p/433618121高并发专题学了那么久,但是,在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至很多小伙伴仍然停留在只是简单的提供接口(CRUD)阶段,不知道学习的并发知识如何运用到实际项目中,就更别提如何构建高并发系统了!究竟什么样的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的架构,结合高并发专题下的其他文章,学以致用。电商系统架构在电商领域,存在着典型的秒杀业务场景,那何谓秒杀场景呢。简单的转载 2022-05-24 10:22:12 · 2989 阅读 · 2 评论 -
一分钟快速理解CDN加速原理
https://baijiahao.baidu.com/s?id=1706310290554711159&wfr=spider&for=pc一、是什么CDN (全称 Content Delivery Network),即内容分发网络构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术简单来讲,CD转载 2022-05-12 12:09:06 · 576 阅读 · 0 评论 -
Spring Boot Jpa使用Sharding Jdbc实现分布式事务-两阶段提交-XA
1. 引入Maven依赖Spring Boot用的2.3.0.RELEASE版本<dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId> <version>5.0.0-alpha</version>&原创 2022-05-04 21:30:02 · 1174 阅读 · 0 评论 -
CAP和BASE理论
https://my.oschina.net/foodon/blog/3727031. CAP理论2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。CAP理论为:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tole转载 2022-05-04 12:58:36 · 3137 阅读 · 0 评论 -
ShardingSphere-JDBC入门实战
http://www.manongjc.com/detail/23-ucugqdghzuagktz.html前言Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成;接下来的几篇文章将重点分析ShardingSphere-JDBC,从数据分片,分布式主键,分布式事务,读写分离,弹性伸缩等几个方面来介绍。简介ShardingSphere转载 2022-05-01 14:29:06 · 1130 阅读 · 0 评论 -
ShardingSphere介绍与使用
https://blog.csdn.net/qq_43843037/article/details/112741161ShardingSphere的基本介绍1、什么是shardingSphereApache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款相互独立,却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言转载 2022-04-28 09:23:00 · 1043 阅读 · 0 评论 -
高并发中的惊群效应
https://blog.csdn.net/second60/article/details/81252106 高并发中的惊群效应 目录 高并发中的惊群效应 1.惊群效应简介 2. 操作系统的惊群 3. 惊群的坏处 3.1 坏处 3.2 其他 4 惊群的几种情况 4.1 accept惊群(新版内核已解决) 4.2 epoll惊群 4.2.1 fork之前创建epollfd(新版内核已解决)转载 2022-02-12 16:41:17 · 137 阅读 · 0 评论 -
高并发中的惊群效应
https://blog.csdn.net/second60/article/details/81252106高并发中的惊群效应second60 20180726目录高并发中的惊群效应1.惊群效应简介2. 操作系统的惊群3. 惊群的坏处3.1 坏处3.2 其他4 惊群的几种情况4.1 accept惊群(新版内核已解决)4.2 epoll惊群4.2.1 fork之前创建epollfd(新版内核已解决)4.2.2 fork之后创建epollfd(内核未转载 2022-03-29 14:25:47 · 470 阅读 · 0 评论 -
java 如何解决面试中的高并发,大数据的问题,都没有经验?
https://www.zhihu.com/question/39250661回答1:在面试时被问到高并发经验时不要慌,按照以下过程表达即可体现你的高并发设计能力:优化单请求耗时、提高单机并发能力、提高整体并发能力 。个人认为,其实我们并不用去追求严格意义上的高并发经验,因为很多时候都没有这样的机会给到你,对于高并发的处理经验主要体现在日常的积累以及对自己的严格要求上。为什么总在说高并发?在并发不高的场景下,不区分经验是否丰富的任何人都能完成基本的业务开发,而且不会产生任何性转载 2022-03-30 13:36:26 · 4312 阅读 · 0 评论 -
吞吐率、吞吐量、TPS、性能测试,纸上不谈兵
https://ruby-china.org/topics/26221一、吞吐率我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力。称之为吞吐率(Throughput),单位是 “req/s”。吞吐率特指 Web 服务器单位时间内处理的请求数。另一种描述,吞吐率是,单位时间内网络上传输的数据量,也可以指单位时间内处理客户请求数量。它是衡量网络性能的重要指标。通常情况下,吞吐率 “字节数/秒” 来衡量。当然你也可以用 “请求数/秒” 和 “页面数/秒” 来衡量。其实不管一个请转载 2022-04-11 09:34:21 · 36855 阅读 · 0 评论 -
秒杀系统流量削峰这事应该怎么做?为什么要削峰呢?
https://blog.csdn.net/u013256816/article/details/97459644如果你看过秒杀系统的流量监控图的话,你会发现它是一条直线,就在秒杀开始那一秒是一条很直很直的线,这是因为秒杀请求在时间上高度集中于某一特定的时间点。这样一来,就会导致一个特别高的流量峰值,它对资源的消耗是瞬时的。但是对秒杀这个场景来说,最终能够抢到商品的人数是固定的,也就是说100人和10000人发起请求的结果都是一样的,并发度越高,无效请求也越多。但是从业务上来说,秒杀活动是希转载 2022-03-27 10:48:13 · 1368 阅读 · 0 评论 -
项目高并发必懂:吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
https://blog.csdn.net/weixin_43945983/article/details/103870087?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blo转载 2022-04-11 09:23:53 · 3750 阅读 · 0 评论 -
TPS、QPS和系统吞吐量的区别和理解
https://blog.csdn.net/u010889616/article/details/83245695一、QPS/TPSQPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收转载 2022-04-11 08:34:23 · 488 阅读 · 0 评论 -
分布式理论:BASE理论
前言BASE理论是由eBay架构师提出的。BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网分布式系统实践的总结,是基于CAP定律逐步演化而来。其核心思想是即使无法做到强一致性,但每个应用都可以根据自身业务特点,才用适当的方式来使系统打到最终一致性。正文1. CAP的3选2伪命题实际上,不是为了P(分区容错性),必须在C(一致性)和A(可用性)之间任选其一。分区的情况很少出现,CAP在大多时间能够同时满足C和A。对于分区存在或者探知其影响的情况下,需要提供一种预备策略做出处理:转载 2022-01-08 15:44:55 · 189 阅读 · 0 评论 -
一篇文章搞懂分布式,高并发,多线程,高可用的区别和联系
https://blog.csdn.net/weter_drop/article/details/89349111当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。分布式转载 2022-04-11 08:34:32 · 235 阅读 · 0 评论 -
理解Sharding jdbc原理,看这一篇就够了
https://blog.csdn.net/wenyuan65/article/details/83715471?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-转载 2022-03-29 15:30:57 · 3737 阅读 · 0 评论 -
sharding-jdbc系列(一):概念
https://blog.csdn.net/u013308490/article/details/94598606核心概念一、 背景在互联网海量数据时代的今天,我们需要存储的数据也越来越多,在使用关系型数据库例如mysql等时,单表所需要存储的数据也越来越多,但是关系型数据库在单表数据库量较大的情况下,单表性能会急剧下降,面对这个问题,常见的做法就是进行分表,但是单纯的分表只能减少单表的压力,不能减轻数据库的压力,所以在分表的同时往往也会进行分库操作。二、分库分表分库分表主要是为了解转载 2022-03-29 15:03:44 · 236 阅读 · 0 评论 -
mycat分表分库的原理是什么
https://blog.csdn.net/pingdouble/article/details/797301641. mycat是怎样实现分库分表的?mycat里面通过定义路由规则来实现分片表(路由规则里面会定义分片字段,以及分片算法)。分片算法有多种,你所说的hash是其中一种,还有取模、按范围分片等等。在mycat里面,会对所有传递的sql语句做路由处理(路由处理的依据就是表是否分片,如果分片,那么需要依据分片字段和对应的分片算法来判断sql应该传递到哪一个、或者哪几个、又或者全部节点去执行)转载 2022-03-29 14:41:53 · 2467 阅读 · 2 评论 -
Redisson分布式锁实现
转:分布式锁和Redisson实现概述分布式系统有一个著名的理论CAP,指在一个分布式系统中,最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。所以在设计系统时,往往需要权衡,在CAP中作选择。当然,这个理论也并不一定完美,不同系统对CAP的要求级别不一样,选择需要考虑方方面面。在微服务系统中,一个请求存在多级跨服务调用,往往需要牺牲强一致性老保证系统高可用,比如通过分布式事务,异步消息等.转载 2022-03-26 12:32:47 · 217 阅读 · 0 评论 -
Java分布式的学习路线是怎样的?
2019年Java分布式的学习路线是怎样的? - 知乎正文在写这个文章之前,我花了点时间,自己臆想了一个电商系统,基本上算是麻雀虽小五脏俱全,我今天就用它开刀,一步步剖析,我会讲一下我们可能会接触的技术栈可能不全,但是够用,最后给个学习路线。Tip:请多欣赏一会,每个点看一下,看看什么地方是你接触过的,什么技术栈是你不太熟悉的,我觉得还算是比较全的,有什么建议也可以留言给我。不知道大家都看了一下没,现在我们就要庖丁解牛了,我从上到下依次分析。前端你可能会会好奇,你不是讲后端学转载 2022-03-20 18:32:12 · 1019 阅读 · 0 评论