V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  bthulu  ›  全部回复第 7 页 / 共 59 页
回复总数  1170
1 ... 3  4  5  6  7  8  9  10  11  12 ... 59  
搞无盘系统, 你维护一台机子就行了
2024-06-17 08:58:12 +08:00
回复了 LiuJiang 创建的主题 职场话题 想问下大龄程序员去那了?
很多向下兼容了, 被大厂裁了去小厂, 小厂裁了去苍蝇厂, 被苍蝇厂裁了, 基本也 50-60 岁了, 开开滴滴混几年就退休了
改什么改, 报警啊
2024-06-04 10:14:52 +08:00
回复了 peyppicp 创建的主题 NAS 绿联公众号发布致歉信
@revoirzl 那我直接买 dell 服务器搞 ALL IN ONE 会不会比较不容易 BOOM?
2024-06-03 20:20:22 +08:00
回复了 azhong123 创建的主题 React javaer 们使用 idea 开发 react 等前端项目好像也可以
不好用, 我用 idea 开发.net, 很明显就不如 rider
只是从 API 网关迁移到云原生网关, 变个法子涨价而已
2024-05-30 17:06:05 +08:00
回复了 wuyadaxian 创建的主题 程序员 [疑问]如何使用 cron 让脚本每 7 分钟执行一次?
别用 cron, 不稳定, 不定什么时候就漏执行了
2024-05-28 19:55:36 +08:00
回复了 nirayxu 创建的主题 Android 求推荐看 epub 没有乱七八糟广告的 app
neat reader+1
2024-05-28 16:50:57 +08:00
回复了 PierreGasly 创建的主题 Android 快要入职了,求推荐工作用国产手机
iqoo11 或 iqoo11s, 闲鱼 2000 左右, 选那种电池健康度 100%的, 基本出厂不到三个月, 跟新的一模一样.
2024-05-27 21:11:47 +08:00
回复了 bthulu 创建的主题 程序员 nginx 是怎么实现 tps>2000 的, 理论上这不可能呀
@InkStone
@flyqie
@chenyu0x00
@pengjay
@ccnoobs
刚才实测, 同一个客户端, 先向服务端 1 发送 7 万次请求, 再向服务端 2 发送 7 万次请求.

结果是向服务端 1 发送到 6 万多次时就报 SocketException: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

再向服务端 2 发请求时, 一次请求都发不出去.

实践证明在 windows 上, 端口是共用的, 若通过端口 9000 请求 dstIp1 并关闭后, 9000 端口进入 time_wait 状态, 此时往其他 dstIp 发送请求时也无法使用这个端口.

服务端代码
```C#
using System.Net;
using System.Net.Sockets;

int port = 9000;
TcpListener server = new TcpListener(IPAddress.Any, port);
server.Start();
Console.WriteLine($"Server listening on :{port}");

try
{
var writer = File.AppendText("c:/temp/a.txt");
List<int> ports = [];
while (true)
{
TcpClient client = server.AcceptTcpClient();
IPEndPoint endPoint = (IPEndPoint)client.Client.RemoteEndPoint!;
ports.Add(endPoint.Port);
if (ports.Count > 10)
{
writer.WriteLine(string.Join("\r\n", ports));
writer.Flush();
ports.Clear();
}
}
}
catch (SocketException e)
{
Console.WriteLine($"SocketException: {e}");
}
finally
{
server.Stop();
}
```

客户端代码
```C#
public class UnitTest1
{
[TestMethod]
public async Task TestMethod1()
{
int k = 0;
for (int j = 0; j < 70; j++)
{
List<Task> list = [];
for (int i = 0; i < 1000; i++)
{
k++;
Task task = OpenAndCloseTcp("10.98.20.129");
list.Add(task);
}

await Task.WhenAll(list);
Console.WriteLine(k);
}
}

[TestMethod]
public async Task TestMethod2()
{
int k = 0;
for (int j = 0; j < 70; j++)
{
List<Task> list = [];
for (int i = 0; i < 1000; i++)
{
k++;
Task task = OpenAndCloseTcp("10.98.20.130");
list.Add(task);
}

await Task.WhenAll(list);
Console.WriteLine(k);
}
}

private async Task OpenAndCloseTcp(string ip)
{
using var client = new TcpClient();
await client.ConnectAsync(ip, 9000);
await using NetworkStream stream = client.GetStream();
byte[] bytes = "\r\n"u8.ToArray();
await stream.WriteAsync(bytes);
}
}
```
2024-05-27 19:39:10 +08:00
回复了 bthulu 创建的主题 程序员 nginx 是怎么实现 tps>2000 的, 理论上这不可能呀
@chenyu0x00 我就说为啥我这突破不了 2000 了, 我还以为哪里配置有问题. 我这里是代理了 Modbus 主服务器, 走的是短链接 tcp 协议, 不是 http. Modbus 主服务器是施耐德的 PLC, 限制只能短链接. 这种情况下, 还有什么别的办法突破 2000 这个限制吗?
2024-05-27 19:30:54 +08:00
回复了 bthulu 创建的主题 程序员 nginx 是怎么实现 tps>2000 的, 理论上这不可能呀
@chenyu0x00 但是 nginx 反代呢, 他跟后端服务器之间, nginx 的 IP 是固定的, 后端服务器的 IP 和端口也是固定的, 这个时候只有 nginx 的端口是动态的了. 可不可以认为这种情况下, nginx 的 TPC 不可能>2000?
2024-05-27 19:28:36 +08:00
回复了 bthulu 创建的主题 程序员 nginx 是怎么实现 tps>2000 的, 理论上这不可能呀
@codehz nginx 不是服务端呀, nginx 是做反向代理, 是客户端. benchmark 程序可以使用端口复用, nginx 应该是不会端口复用的吧?
也就是说, 就是 keep-alive 确保了可以突破 2000?
2024-05-27 19:23:01 +08:00
回复了 bthulu 创建的主题 程序员 nginx 是怎么实现 tps>2000 的, 理论上这不可能呀
@InkStone 这跟四元组有什么关系? nginx 压测, 后端起一个服务器, nginx 代理请求到这个服务器, 测试端全部是短链接请求, dstPort,dstIp, srcIp 都是固定的, 只有 srcPort 是变化的.
2024-05-27 10:35:13 +08:00
回复了 hesetiema 创建的主题 程序员 灰度发布 vs 金丝雀发布,什么是合适的发布策略?
我司用的国产古方金丝楠木发布
2024-05-24 11:49:04 +08:00
回复了 jmychou 创建的主题 程序员 生产环境 SpringBoot Tomcat 线程卡住
看看是不是有人在接口里写了一句 thread.sleep
1 ... 3  4  5  6  7  8  9  10  11  12 ... 59  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2087 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 00:45 · PVG 08:45 · LAX 16:45 · JFK 19:45
♥ Do have faith in what you're doing.