V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lmshl  ›  全部回复第 22 页 / 共 26 页
回复总数  504
1 ... 14  15  16  17  18  19  20  21  22  23 ... 26  
2022-04-26 18:28:37 +08:00
回复了 yesterdaysun 创建的主题 Java 求助 Java 大量任务分布式处理的问题
@yesterdaysun 以上技术方案中,综合代码量和开发难度来看,从易到难依次应该是
纤程 >> Akka Stream > nio-pool > xxjob/scheduler > 动态线程池屎上雕花 >> akka cluster sharding >> akka cluster without sharding

纤程是真的简单,你这需求 20-50 行左右就完事了,不就是个
flow = post(...) >> (sleep(1.minutes) *> check(xxx)).retryWhile(isCompleted) >> retrieve()
然后 tasks.foreachPar(<你想开多大并行>)(flow)
的事
2022-04-26 14:35:07 +08:00
回复了 Kenshiro 创建的主题 程序员 23 届大专生,至今很迷茫,希望前辈指引下
12 届带专学长建议你:脱产备考,同时推荐你一本助我薪资十倍增长的书《 SICP 》
2022-04-26 14:25:58 +08:00
回复了 yesterdaysun 创建的主题 Java 求助 Java 大量任务分布式处理的问题
我写过一个
所有 fiber 去数据库查任务状态,select * from tasks where state = 'todo',然后执行这一批任务,更新任务状态。
最后并行 128 同时跑所有 fiber
2022-04-26 14:15:32 +08:00
回复了 yesterdaysun 创建的主题 Java 求助 Java 大量任务分布式处理的问题
改异步纤程,你这才一千万个 IO 小任务,犯不着上分布式。Akka Stream (调度) + Akka HTTP (调 API ) 随便搞一搞单机就完事了
2022-04-24 11:27:52 +08:00
回复了 jiobanma 创建的主题 Java 关于 JVM 程序计数器与 PC 寄存器的一个疑问
程序计数器 = Program Counter = PC
2022-04-22 14:02:27 +08:00
回复了 irisdev 创建的主题 程序员 有多少程序员真的在 996
哪有什么岁月静好,不过是有人替你“寻恤滋事”
2022-04-22 14:01:18 +08:00
回复了 irisdev 创建的主题 程序员 有多少程序员真的在 996
@dynastysea
上家公司 9-9-5.5 ,非常累,幸亏没结婚没孩子
996 被骂了这么多年,终于稍微有点改善了,可革命道路不能停啊,敌人现在的“和蔼可亲”还不是前辈们斗争出来的。
而且就算骂到今天,腾讯 /字节 /阿里还是大面积 996 。甚至还发明了明文规定加班要申请,要求你“自愿”加班,不填报申请的这种精神资本家,这你敢信?
@nothingistrue 还真都用异步 /nio 去读区的,Android 有 kotlin flow ,compose-jb 给搬到桌面端来了,无非就是多个 suspend / await 的事。而且我 Electron 压根就不可能用同步方法去读文件好吧,直接把 UI 卡白屏了,谁不是写个异步 /nio 读取呢。

只要你习惯了这事,就跟呼吸一样自然,说白了还是写的少了。
@jeesk 但浏览器的 JS 是单线程的,交互是不分开的。Android/Winform/WPF 你也可以用 kotlin flow API ,和 C# async/await ,并没有什么不同。过去开新线程发信号,走 delegate ,今天纯异步 fiber
@jeesk “ui 线程不可能做耗时的操作的,这样 ui 线程会卡死。” 我说的和你说的不是一回事吗?
JavaScript 这么多年不就是这么处理的么?
而且 NIO 本身就是异步了
2022-04-20 11:54:29 +08:00
回复了 TWorldIsNButThis 创建的主题 Java 大家在生产环境有用并行流吗,
2022-04-20 11:53:16 +08:00
回复了 TWorldIsNButThis 创建的主题 Java 大家在生产环境有用并行流吗,
并行流天天用,因为我是 Scala 😏
童叟无欺的并行流:
https://imgur.com/a/k0WqwRQ
2022-04-20 11:42:39 +08:00
回复了 petrichor08 创建的主题 程序员 有大佬了解 BACnet 协议吗?
多年前刚入行智能家居的时候有所耳闻,用来做建筑自动化的协议,不过现在没人用了吧
@nothingistrue nio 确实完全优于 bio ,完全替代这毋庸置疑。2022 年的今天谁在 UI 线程读取文件?十年前都不这么做了好吧。
如果你真的基础扎实的话,你应该知道 memory hierarchy 中 CPU >> Memory >>> Disk ,即使是计算密集型应用,异步流式文件加载也可以尽可能的让计算过程提前开始,最简单的例子就是“读取 CSV 文件,统计数据”,省下来的 CPU 时间可以留给计算过程,让总计算时间缩的更短。
Scala 生态里的 HTTP Body 读写都是纯异步的😏
@jeesk 有做过社区分享,数据是 Prometheus 实时采集的 3 Pod CPU 合计,TPS 也是来自 Ingress 和 服务内暴露的。
我的应用是全异步,包括 HTTP 和 RPC 调用,数据库访问走 hikaricp JDBC 链接池,但技术栈是 Scala 这边的,Akka Stream 混合 ZIO 纤程调度,线程池仅有 N 个 fiber scheduler + 2N 个 Blocking 。
大多数人都是先把线程池用💩了,再学美团动态线程池💩上雕花,并不知道一开始就把事情做对,反而去质疑教科书是不是写错了。
楼主和楼内其他回帖人也犯了不少谬误

我先说下我的实战经验,我有一个 NIO 生产环境服务,落到 JDBC 有 100 QPS ,CPU 消耗不超过 0.2 核心😏

对大部分 CRUD 需要访问数据库,他人 API 的 IO 密集型应用来说,完全 NIO 模型对性能的提升都是碾压级别的,碾过 BIO 渣都不剩。
另一点,JDBC 虽然是阻塞的,但不影响你开固定链接池异步访问,你的应用依然可以按照教科书上 n 核心的 CPU 开 n 个线程的池。

如果你想了解更多 NIO 概念,那应该去看看《响应式设计模式》
1 ... 14  15  16  17  18  19  20  21  22  23 ... 26  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5095 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 39ms · UTC 08:48 · PVG 16:48 · LAX 00:48 · JFK 03:48
♥ Do have faith in what you're doing.