V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  byte10  ›  全部回复第 60 页 / 共 100 页
回复总数  1981
1 ... 56  57  58  59  60  61  62  63  64  65 ... 100  
@Jekins 可以看看那个 B 战-小巫老师,视频:NIO 场景和实战,有很多场景和代码验证。还有一个 NIO 服务的绝对优势,看完你就知道小白的问题在哪里了。里面还有一个多线程的讲解,也有代码验证 《最大线程数计算公式》的例子。大多数人都不知道怎么去理解 NIO ,他们以为 用上 tomcat 8.x 后的就以为用上了 NIO 了,实际上还差一些。

@xxfye 正确,回答正确。tomcat NIO 要开 200 个线程,那是因为业务层“一般”一般一般依然使用阻塞模型,如果使用异步模型,那么只要少量的线程即可,但是需要使用者去主动设置。

关于网上说的:bio 上下文竞争比 nio 强烈 。因为 NIO 一般只需要设置等于 cpu 核心数即可,BIO 需要设置大量的线程,所以结果是:bio 上下文竞争比 nio 强烈。因果关系没搞明白吗?

如果你想测试多线程开销到底有多大的影响,我代码中有给出例子,你可以使用 TestMaxThreadNum.calculationCpuTime() 去验证,第一次设置 cpu 核心数量,第二次设置 2000 个线程,你就会发现 2000 大量的线程 跑起来没有线程数量少的快( cpu 密集型情况下)。所以 ”线程数量多“ 的上下文竞争 会比 ”线程数量少“ 的厉害,性能会有所下降。

另外 BIO 上下文竞争是否会比 NIO 厉害,这里要区分情况,如果 BIO 线程中经常出现 IO 等待,那么不会有特别多的线程竞争。只有在 IO 时间短,且存在大量的线程的情况下,才会出现这样的情况。要减少这种情况,就需要在业务 IO 时间短的时候,使用少量线程,这不好设置和判断。而 NIO 则可以无视 IO 时间,我在视频中有讲过。

能救一个算一个。
@Leviathann tomcat 问题不大啊,你应该看看我的那个讲解 会给你展示 tomcat 如何处理高并发的场景,不是它不行,而是大部分人不会用。它 tomcat 也是支持 NIO ,使用 servlet 异步编程,依然可以少量的线程,处理高并发。b 战:小巫老师的 NIO 服务的优势-无视 IO 时间,tomat 单机跑 1w+/s 的 QPS 也问题不大。

@zmal 是的,我已经给 OP 的测试方案了,希望他能研究学习下。
@relaxchen mongodb 不是内网部署吗,相对安全把?被批量扫库是什么意思?
@lisongeee 即便 OP 能拿出数据来,也可能是错的,因为测试的方案就不正确了。

我那个视频有讲解怎么做正确的压力测试的,一般用 jmeter 测试没问题,但是测试 NIO 就需要换一个,可以使用 ab(ApacheBench)和 wrk 压测工具。如果知道 http 协议 那么就应该知道 连接数 是关键因素,但是太多人不清楚了。。。jmeter 适合测试 BIO 的服务,不适合测试 NIO 的服务,建议用 wrk 这个工具。
@jeesk 哈哈,先看完,如果有问题可以留言或者 加绿色。我已经给你答案了,还有很多测试的代码,可以验证你的疑虑。为何 tomcat NIO 等于没用?因为下游的业务代码全是阻塞 IO 代码,所以你才会看到 tomcat NIO 依然需要默认 200 个线程。而 webflux 默认就是 cpu 核心数的线程,因为它是响应式编程。除了 webflux ,还有一个 vert.x 使用异步编程,也可以做到少量线程。当然你的业务如果是阻塞 IO 的操作,比如 mysql 读写等,还是需要创建的线程池去处理。

作为一个后辈,我是需要你做出指引,给大家做出指引,科普知识非常的困难,我尽力而为。当然你说的推广算是附带的吧。
@Jekins 可以看看我的视频。B 站:小巫老师,视频:NIO 二 实战演练 ,里面就一个几个案例,讲到为何要用 NIO 。另外一个 视频:NIO 的绝对优势 这个视频非常的强,可以打开 NIO 的思路。里面有很多测试代码,可以帮组你理解 NIO 为何几个线程就可以吊打 BIO 几千个线程。

@nothingistrue 正确,200 个线程难以看出差距,不过在低端 cpu 可以看出和 4 个线程的差距,高端 cpu 起码 2000 个线程和 10 个线程对比才能看出来,另外要测试的话 需要用 cpu 密集型任务去验证,很多小白会用 IO 任务去验证。。我头大。

@hidemyself 你可以看看我的视频,B 站:小巫老师,NIO 二 实战演练,讲述了为何需要 NIO 的场景,里面有很多测试的代码,看完你应该就能明白,NIO 有绝对的性能优势。 等 java 的协程出来,BIO 就基本不会在用了。
@jeesk 少年,你多听前辈的。我来给你一一解答把,第一点:你用 BIO 和 NIO 都是 200 个线程 ,首先你条件是错了。。NIO 只要 4 个线程即可。另外要验证 BIO 上下文切换厉害,这个是需要在 IO 时间很短的情况下才会出现,且 200 个线程不算啥,你得开 1000 个线程才能看出有差距。

所以你要验证线程上下文切换的损耗,我给你一个测试的方案。写一个 main 方法,一个用 4 个线程,一个用 200 个线程,处理的任务是:判断 100000007 是否为一个质数(一个线程计算一个数,总共相同计算 500 次),一个数 for 循环一亿次去判断,最终得到的是 4 个线程比 200 个线程快,原因就是线程切换会有开销,至于你看起来差不多,那是因为现在的 cpu 单核很快。你可以换成树莓派,或者手机 linux deploy ,或者几年前的双核 I3 去验证。你要多学习,多思考。不然以后会误导后辈的,我们公司都很多这样的小白,没有完整的验证方案,因为不懂这基础知识,所以没法设计验证的方案。

第二个问题:一般 BIO - tomcat ,如果有 2000 个用户在线,那么就需要 2000 个线程,除非用伪 BIO 。

第三个问题:你的思路很混乱,我暂时无法回答,也不知道从哪里回答你。

对于 NIO 你先看我的视频,如果能看懂,你就算是毕业了,如果还没看懂,那么是我的讲的还不行。里面有大量的 test case 去验证 tomcat 线程数的数量该设置多少,https://www.bilibili.com/video/BV1FS4y1o7QB ,主页我还有一个视频讲多线程的,应该对你也有帮助。。

@jeesk 关于 tomcat NIO 和 BIO 为何默认 200 个线程。这个从你目前的知识,无法解答。答案在视频里,如果你看懂了,自然明白。里面有大量的数据可以验证,tomcat 有 NIO 但是大多数人 还不会使用。tomcat NIO 的 支持 servlet 用异步编程的模式,只需要设置 tomcat 线程数等于 cpu 核心数 即可。里面有大量的例子给你证明的,希望你能明白。

@hidemyself 你可以看看我的视频,应该能回到你的问题 https://www.bilibili.com/video/BV1FS4y1o7QB
2022-04-16 18:02:35 +08:00
回复了 fox0001 创建的主题 Java 关于 Spring 5 的 WebClient 的困惑
@zartouch 完全正确。
@fox0001 你可以看看这个 https://www.bilibili.com/video/BV1Gq4y1e752 ,这有用到你说的那个响应式编程 httpclient 。#6 楼 说的是非常正确的。如果你的整个项目都是同步编程开发,那么最好不要用响应式编程的工具,不然会很麻烦,除非你很清楚这个使用方式。 这个讲 NIO 的为啥那么强,最好看下这个,https://www.bilibili.com/video/BV1Gq4y1e752
2022-04-16 14:35:13 +08:00
回复了 shallwei 创建的主题 云计算 腾讯云香港 两个月被封了 2 次 443,是什么问题?
@XSNARUTO 感觉你这个最靠谱😄
@herozzm 我也觉得没毛病。

