
分布式专题
文章平均质量分 96
Apple_Web
吃苹果的程序员正在努力ing...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
互联网千万级别大数据量如何在本地模拟生成?采用MySQL存储过程轻松实现
用户表 (users包含了200万个用户,每个用户有一个独一无二的user_id。数据字段包括user_name和user_email,统一随机。订单表 (orders每个用户随机生成1-5个订单,订单与用户通过user_id关联。每笔订单随机生成表示订单总金额。订单详情表 (每笔订单有1-5条随机的订单详情,包括商品名称、数量和价格。数据提供关联测试。原创 2025-03-23 21:53:10 · 1193 阅读 · 0 评论 -
不止于方案,用代码示例讲解RabbitMQ顺序消费
关于消息队列(MQ)顺序消费的讨论比比皆是,网上一搜便是铺天盖地的文章。然而,很多文章只是浅谈思路,对于具体的代码实现却往往一笔带过,让许多开发者(包括我)感到一头雾水。所以有时候空谈方案不来点代码理解一下就等于纸上谈兵~根据业务需要,定义多个队列和与之相关的交换机,比如3个队列,那么他们并发度也相比原来的一个队列提升了2倍!注意每个队列定义的时候也要声明为单活模式!// 定义交换机@Bean// 定义多个队列,假设有三个队列@Bean//最主要的区别就是声明了这个队列是单活模式。原创 2024-09-22 15:13:23 · 2339 阅读 · 0 评论 -
不止于纸上谈兵,用代码案例分析如何确保RabbitMQ消息可靠性?
1.如果消息没有到exchange,则confirm回调,ack=false2.如果消息到达exchange,则confirm回调,ack=true3.exchange到queue成功,则不回调return4.exchange到queue失败,则回调return(需设置mandatory=true,否则不回回调,消息就丢了)Confirm 模式:确保消息成功到达交换机,适用于消息是否被成功接收的确认。性能较好,使用异步确认机制,但需要处理消息未被成功确认的情况。Return 模式。原创 2024-09-17 13:01:53 · 1369 阅读 · 0 评论 -
分布式事务方案比较:选择适合你的分布式事务策略!
P2P金融又叫P2P信贷。其中P2P是 peer-to-peer 或 person-to-person 的简写,意思是:个人对个人。P2P金融指个人与个人间的小额借贷交易,一般需要借助电子商务专业网络平台帮助借贷双方确立借贷关系并完成相关交易手 续。借款者可自行发布借款信息,包括金额、利息、还款方式和时间,实现自助式借款;投资者根据借款人发布的信息,自行决定出借金额,实现自助式借贷。目前,国家对P2P行业的监控与规范性控制越来越严格,出台了很多政策来对其专项整治。原创 2024-08-25 17:55:14 · 1196 阅读 · 0 评论 -
MQ最大努力通知VS可靠性消息一致性:分布式事务中的区别与应用比较
最大努力通知方案是分布式事务中对一致性要求最低的一种,适用于一些最终一致性时间敏感度低的业务;消息重复通知机制。消息校对机制。综上所述,只要业务主动方提供了回调查询接口,业务被动方保证接口的幂等性,消息数据是允许丢失的在实现最大努力通知型分布式事务时,最关键的两点是业务主动方提供回调查询接口,业务被动方接收消息通知的接口保证幂等性参考文章:主要整理于黑马分布式事务教程。原创 2024-08-25 16:09:46 · 1072 阅读 · 0 评论 -
消息队列与分布式事务:探讨不同MQ如何实现可靠消息最终一致性
可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务发起方和消息中间件之间,事务参与方(消息消费方)和消息中间件之间都是通过网络通信,由于网络通信的不确定性会导致分布式事务问题。原创 2024-08-17 13:37:15 · 1579 阅读 · 0 评论 -
案例驱动学习:轻松理解TCC分布式事务
TCC是Try、Confirm、Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作:预处理Try、确认Confirm、撤销Cancel。Try操作做业务检查及资源预留,Confirm做业务确认操作,Cancel实现一个与Try相反的操作即回滚操作。原创 2024-08-11 14:43:08 · 927 阅读 · 0 评论 -
图解分布式事务中的2PC与Seata方案
2PC即两阶段提交协议,是将整个事务流程分为两个阶段:准备阶段(Prepare phase)和提交阶段(Commit phase)。2PC中的“2”指的是两个段,“P”指的是准备阶段,“C”指的是提交阶段。故事背景:张三和李四是两个老朋友,他们决定一起出去吃饭。饭店老板的规定是:只有两人都付款,才能出票安排就餐。因此,他们面临一个需要协调的事务,类似于计算机科学中的“两阶段提交协议”。准备阶段: 老板首先向张三要求付款。张三虽然有些不情愿,但还是支付了自己的部分。接着,老板又要求李四付款,李四也付了款。原创 2024-07-27 22:43:38 · 1200 阅读 · 0 评论 -
初探分布式事务:扫盲分布式事务的基础概念和理论知识点
啥叫事务呢?咱举个生活里的例子,你去小商店买东西,“一手交钱,一手交货”这就是个事务的例子。交钱和交货都得成功,这事务才算成了,要是其中有一个没弄好,这事务就得把之前成功的部分都取消掉。搞明白这个例子,咱再来看事务的定义:事务可以当成是一次比较大的活动,它是由好些小活动凑成的,这些小活动要么都成功,要么都失败。原创 2024-07-21 16:01:09 · 770 阅读 · 0 评论 -
Nginx与Spring Boot的错误模拟实践:探索502和504错误的原因
刚工作那会,最常见的报错是,曾经也碰到过前端反馈或者,那时候傻傻的搞不懂,以为这种都是外部服务或者网络运维部那边的问题。当时那个服务里正好有个调用日志,平时会记录各种200,4xx状态码的信息。于是我跑到服务日志里去搜索了一下502这个数字,毫无发现。于是跟反映错误的前端说,“服务日志里并没有502的记录,你是不是搞错啦?现在想想,果然那时候还是个小白。。。在Nginx中,access.log和error.log是两个重要的日志文件,用于记录服务器的访问和错误信息。原创 2023-10-04 23:21:59 · 5696 阅读 · 1 评论 -
Nginx入门指南:轻松掌握Web服务器技术
在入门之前先抛出几个问题进行思考,后面会进行解答Nginx是什么?正向代理和反向代理?为什么要使用负载均衡?Nginx的负载均衡模式有哪些?它的实现原理是什么?如果代理的服务器宕机了 Nginx 会如何处理?Nginx 的缓存功能是如何使用的?原创 2023-09-10 17:12:41 · 203 阅读 · 0 评论 -
Redisson解决redis分布式锁过期时间到了业务没执行完问题
面试问题Redis锁的过期时间小于业务的执行时间该如何续期?问题分析首先如果你之前用Redis的分布式锁的姿势正确,并且看过相应的官方文档的话,这个问题So easy.我们来看很多同学在用分布式锁时,都是直接百度搜索找一个Redis分布式锁工具类就直接用了,其实Redis分布式锁比较正确的姿势是采用redisson这个客户端工具如何回答默认情况下,加锁的时间是30秒.如果加锁的业务没...原创 2019-10-11 22:28:31 · 19994 阅读 · 6 评论 -
高并发,你真的理解透彻了吗?
文章目录01 如何理解高并发?02 高并发系统设计的目标是什么?❇ 性能指标❇ 可用性指标❇ 可扩展性指标03 高并发的实践方案有哪些?❇ 纵向扩展(scale-up)❇ 横向扩展(scale-out)❇ 高性能的实践方案❇ 高可用的实践方案❇ 高扩展的实践方案高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。在过往的面试中,如果候选人做过高并发的项转载 2020-07-19 12:38:06 · 489 阅读 · 0 评论 -
什么是主从复制?mysql主从复制?redis主从复制?
文章目录什么是主从复制为什么需要主从复制mysql的主从复制mysql主从复制数据一致性问题方法 1:异步复制方法 2:半同步复制方法 3:组复制三种复制总结redis的主从复制什么是主从复制是一种数据备份的方案。简单来说,是使用两个或两个以上相同的数据库,将一个数据库当做主数据库,而另一个数据库当做从数据库。在主数据库中进行相应操作时,从数据库记录下所有主数据库的操作,使其二者一模一样。为什么需要主从复制读写分离:通过主从复制的方式来同步数据,然后通过读写分离提高数据库并发处理能力,提高数据原创 2020-06-23 17:35:33 · 2435 阅读 · 0 评论 -
redis 分布式锁的 5个坑,真是又大又深
文章目录引言二、B的锁被A给释放了三、数据库事务超时四、锁过期了,业务还没执行完五、redis主从复制的坑总结引言最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了。脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug。我就熬夜写了一个bug被骂惨了。由于是做商城业务,要频繁的对商品库存进行扣减,应用是集群部署,为避免并发造成库存超买超卖等问题,采用 redis 分布式锁加以控制。本以为给扣库存的代码加上锁lock.tryLock转载 2020-05-09 14:16:02 · 527 阅读 · 0 评论 -
分布式锁机制原理以及三种实现方式介绍
很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的东西也是一样的和Java多线程相关的!做好准备,马上开车!学过Java多线程的应该都知道什么是锁,没学过的也不用担心,Java中的锁可以简单的理解为多线程情况下访问临界资源的一种线程同步机制。在学...转载 2020-02-17 14:50:34 · 819 阅读 · 0 评论 -
高并发架构解析
前言高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。在电商相关产品开发的这些年,我有幸的遇到了并发下的各种坑,这一路摸爬滚打过来有着不少的血泪史,这里进行的总结,作为自己的归档记录,同时分享给大家。服务器架构业务从...原创 2020-02-05 23:02:04 · 1802 阅读 · 0 评论 -
幂等问题 8种方案解决重复提交
1.什么是幂等在我们编程中常见幂等select查询天然幂等delete删除也是幂等,删除同一个多次效果一样update直接更新某个值的,幂等update更新累加操作的,非幂等insert非幂等操作,每次新增一条2.产生原因由于重复点击或者网络重发 eg:点击提交按钮两次;点击刷新按钮;使用浏览器后退按钮重复之前的操作,导致重复提交表单;使用浏览器历史记录重复提交表单...转载 2019-10-10 23:40:29 · 1646 阅读 · 0 评论 -
持续集成?持续交付?持续部署?
互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)。本文简要介绍持续集成的概念和做法。一、概念持续集成指的是,频繁地(一天多次)将代码集成到主干。它的好处主要有两个。(1)快速发现错误。 每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。(2)防止分支大幅偏离主干。 如果不是经常集成...转载 2019-10-23 16:52:45 · 283 阅读 · 0 评论 -
一文搞懂布隆过滤器
布隆过滤器讲解一什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。实现原理HashMap 的问题讲述布隆...原创 2020-01-15 11:17:35 · 1021 阅读 · 0 评论 -
如何解决多线程数据库重复插入、更新问题
文章目录基础概念原因分析解决方案多线程插入解决:多线程更新解决基础概念幂等性 : 在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。简单来说:幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的。幂等性操作:1、查询操作:查询一次和查询多次,在数据不变的情况下,查询结果是一样的。select是天然的幂等操作;2、删除操作:删除操作也是幂等的,...原创 2019-12-17 21:16:10 · 12278 阅读 · 0 评论 -
分布式锁的分段加锁方案你了解多少?
文章目录背景引入库存超卖现象是怎么产生的?用分布式锁如何解决库存超卖问题?有没有其他方案可以解决库存超卖问题?分布式锁的方案在高并发场景下如何对分布式锁进行高并发优化?分布式锁并发优化方案有没有什么不足?该优化方案的后续改进上篇文章的补充说明背景引入首先,我们一起来看看这个问题的背景?前段时间有个朋友在外面面试,然后有一天找我聊说:有一个国内不错的电商公司,面试官给他出了一个场景题:假如下...转载 2019-12-04 22:39:24 · 1783 阅读 · 2 评论 -
最好理解的一致性哈希算法
在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。场景描述假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存,我们希望这些图片被均匀的缓存到这3台服务器上,以便它们能够分...转载 2019-10-29 09:02:23 · 313 阅读 · 0 评论 -
淘宝技术这十年架构发展
文章目录1. 概述2. 基本概念3. 架构演进3.1 单机架构3.2 第一次演进:Tomcat与数据库分开部署3.3 第二次演进:引入本地缓存和分布式缓存3.4 第三次演进:引入反向代理实现负载均衡3.5 第四次演进:数据库读写分离3.6 第五次演进:数据库按业务分库3.7 第六次演进:把大表拆分为小表3.8 第七次演进:使用LVS或F5来使多个Nginx负载均衡3.9 第八次演进:通过DNS轮询...转载 2019-10-24 10:27:53 · 3218 阅读 · 0 评论 -
RMI实例解析和RPC
RMI是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。 RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务对象相同的方法。RMI的好处在于你不必亲自写如何网络代码和I/O代码。客户程序远程调用(即真正的服务所在)就和运行客户自己的本地机JVM上对对象进行正常方法调用一样。...原创 2019-10-24 09:33:02 · 381 阅读 · 0 评论 -
分布式、高并发、多线程,到底有什么区别?
文章目录什么是分布式?什么是高并发?什么是多线程?总结当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是...原创 2019-10-22 09:39:35 · 388 阅读 · 0 评论 -
如何写出一把高性能的Redis分布式锁?
众所周知,分布式锁在微服务架构中是重头戏,尤其是在互联网公司,基本上企业内部都会有自己的一套分布式锁开发框架。本文主要介绍使用Redis如何构建高并发分布式锁。假设 存在一个SpringBoot的控制器,其扣减库存的业务逻辑如下:@Autowiredprivate StringRedisTemplate stringRedisTemplate;@RequestMapping(valu...原创 2019-10-06 09:46:44 · 3208 阅读 · 0 评论