Category: High Concurrency, Circuit Breaker, Rate Limit, Load Balance,etc…

[汇总]高并发,构架&项目经验 0

[汇总]高并发,构架&项目经验

高并发下怎么防止数据重复? 多线程并发消费如果在极短的时间内,连续发送重复的消息,就会被不同的线程消费。即使在代码中有这样的判断:

在插入数据之前,先判断该数据是否已经存在,只有不存在才会插入。但由于在并发情况下,不同的线程都判断商品数据不存在,于是同时进行了插入操作,所以就产生了重复数据。 方案: 基础系统将消息改成单线程顺序消费 唯一索引(不适用软删除) 分布式锁 insert on duplicate key update insert … ignore 加一张防重表(适用软删除)

[汇总]高可用经验 0

[汇总]高可用经验

为了做到微服务的高可用,鬼知道我出了多少张牌 你管这破玩意儿叫高可用? (更详细构架)      

[转]高并发下的接口幂等性如何实现 0

[转]高并发下的接口幂等性如何实现

1. 一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果;2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;3. 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的;4. 创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题等等很多重要的情况都需要幂等的特性来支持。

[转]谈谈服务雪崩、降级与熔断 0

[转]谈谈服务雪崩、降级与熔断

首先,之所以谈这个话题呢,是发现现在很多人对微服务的设计缺乏认识,所以写一篇扫盲文。当然,考虑到目前大多微服务的文章都是口水文,烟哥争取将实现方式讲透,点清楚,让大家有所收获! OK,我要先说明一下,我有很长一段时间将服务降级和服务熔断混在一起,认为是一回事!

[转]当我们在谈论高并发的时候究竟在谈什么? 0

[转]当我们在谈论高并发的时候究竟在谈什么?

1. 什么是高并发?

那么我们在谈论高并发的时候,究竟在谈些什么东西呢?

[转]Spring Cloud Sentinel的使用 0

[转]Spring Cloud Sentinel的使用

1. 什么是Sentinel Sentinel,中文翻译为哨兵,是为微服务提供流量控制、熔断降级的功能,它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。随着Hytrxi进入了维护期,不再提供新功能,Sentinel是一个不错的替代方案。通常情况,Hystrix采用线程池对服务的调用进行隔离,Sentinel才用了用户线程对接口进行隔离,二者相比, Hystrxi是服务级别的隔离,Sentinel提供了接口级别的隔离,Sentinel隔离级别更加精细 Sentinel直接使用用户线程进行限制,相比Hystrix的线程池隔离,减少了线程切换的开销 Sentinel的DashBoard提供了在线更改限流规则的配置,也更加的优化。

[转]百万并发中间件系统的内核设计看Java并发性能优化 0

[转]百万并发中间件系统的内核设计看Java并发性能优化

(1)大部分人对Java并发仍停留在理论阶段 (2)中间件系统的内核机制:双缓冲机制 (3)百万并发的技术挑战 (4)内存数据写入的锁机制以及串行化问题 (5)内存缓冲分片机制 + 分段加锁机制 (6)缓冲区写满时的双缓冲交换 (7)且慢!刷写磁盘不是会导致锁持有时间过长吗? (8)内存 + 磁盘并行写机制 (9)为什么必须要用双缓冲机制? (10)总结 “ 这篇文章,给大家聊聊一个百万级并发的中间件系统的内核代码里的锁性能优化。很多同学都对Java并发编程很感兴趣,学习了很多相关的技术和知识。比如volatile、Atomic、synchronized底层、读写锁、AQS、并发包下的集合类、线程池,等等。

[转]亿级流量架构系列专栏总结[3] 数据一致性重构指南 0

[转]亿级流量架构系列专栏总结[3] 数据一致性重构指南

亿级流量系统架构之如何保证百亿流量下的数据一致性(上) 亿级流量系统架构之如何保证百亿流量下的数据一致性(中) 亿级流量系统架构之如何保证百亿流量下的数据一致性(下)   如何保证消息中间件全链路数据100%不丢失(1) 如何保证消息中间件全链路数据100%不丢失(2) 消息中间件如何实现消费吞吐量的百倍优化 如何保证生产者投递到消息中间件的消息不丢失