我觉得要不打直接 明牌好了,直接 tcp 明文好了,反其道而行,你看我的访问都是正规的网站。tls 流量大,大概率被封。
2022-04-15 09:51:15 +08:00
回复了 Tukali 创建的主题 macOS 好用的随身 wifi 有哪些
三星 S9, 三星 S10 ,NOTE10 ,内网同一个房间,理论值 865Mpbs, 实际值 SMB 速度 60-70mb/s ,还有谁?高功率的 wifi5 。应该可以直接吊打 wifi5 的路由器吧? 咸鱼 300-500 买个破屏幕 就可以了
2022-04-15 09:38:07 +08:00
回复了 zdx0122 创建的主题 问与答 有哪些推荐的 mini 主机
直接咸鱼搜索 1165G7 ,回头感谢我吧,我没有币了。。有一个 10X10CM 的小主机 1699-1899 ,目前最好的小主机,性价比最高的小主机了。amd 也有 5900hx 那些。。不着急的话可以等 intel 12 代的,多核适合编程。

记得回头感谢我的回答
2022-04-13 16:46:17 +08:00
回复了 jessun1990 创建的主题 Apple 求问: PDD 的低价 M1,到底坑在哪里?
去年澳门版全新只要 7500-7600 元,16+256 。。去咸鱼买把,我都买了几个了,都还在保修。
2022-04-13 16:43:37 +08:00
回复了 dunhanson 创建的主题 程序员 为什么要区分不同的 http 状态码?想说服同事
@Biwood 哈哈 用 404 劫持页面,这个鸡贼😂
@adoal 可以的 666 ,收录你的回答,以后可以用这个理由。
@BeautifulSoap 同意。
@1000copy 挺好的,收录你这些理由。
@alswl 同意,收录,单纯把 http 当做传输协议也未尝不可,尤其是在 app 端是更好了。
@adoal 挺好的分析
@MrSheng 😂,可以的。
@salmon5 真实了。
@3dwelcome 可以的,案例不错。
@lisongeee 哈哈跨界了
@coala restful 规范确实很难执行
@seakingii 我不喜欢 restful ,都是太过于理想了。

总结一下:业务服务还是 200 一把梭好,没有啥原因,把 http 当成一个传输协议,因为有可能用 mqtt ,也可能用 ws 。听话不然就会很惨的,以后会很惨,前端后端都惨。跟那个 restful 一样,最后四不像。还是把事情简单化吧,不然以后不会幸福的。
2022-04-13 14:17:48 +08:00
回复了 unt 创建的主题 程序员 现在在 Mac 和 windows 间反复横跳,很难受怎么办
@bleutee 哈哈 倒不至于,无头 macbook 了解下。
@raycool 对的!但是可以反过来,黑苹果在家里就好了

其实还是推荐楼主你买一个无头 macbook ,或者黑苹果放家里,轻量办公,公司可以带自己的 macbook 吧。我以前都是在公司用无头 macbook ,我全面迁移到 vscode 开发了,所以公司配的 windows 就是安装 wsl 被我远程开发即可,开会直接用公司的 windows ,看看 ppt ,网页啥的,问题不大。
2022-04-13 14:02:19 +08:00
回复了 vlike 创建的主题 程序员 求推荐家用私有云,主要是相册备份
@helloworld1024 如果单单是存照片或者小文件,短视频我也是推荐云盘那些。大文件那些公有云不好下载回来倒是真的。
@molicloud 同意哈哈,所以硬盘盒的自动休眠 就非常的 nice ,我个人还是挺推荐,硬盘盒做冷备份。
@molicloud 你这个计算不科学,群晖方案一般就是 30w 左右。随便一个 6W 功耗的 N 系列的 cpu 加 4 个硬盘,一个硬盘 6-7W ,待机都不到 30w 出头,2 个硬盘的话 16W 出头。按 20w 算,,我靠居然也要 18 度电。。。好吧还是上云吧

