Java 工作 3 年, crud2 年,面试官问起项目中遇到什么技术难题怎么解决?

2023-03-26 17:05:20 +08:00
 yang0225

工作 3 年,crud2 年,面试官问起项目中遇到什么技术难题怎么解决的,不知道怎么答起,想吸取各位大佬的在项目中遇到的一些普遍技术问题以及解决方案,来回答面试官的问题,技术栈可以 spring 到 springcloud redis 中间件 分布式之类的,让面试过程中稍微有些亮点。求求求了! crud2 年太难受了!!!

5020 次点击
所在节点    程序员
32 条回复
yangyuhan12138
2023-03-26 17:21:44 +08:00
马一个 我也头疼这个问题
yang0225
2023-03-26 17:31:58 +08:00
@yangyuhan12138 TWlyYWl0b3dhX1lhbmdfMjI1 base64 麻了头疼啊
pengtdyd
2023-03-26 19:22:17 +08:00
《 crud 能有什么技术难题》
Saitama
2023-03-26 20:48:33 +08:00
马一个. 前端也一样,每天写点破烂 CRUD 页面。
我觉得唯一的解法就是多看 Github 。看看那些大的开源项目都用了啥,一个一个学.
maigebaoer
2023-03-26 20:51:08 +08:00
我也想知道 crud 有啥技术难点😅😅😅蹲一个
ufo5260987423
2023-03-26 21:04:32 +08:00
1 、幂等性;
2 、如何保证数据一致性并针对性能需求调整方案;
3 、DDD ( Domain driven design );
4 、流程引擎;
5 、鉴权系统和微服务之间的关系;

我说的这些应该还算 CRUD 吧?笑。
dode
2023-03-26 21:06:04 +08:00
旧系统运行维护
LLaMA
2023-03-26 21:07:30 +08:00
技术难题:领导太傻逼
解决方案:润
lessMonologue
2023-03-26 21:12:41 +08:00
# 6 楼说的很详细了,补充一个最近遇到的问题
list 列表直接查 mysql ,导致 mysql 的 thread_running 飙升,怎么排查怎么解决
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 。
这样的话就是一套比较完整的方案,不同平台之间的 数据同步 类场景 我们都可以使用这种思路进行思考
godwei
2023-03-26 21:20:15 +08:00
顶一顶,等大佬回复
yao00jun
2023-03-26 22:16:01 +08:00
顶一顶,等大佬回复
yang0225
2023-03-26 23:13:23 +08:00
其实像我们这些长期 crud 在技术中,确实很难,真实遇到真的问题和解决方案,我发帖的意思是各位大佬们可以稍微分享下,一些比较普遍的技术问题,好在面试中没有那么哑口无言。
yang0225
2023-03-26 23:14:13 +08:00
@orikey 感谢大佬的知识输出,要得就是这种哈哈哈
yang0225
2023-03-26 23:16:25 +08:00
@ufo5260987423 感谢大佬输出
tairan2006
2023-03-27 08:22:17 +08:00
B 端 CURD 难点在于抽象,啥表单引擎流程引擎,复杂的 RBAC 设计。
C 端的 CURD 难点在于性能,量上来了啥问题都有…
zhoudaiyu
2023-03-27 09:05:13 +08:00
@lessMonologue 那么这是为啥呢
hopelessu
2023-03-27 09:28:00 +08:00
留眼
tedzhou1221
2023-03-27 09:32:45 +08:00
使用服务编排(或简单的流程引擎)优化复杂数据的查询
liuxu
2023-03-27 09:37:02 +08:00
qps = 线程池数量 * 每个线程每秒处理数量

200 线程池,每个请求 100ms ,结果是每个线程每秒处理 10 个请求,200 个线程池 pqs 为 2000

对 qps 有要求的,最好选个处理能力强的异步框架 /语言,线程池类的框架模型可以用但不算最好的方案了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/927289

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX