File tree 2 files changed +20
-4
lines changed
2 files changed +20
-4
lines changed Original file line number Diff line number Diff line change @@ -214,6 +214,17 @@ MySQL 主从同步延时是指从库的数据落后于主库的数据,这种
214
214
- ** 融合算法分片** :灵活组合多种分片算法,比如将哈希分片和范围分片组合。
215
215
- ……
216
216
217
+ ### 分片键如何选择?
218
+
219
+ 分片键(Sharding Key)是数据分片的关键字段。分片键的选择非常重要,它关系着数据的分布和查询效率。一般来说,分片键应该具备以下特点:
220
+
221
+ - 具有共性,即能够覆盖绝大多数的查询场景,尽量减少单次查询所涉及的分片数量,降低数据库压力;
222
+ - 具有离散性,即能够将数据均匀地分散到各个分片上,避免数据倾斜和热点问题;
223
+ - 具有稳定性,即分片键的值不会发生变化,避免数据迁移和一致性问题;
224
+ - 具有扩展性,即能够支持分片的动态增加和减少,避免数据重新分片的开销。
225
+
226
+ 实际项目中,分片键很难满足上面提到的所有特点,需要权衡一下。并且,分片键可以是表中多个字段的组合,例如取用户 ID 后四位作为订单 ID 后缀。
227
+
217
228
### 分库分表会带来什么问题呢?
218
229
219
230
记住,你在公司做的任何技术决策,不光是要考虑这个技术能不能满足我们的要求,是否适合当前业务场景,还要重点考虑其带来的成本。
Original file line number Diff line number Diff line change @@ -162,17 +162,22 @@ icon: jianli
162
162
- 使用 xxx 技术优化了 xxx 模块,响应时间从 2s 降低到 0.2s。
163
163
- ……
164
164
165
- 个人职责介绍示例 :
165
+ 个人职责介绍示例(这里只是举例,不要照搬,结合自己项目经历自己去写,不然面试的时候容易被问倒) :
166
166
167
167
- 基于 Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权,使用 RBAC 权限模型实现动态权限控制。
168
- - 参与项目订单模块的开发,负责订单创建、删除、查询等功能。
169
- - 整合 Canal + RocketMQ 将 MySQL 增量数据(如商品、订单数据)同步到 ES。
168
+ - 参与项目订单模块的开发,负责订单创建、删除、查询等功能,基于 Spring 状态机实现订单状态流转。
169
+ - 商品和订单搜索场景引入 Elasticsearch,并且实现了相关商品推荐以及搜索提示功能。
170
+ - 整合 Canal + RabbitMQ 将 MySQL 增量数据(如商品、订单数据)同步到 Elasticsearch。
171
+ - 利用 RabbitMQ 官方提供的延迟队列插件实现延时任务场景比如订单超时自动取消、优惠券过期提醒、退款处理。
172
+ - 使用 MAT 工具分析 dump 文件解决了广告服务新版本上线后导致大量的服务超时告警的问题。
170
173
- 排查并解决扣费模块由于扣费父任务和反作弊子任务使用同一个线程池导致的死锁问题。
174
+ - 基于 EasyExcel 实现广告投放数据的导入导出,通过 MyBatis 批处理插入数据,基于任务表实现异步。
171
175
- 负责用户统计模块的开发,使用 CompletableFuture 并行加载后台用户统计模块的数据信息,平均相应时间从 3.5s 降低到 1s。
172
- - 使用 Sharding-JDBC 以用户 ID 后 4 位作为 Shard Key 对订单表进行分库分表,共 3 个库,每个库 2 个订单表,单表数据量保持在 500w 以下。自定义雪花算法生成订单 ID 的规则,把分片键同时作为的订单 ID 一部分,避免了额外存储订单 ID 与路由键的关系 。
176
+ - 基于 Sentinel 对核心场景(如用户登入注册、收货地址查询等)进行限流、降级,保护系统,提升用户体验 。
173
177
- 热门数据(如首页、热门博客)使用 Redis+Caffeine 两级缓存,解决了缓存击穿和穿透问题,查询速度毫秒级,QPS 30w+。
174
178
- 使用 CompletableFuture 优化购物车查询模块,对获取用户信息、商品详情、优惠券信息等异步 RPC 调用进行编排,响应时间从 2s 降低为 0.2s。
175
179
- 搭建 EasyMock 服务,用于模拟第三方平台接口,方便了在网络隔离情况下的接口对接工作。
180
+ - 基于 SkyWalking + Elasticsearch 搭建分布式链路追踪系统实现实现全链路监控。
176
181
177
182
** 4、如果你觉得你的项目技术比较落后的话,可以自己私下进行改进。重要的是让项目比较有亮点,通过什么方式就无所谓了。**
178
183
You can’t perform that action at this time.
0 commit comments