工作 3 年,crud2 年,面试官问起项目中遇到什么技术难题怎么解决的,不知道怎么答起,想吸取各位大佬的在项目中遇到的一些普遍技术问题以及解决方案,来回答面试官的问题,技术栈可以 spring 到 springcloud redis 中间件 分布式之类的,让面试过程中稍微有些亮点。求求求了! crud2 年太难受了!!!
1
yangyuhan12138 2023-03-26 17:21:44 +08:00
马一个 我也头疼这个问题
|
2
yang0225 OP @yangyuhan12138 TWlyYWl0b3dhX1lhbmdfMjI1 base64 麻了头疼啊
|
3
pengtdyd 2023-03-26 19:22:17 +08:00
《 crud 能有什么技术难题》
|
4
Saitama 2023-03-26 20:48:33 +08:00
马一个. 前端也一样,每天写点破烂 CRUD 页面。
我觉得唯一的解法就是多看 Github 。看看那些大的开源项目都用了啥,一个一个学. |
5
maigebaoer 2023-03-26 20:51:08 +08:00 via Android
我也想知道 crud 有啥技术难点😅😅😅蹲一个
|
6
ufo5260987423 2023-03-26 21:04:32 +08:00 1
1 、幂等性;
2 、如何保证数据一致性并针对性能需求调整方案; 3 、DDD ( Domain driven design ); 4 、流程引擎; 5 、鉴权系统和微服务之间的关系; 我说的这些应该还算 CRUD 吧?笑。 |
7
dode 2023-03-26 21:06:04 +08:00
旧系统运行维护
|
8
LLaMA 2023-03-26 21:07:30 +08:00
技术难题:领导太傻逼
解决方案:润 |
9
lessMonologue 2023-03-26 21:12:41 +08:00
# 6 楼说的很详细了,补充一个最近遇到的问题
list 列表直接查 mysql ,导致 mysql 的 thread_running 飙升,怎么排查怎么解决 |
10
orikey 2023-03-26 21:14:41 +08:00
我简单聊一下。工作背景:工作两年,一年电商经验,一年数据产品经验。两家大厂经验。
其实所有的工作 如果进行拆分的话 可以理解为: 1 、处理输入 2 、逻辑处理 3 、处理输出 那么这个地方呢 crud 主要就是在处理逻辑这个 stage 上进行的,所谓高并发 其实我个人感觉我们不妨把目光看到第一个个和最后一个 stage ,如果我们后台框架使用的是 dubbo 默认配置的网络线程池是 200 ,现在我们要面对场景的 qps 高于 200 如何进行处理呢,举个例子,我们现在对接三方直播平台,我们是一个电商,需要自动把库存信息同步给直播平台,那么我们仅仅 sku 的变动调用就大于这个这个值了,这就导致我们对外提供的其他服务别人在调用时会显示不可用,那么我们解决这个问题最简单的一个办法就是在处理输入的时候 可以实现通过布隆过滤器 根据比如店铺 id 或者商品 id ,过滤一部分数据,同时数据同步部分的逻辑直接进行异步处理,我们直接返回 true ,但是发送了一个库存处理消息出去,然后这个地方我们可以在深入,比如对消息的 offset 或者 publishtime 做监控,线上出现消息挤压我们应该提前做好对应的预案,同时我们也可以考虑进行一定程度的流量合并,比如如果库存是 6000 ~ 4000 从第一次调用的时候我们注册一个 5s 左右的定时调度任务(可以参考使用海豚调度),同时这个值加入 redsi 给一个 5s 的锁,这期间的同一个商品的库存变更不处理 5s 后由定时任务回调你,同时针对回调失败的情况自动落库,如果有海量同步失败的数据,就要继续考虑 mysql 中的数据要用 spark 或者其他方式同步一份到 hive 中,然后做 ETL 的处理 比如发消息给你的系统,然后系统中针对这种情况进行异常处理,后续在深入,比如可以在内部的这种数据平台上配置小时级别的监控,如果失败库中数据不为空并且自增 id 有变化则进行同步,并且记录最后一条同步的 mysql 记录中的自增 id 信息,然后自动进行 trigger 。 这样的话就是一套比较完整的方案,不同平台之间的 数据同步 类场景 我们都可以使用这种思路进行思考 |
11
godwei 2023-03-26 21:20:15 +08:00
顶一顶,等大佬回复
|
12
yao00jun 2023-03-26 22:16:01 +08:00
顶一顶,等大佬回复
|
13
yang0225 OP 其实像我们这些长期 crud 在技术中,确实很难,真实遇到真的问题和解决方案,我发帖的意思是各位大佬们可以稍微分享下,一些比较普遍的技术问题,好在面试中没有那么哑口无言。
|
15
yang0225 OP @ufo5260987423 感谢大佬输出
|
16
tairan2006 2023-03-27 08:22:17 +08:00 via Android 2
B 端 CURD 难点在于抽象,啥表单引擎流程引擎,复杂的 RBAC 设计。
C 端的 CURD 难点在于性能,量上来了啥问题都有… |
17
zhoudaiyu 2023-03-27 09:05:13 +08:00 via iPhone
@lessMonologue 那么这是为啥呢
|
18
hopelessu 2023-03-27 09:28:00 +08:00
留眼
|
19
tedzhou1221 2023-03-27 09:32:45 +08:00
使用服务编排(或简单的流程引擎)优化复杂数据的查询
|
20
liuxu 2023-03-27 09:37:02 +08:00 via Android
qps = 线程池数量 * 每个线程每秒处理数量
200 线程池,每个请求 100ms ,结果是每个线程每秒处理 10 个请求,200 个线程池 pqs 为 2000 对 qps 有要求的,最好选个处理能力强的异步框架 /语言,线程池类的框架模型可以用但不算最好的方案了 |
21
diagnostics 2023-03-27 09:41:51 +08:00
CRUD 最后不也得面向用户层嘛,不管用户是其他服务还是真实用户。
- 输入 - 统一校验框架 - 有些查库判断,做到这一层,例如用户 ID 不存在这种,怎么去做呢?所有用户 ID 放 Redis ?可以优化 - 逻辑处理 - latency 是多少?给了多少资源?按利特尔定律去压测,能到这个吞吐量吗? - latency 能降低吗?例如主要是查库的 IO ,那就加 Redis 缓存,缓存失效问题怎么解决?缓存命中率怎么提高? - Redis 有缓存了,还想再优化,有资源的情况下(内存),能不能上内存缓存?关于缓存的问题又来一遍 - 放到内存上了,怎么压缩内存(更改数据结构)避免 GC 带来的延迟了? GC 停顿怎么优化(垃圾收集器,zingJDK ) - 回到 DB 这一层,有分页查询,那么 large page 下索引失效问题怎么解决呢? n + 1 问题如何优化呢? - 输出 |
22
cnzjl 2023-03-27 09:46:10 +08:00
|
23
ForkNMB 2023-03-27 10:25:10 +08:00
线程池参数设置是否合理,比如有个服务 CPU 飙升,就是线程数开太多了
redis 缓存,量太大,查询太频繁,网络有波动容易触发告警,加个很短的本地缓存可以解决问题 还有就是 redis 缓存 @Cacheable 注解失效了 断点源码发现 jackson 反序列化异常了 有人在 dto 里加了多余的 get 方法 tmd Transactional 注解失效 以及用了注解还是超卖的原因分析之类的 都是 curd 仔线上问题遇到的 =_= |
24
Corrots 2023-03-27 10:52:45 +08:00
同感,蹲一蹲
|
25
litchinn 2023-03-27 10:53:18 +08:00
我感觉遇到技术难题大部分时候都不是费很大劲去攻克它,而是转而寻找其他替代方案或者更改需求,选择最简单的那个。
技术难题这东西,就像是某些知识一样,你会了之后觉得很简单,甚至感觉不值得拿出来一说,当你不会时扣脑袋也想不到那去。 |
26
zzzmh 2023-03-27 10:59:04 +08:00
我 7 年了,该回答不出的问题还是回答不出,就不如在自由发言的时候多讲讲自己精通的方面。问答的时候不知道就说不知道,也算是节约时间。
|
27
yaphets666 2023-03-27 11:27:23 +08:00
网上找开源项目,里边的难点,灵活运用成自己项目里的,不用实际上做过,理解了,懂了就可以说。像服务端,无非是,并发,可用,性能问题等等。前端,无非是 ci ,webpack ,模块化,抽象,微前端等等。还有就是遇到某个问题,通过阅读源码发现解决办法等等
|
28
IndieCreator 2023-03-27 18:42:43 +08:00
这个是引入外企的面试风格,回答不一定要非常的难点,也不一定需要你自己经历的,但是要体现这几点
1. 这个问题有点难 2. 我处理这个难点体现了我的 ownership, 提现了我处理复杂问题的能力 3. 我处理这个难点后有什么收获,后续再某某问题的处理中应用到了. |
29
dwlovelife 2023-03-27 20:19:33 +08:00
说几个吧目前做的项目百万用户
|
30
dwlovelife 2023-03-27 20:23:23 +08:00
随便说几个吧目前做的项目百万用户
1. 数据安全,防爬和加密等 2. 流量裁剪, 减少重复调用 [如交易端和中台有部分接口会重复调用 比如都需要获取活动信息 能不能一次调用 下游从上游拿取] 3. 限流,接口限流以及 RPC 接口限流 4. MDC 全链路追踪含 RPC 调用 5. 服务器自动扩容 |
31
xuanbg 2023-03-27 22:18:07 +08:00
没有遇到过什么技术难题,要不你举个例子?
|
32
Angzk3348 2023-03-28 09:27:27 +08:00
插眼学习一下
|