V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  546L5LiK6ZOt  ›  全部回复第 2 页 / 共 5 页
回复总数  92
1  2  3  4  5  
2023-04-05 10:25:32 +08:00
回复了 NoKey 创建的主题 程序员 异步记录日志,主体数据回滚了怎么办
两个线程同时操作数据库,又要保证一致性,这相当于是分布式事务了。不过分布式事务的框架比较重,直接搞个定时任务来检查日志是否需要回滚更简单点,做到最终一致。

异步操作是为了不影响主流程,保证可用性,但是可用性和一致性不可兼得。。
2023-03-12 01:18:17 +08:00
回复了 mercurius 创建的主题 程序员 求助一个高并发的数据校验与保存问题
@xiaop1ng

参考这里 https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html

GC 的 STW 可能会导致锁过期了,但是进程还认为占用锁。即使用没有 GC 的语言,操作系统的进程调度也可能会出现这种情况。理论上来说,分布式锁不可能保证完全一致的。还是得靠底层数据库
2023-03-11 20:59:38 +08:00
回复了 mercurius 创建的主题 程序员 求助一个高并发的数据校验与保存问题
我觉得严谨的做法还是得在数据库用唯一键约束来做。原先的表不能加唯一键,那就新增一个表,商品和 sku 作为唯一键,在一个事务里插入。用分布式锁不能保证 100% 一致的。
2023-03-11 20:57:11 +08:00
回复了 mercurius 创建的主题 程序员 求助一个高并发的数据校验与保存问题
几十、上百次 redis 请求不算高,腾讯云最低配的 redis 也能支持上万 qps
2023-03-11 19:01:12 +08:00
回复了 mercurius 创建的主题 程序员 求助一个高并发的数据校验与保存问题
Redisson 分布式锁不可以吗,对商品进行加锁
看到很多人说并行处理 io 需要用多线程,其实 nio 出来很多年了,一个线程就能同时管理多个 fd ,大多数 io 相关的类库都会提供异步接口,例如 redis client ,kafka client ,apache http client ,dubbo ,es client 等都有异步接口,比开多线程同步调用性能会好点(用多线程还得评估线程数,麻烦)。也有些例外,例如 jdbc ,只有同步接口,所以并发操作数据库只能开多线程了。
2023-03-02 19:22:54 +08:00
回复了 panlatent 创建的主题 浏览器 浏览器循环 ♻️
一开始用 chrome ,自从知道 chrome 密码保存不安全后,转到 firefox 。firefox 用了两年,发现很多网站对 firefox 适配做得不好,例如抖音世界杯播放到半途会卡,打开腾讯文档有时会有 bug ,公司内网各个网站只适配 chrome……没办法,又切回用 chrome 了。
佛教就讲究无欲,认为没有欲望就不会有痛苦。但是呢,人类社会的主流思想是要有梦想,并为之奋斗(欲望要足够大然后再满足欲望)。无欲其实是跟社会格格不入的,是一种出世的思想。人类又是天生就是群居动物,所以要做到无欲,就得违背人性,我觉得是很难的。
2023-02-22 00:14:11 +08:00
回复了 pxiphx891 创建的主题 分享创造 我开发了一个文件快速搜索软件,欢迎大家试用反馈
swing 的界面会不会有点丑,为啥不用 javafx 呢
《人类简史》

