Skip to content

Commit 0997d3c

Browse files
committed
小傅哥,docs:更新文档
1 parent 7c5866b commit 0997d3c

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

docs/md/project/lottery/notes.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,17 @@ Lottery 系统的全方面技术栈的使用,多场景的问题的解决方案
6868
3. 所以基于这样的情况,此规则引擎的设计是一个二叉树判断,实现手段运用到了组合模式、工厂模式等。并为了便于维护和使用,进行了库表对二叉树的抽象设计,树根、节点、子叶,映射为二叉树编码的相关属性信息。同时,也可以基于这样的库表做前端页面的托拉拽配置操作,降低运营成本。
6969
4. 最后,其实动态的规则引擎配置,其实放大了看就是 BPMN + Drools + Groovy,的一个低代码实现框架。综上,面试官这个就是我在做规则引擎设计的一些思考、调研和落地。如果以后咱公司有其他更大的场景,我也可以扩展为 Reta 算法和低代码方案进行架构落地实现。
7070

71+
### 4. 秒杀的滑块锁讲解
72+
73+
1. 是针对于用户参与的活动库存加锁的,如果是独占锁是针对于活动ID加锁的。
74+
2. 滑块锁的核心是去竞态,避免独占影响系统的响应性能。关于此类锁,这里又做了视频做了详细的讲解;[Redis | bugstack 虫洞栈](https://bugstack.cn/md/road-map/redis.html) - 如图。别看提秒杀一堆人说,但如果还讲用独占锁做活动的秒杀场景,就没做过大规模的秒杀。独占是会很大概率出事故的。
75+
3. 那为什么加一个锁呢,incr 不就可以。加锁是兜底,你不知道什么时候会出现 incr 不对的情况。如;集群配置问题【特例】、出现redis问题,需要恢复库存。如果没有锁,可能会超卖。[https://t.zsxq.com/12sNS4E2J](https://t.zsxq.com/12sNS4E2J) - 第一条评论加了说明。
76+
4. 对于非交易的活动类场景,要的就是一个快。快速响应、快速释放,可接受容错失败概率。但不要磨磨唧唧影响我的主核心交易链路。但凡在618、双11,营销敢超时,就直接下掉。保证用户可下单可支付。否则这黄金时间点,你耽误1分钟都是几个亿的成交额。所以,这类营销秒杀场景下,根本就是保证不超卖,也不恢复库存。
77+
78+
注意:独占锁是加给个人流程的 - 无资源竞争,如贷款单受理。分段/滑块/无锁化,是加给库存的 - 有资源竞争,如秒杀、商品发货等集中资源类。就跟大超时的收银台一样。原来就1个出口,后来一排出口,在后来又有无人化的电子出口。点点那个软件。
79+
80+
举例;incr 的速度很快,就像进入了公共的卫生间🚾。一个坑一个门,谁进去谁就锁上。没有就跑到下一个门。你说你不锁门吧,也没问题。但别人不知道,一拽开就比较尴尬。所以要加锁,锁门。
81+
7182
## 四、面试刷题
7283

7384
- [关于抽奖系统怎么写到简历里](https://t.zsxq.com/07yKZJFkR)
@@ -234,4 +245,4 @@ Lottery 系统的全方面技术栈的使用,多场景的问题的解决方案
234245
9. 写代码时候有没有什么方式尽量减少Full GC的概率?
235246
- [面试官问我100个用户,只有1个库存,怎么控制并发访问?](https://t.zsxq.com/12aAYyPQC)
236247
- [面试被拷打了规则引擎, 感觉这块的内容有点抽象, 问我怎么实现的](https://t.zsxq.com/120qjagAj)
237-
248+
- [我最近几次面试抽奖项目都被问到了redis加锁的滑块锁是针对用户还是针对活动](https://t.zsxq.com/12pc2umy0)

docs/md/road-map/ignite.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
# Apache Ignite —— 一种支持SQL语句的纯内存数据库!
2-
31
---
4-
title: Zookeeper
2+
title: Ignite
53
lock: need
64
---
75

@@ -12,6 +10,8 @@ lock: need
1210

1311
> 沉淀、分享、成长,让自己和他人都能有所收获!😄
1412
13+
<iframe id="B-Video" src="//player.bilibili.com/player.html?aid=363559782&bvid=BV1594y1s7Ku&cid=1269949773&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" width="100%" height="480"> </iframe>
14+
1515
本文的宗旨在于通过简单干净实践的方式,向读者介绍一款基于内存的分布式SQL数据库Apache Ignite的部署、使用和性能测试。
1616

1717
那有了Redis这样优秀的NoSql数据库,为啥还会用到Apache Ignite呢?

docs/md/zsxq/material/interview.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ lock: no
188188
9. 写代码时候有没有什么方式尽量减少Full GC的概率?
189189
- [面试官问我100个用户,只有1个库存,怎么控制并发访问?](https://t.zsxq.com/12aAYyPQC)
190190
- [面试被拷打了规则引擎, 感觉这块的内容有点抽象, 问我怎么实现的](https://t.zsxq.com/120qjagAj)
191+
- [我最近几次面试抽奖项目都被问到了redis加锁的滑块锁是针对用户还是针对活动](https://t.zsxq.com/12pc2umy0)
191192

192193
### 2. API网关
193194

0 commit comments

Comments
 (0)