你都是正经的照片,就不用怕啥泄漏的,直接公有云盘。另外群晖 我也是推荐,不过我是建议你买一个小主机几百的,可安装固态 1-2T 存储,安装黑群晖当私有云,功耗也低。然后买一个硬盘盒,100 块钱 2 盘位,usb3.0 进行冷备份,它硬盘盒会自动休眠非常的 nice 。为啥不推荐群晖用机械硬盘呢,二手的硬盘有一点点坏道插进去使用。群晖就是当做一个自己的私有云把,硬盘做冷备份,每天定时跑任务就好了备份。我已经被群晖的机械硬盘坑了,而且电费散热都麻烦。
2022-04-13 11:58:35 +08:00
回复了 cwcc 创建的主题 OpenWrt 想玩 LEDE/Openwrt 了,但手上只有这一台小主机且只有一个口
@cwcc 强制,openwrt 都可以强制 dhcp ,我测试过可以的,但是最近的小主机断网后,重连,是可以得到 openwrt 的 dhcp 。wifi 也都是一样获取到的就是 openwrt 的 网关。
2022-04-13 09:59:36 +08:00
回复了 tans0008 创建的主题 OpenWrt 求可刷 openwrt 的便宜的千兆路由器
软路由,nanopi neo2, neo3 都是千兆,很萌,很小个。我也是很喜欢,neo2 100 多但是没有 usb3.0 ,头大。neo3 有 usb3.0 但是 270 有点贵,都可以上 X86 了
@Chinsung 666 ,我之前的架构就是这样的,单体,但是划分好业务,随时可以拆成微服务,当然前提是数据库先拆分不同库,这样想耦合查询库都不行😂,后面随时都可以拆分成微服务。
@a90120411 DDD 是个好东西,但是 DDD 跟微服务的是一样的,还是不好划分领域边界,还是遇到粒度问题。而且 DDD 每个人看到都有点差距。另外很多餐桌鸡 不是说用 DDD 的思想去拆分微服务,而是把 DDD 的编程模型 也引入进单个微服务中,开发起来头大,反正水平差 的太多了。
2022-04-12 09:22:21 +08:00
回复了 kaiki 创建的主题 分享创造 你说你🐴呢?又一个文本加密解密工具
@ITisCool 是因为加密无法被监控吗?😁
2022-04-11 14:42:07 +08:00
回复了 OldNio 创建的主题 Apple 公司发了 21 的 16 寸 mbp 还有必要买新的电脑吗
@20015jjw 10 年。。MBA M1 感觉还真可以😄
2022-04-08 09:02:22 +08:00
回复了 ryanhui 创建的主题 问与答 虚心请教增重的方法
@erek 老铁扎心了。。。
@levineet 我在知乎也看到,感觉还可以的。

还有睡眠也是,一般睡的好吃的好,只要是没病 都能胖,心态也要放好。结婚的人心态都还可以的,一般幸福的人都胖就是这个原因。

楼上说的增肌也是一种很直接的方式,直接一个月增重 5 斤-10 斤,前提是你是学生,或者公务员没啥压力。不然上班累死,撸不动铁的
2022-04-07 19:07:07 +08:00
回复了 closedevice 创建的主题 生活 着魔了,陷入了报复性消费的习惯中,老铁们如何破局?
@polaa 你这。。。让我头大。哎,伤心,没了几台 mac Studio 了。
1 ... 56  57  58  59  60  61  62  63  64  65 ... 100  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1650 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 16:54 · PVG 00:54 · LAX 08:54 · JFK 11:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.