以前一直以为科技发展会让人类越来越幸福,以后人类只需要躺平,让机器干活就行。但其实人类发展以来,劳动时间一直在变长,科技不一定让生活越来越美好,只是 “让更多的人以更糟糕的方式活下去”(人的数量变多,但是平均幸福感可能是下降的)。
2023-02-16 20:58:30 +08:00
回复了 wazon 创建的主题 问与答 Chrome 如何开启设备端加密?
@wazon 我也设置成功了。不过没什么卵用,照样能用 python 脚本提取密码。不知道官方宣称安全性提升是体现在哪里
2023-02-15 17:09:55 +08:00
回复了 soclearn 创建的主题 编程 我从来没见过比面向对象更糟糕的编程范式和语言
@uni 我是实践派哈哈~ 数学是很好,但是不是所有人都懂。用数学语言跟各方人员沟通,感觉现实不太可行。。。
2023-02-15 00:04:37 +08:00
回复了 soclearn 创建的主题 编程 我从来没见过比面向对象更糟糕的编程范式和语言
以我的实际经历来看,在面对复杂的业务需求,往往产品经理单方面都是很难理清需求的,是需要多方(包括业务、测试、开发)一起来讨论分析。这时一般都是用 uml 来沟通(不一定是标准的 uml ,大家看得像就行),uml 大家都容易理解。如果直接用 dsl 来跟各方人员沟通,我觉得是不可能的。
2023-02-14 23:36:58 +08:00
回复了 soclearn 创建的主题 编程 我从来没见过比面向对象更糟糕的编程范式和语言
@minlearn
并不是说一定要 uml 建模,我想表达的是必须要有一种业务建模的方式,在问题域和解空间之间建立一个桥梁,要有个过渡。你说的建立 class language 就是指 dsl 吧(不知有没有理解错)?在接到需求就能马上动手建立 dsl 吗?不需要建模分析吗?不需要的话,说明需求还是太简单了。
2023-02-14 23:24:24 +08:00
回复了 soclearn 创建的主题 编程 我从来没见过比面向对象更糟糕的编程范式和语言
@amlee 你这样子太理想化了。现实中面对复杂的业务需求,很难一下子全部理清并动手写代码的。还是需要画一些图来跟产品、测试、其他开发人员沟通,对齐需求和技术方案。如果一开始就写代码,你确定大家都能快速看懂代码吗?但是流程图、时序图这种,大家都能容易理解。例如同时把代码和相关的流程图同时摆在你面前,你会选择先看代码还是先看图?
2023-02-14 22:14:46 +08:00
回复了 soclearn 创建的主题 编程 我从来没见过比面向对象更糟糕的编程范式和语言
不知道楼主有没有了解过 oop 的历史。oop 的概念被提出来,最初的本意不是面向对象,而是面向消息,名字起得不好,容易造成误会。加上后来 gui 编程开始流行,大家发现界面上的的组件可以用 oop 的对象表示,组件之间也存在继承关系。当时流行的 c++ 和 java 都支持 gui 编程,自然也就慢慢引领 oop 往继承方向发展了。每个语言都有一定的技术债,了解下历史,自然也就明白为啥现在会是这样子,没有完美的。可以看下 [维基百科]( https://en.wikipedia.org/wiki/Object-oriented_programming) 和 [The Forgotten History of OOP]( https://medium.com/javascript-scene/the-forgotten-history-of-oop-88d71b9b2d9f)。

话说天然支持并发的应该都是纯函数式编程语言吧。纯函数式编程语言有个问题,就是有状态的数据结构没办法用语言本身来实现,例如哈希表( haskell 貌似是底层虚拟机提供实现的)。这意味着不少依赖状态的数据结构和算法都得改,用函数式的思维模式重新思考。

而且貌似在软件工程领域,很少有用函数式思维来建模的方法论。例如用 oop 建模,有 uml ,通过画类图、时序图等等来分析复杂业务逻辑,这些图都是可以方便映射到代码实现当中的。但是在函数式编程领域,面对复杂的业务逻辑时应该怎么建模呢(怎么通过图形化方式表示高阶函数、functor 、monoid 、monad 等概念)?
2023-02-12 00:07:10 +08:00
回复了 wazon 创建的主题 问与答 Chrome 如何开启设备端加密?
我也遇到这样的问题,请问楼主现在解决了吗
2023-02-05 13:38:14 +08:00
回复了 koto 创建的主题 随想 教我妈用电脑随想
对于小白来说,mac os 比 windows 更容易上手。windows 设计得不好。
2023-02-03 22:04:34 +08:00
回复了 never2023 创建的主题 奇思妙想 为什么结婚要终身制?不是 10 年 20 年有效期的?
记得人类简史里面有说,人类几百万年的历史,一夫一妻制是最近几千年才出现的。所以说“花心”早就刻进了 DNA 中,一心一意反而是反人性的。哈哈~~~
好奇更新索引和更新普通列性能差别有多大

如果更新成为瓶颈,一般都是要分库分表。如果影响查询,就像 1 楼说的读写分离。加个从库也不需要很多资源吧。
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5679 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 01:34 · PVG 09:34 · LAX 17:34 · JFK 20:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.