File tree Expand file tree Collapse file tree 3 files changed +16
-4
lines changed Expand file tree Collapse file tree 3 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -68,6 +68,17 @@ Lottery 系统的全方面技术栈的使用,多场景的问题的解决方案
68
68
3 . 所以基于这样的情况,此规则引擎的设计是一个二叉树判断,实现手段运用到了组合模式、工厂模式等。并为了便于维护和使用,进行了库表对二叉树的抽象设计,树根、节点、子叶,映射为二叉树编码的相关属性信息。同时,也可以基于这样的库表做前端页面的托拉拽配置操作,降低运营成本。
69
69
4 . 最后,其实动态的规则引擎配置,其实放大了看就是 BPMN + Drools + Groovy,的一个低代码实现框架。综上,面试官这个就是我在做规则引擎设计的一些思考、调研和落地。如果以后咱公司有其他更大的场景,我也可以扩展为 Reta 算法和低代码方案进行架构落地实现。
70
70
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
+
71
82
## 四、面试刷题
72
83
73
84
- [ 关于抽奖系统怎么写到简历里] ( https://t.zsxq.com/07yKZJFkR )
@@ -234,4 +245,4 @@ Lottery 系统的全方面技术栈的使用,多场景的问题的解决方案
234
245
9 . 写代码时候有没有什么方式尽量减少Full GC的概率?
235
246
- [ 面试官问我100个用户,只有1个库存,怎么控制并发访问?] ( https://t.zsxq.com/12aAYyPQC )
236
247
- [ 面试被拷打了规则引擎, 感觉这块的内容有点抽象, 问我怎么实现的] ( https://t.zsxq.com/120qjagAj )
237
-
248
+ - [ 我最近几次面试抽奖项目都被问到了redis加锁的滑块锁是针对用户还是针对活动 ] ( https://t.zsxq.com/12pc2umy0 )
Original file line number Diff line number Diff line change 1
- # Apache Ignite —— 一种支持SQL语句的纯内存数据库!
2
-
3
1
---
4
- title: Zookeeper
2
+ title : Ignite
5
3
lock : need
6
4
---
7
5
@@ -12,6 +10,8 @@ lock: need
12
10
13
11
> 沉淀、分享、成长,让自己和他人都能有所收获!😄
14
12
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
+
15
15
本文的宗旨在于通过简单干净实践的方式,向读者介绍一款基于内存的分布式SQL数据库Apache Ignite的部署、使用和性能测试。
16
16
17
17
那有了Redis这样优秀的NoSql数据库,为啥还会用到Apache Ignite呢?
Original file line number Diff line number Diff line change @@ -188,6 +188,7 @@ lock: no
188
188
9 . 写代码时候有没有什么方式尽量减少Full GC的概率?
189
189
- [ 面试官问我100个用户,只有1个库存,怎么控制并发访问?] ( https://t.zsxq.com/12aAYyPQC )
190
190
- [ 面试被拷打了规则引擎, 感觉这块的内容有点抽象, 问我怎么实现的] ( https://t.zsxq.com/120qjagAj )
191
+ - [ 我最近几次面试抽奖项目都被问到了redis加锁的滑块锁是针对用户还是针对活动] ( https://t.zsxq.com/12pc2umy0 )
191
192
192
193
### 2. API网关
193
194
You can’t perform that action at this time.
0 commit comments