Closed yangbocheng closed 1 year ago
以下是目录下的日志
#Software: test2
#ProcessID: 27272 x64
#AppDomain: test2
#FileName: E:\csharp\test2\test2\test2\bin\Debug\net7.0\test2.exe
#BaseDirectory: E:\csharp\test2\test2\test2\bin\Debug\net7.0\
#TempPath: C:\Users\admin\AppData\Local\Temp\
#CommandLine: E:\csharp\test2\test2\test2\bin\Debug\net7.0\test2.dll
#ApplicationType: Console
#CLR: 7.0.0, .NET 7.0.0
#OS: Microsoft Windows NT 10.0.19044.0, DESKTOP-U4VKV3S/admin
#CPU: 16
#GC: IsServerGC=False, LatencyMode=Interactive
#ThreadPool: Min=32/32, Max=32767/1000, Available=32765/1000
#Date: 2023-01-03
#详解:https://newlifex.com/core/log
#字段: 时间 线程ID 线程池Y/网页W/普通N/定时T 线程名/任务ID 消息内容
#Fields: Time ThreadID Kind Name Message
17:44:28.538 1 N - [testg2]正在准备消费 nx_test33
17:44:28.548 1 N - [testg2]正在从名称服务器[127.0.0.1:9876]查找该Topic所在Broker服务器地址列表
17:44:28.625 1 N - NewLife.Core v10.1.2022.1201 Build 2023-12-01 .NET 7.0
17:44:28.625 1 N - NewLife组件核心库 ©2002-2022 NewLife
17:44:28.625 1 N - test2 v1.0.0 Build 2000-01-01 .NET 7.0
17:44:28.625 1 N - test2
17:44:28.625 1 N - 发现Broker[broker-a]: 172.26.64.99:10911
17:44:28.732 4 Y T [testg2]准备从所有Broker服务器上获取消费者列表,以确定当前消费者应该负责消费的queue分片
17:44:28.751 4 Y T [testg2]1: no consumer for this group
17:44:28.861 9 Y P [testg2]准备从所有Broker服务器上获取消费者列表,以确定当前消费者应该负责消费的queue分片
17:44:28.868 9 Y P [testg2]消费重新平衡,当前消费者负责queue分片:broker-a[0,1]
17:44:28.879 4 Y P [testg2]初始化offset[broker-a@0] Offset=6
17:44:28.881 10 Y P [testg2]初始化offset[broker-a@1] Offset=5
我修改了下 FromLastOffset=false, 目前看来就没问题了
对于rocketmq和kafka来说,每一个queue队列(或分区),就是一个WAL数据文件。 生产消息,就是不断写入这个文件。 而各个消费者,就维持着一个指针,指向这个文件的相应位置。 所谓的消费确认和从尾部消费,只不过是移动该消费者自己的指针而已。
新建2个工程test1,test2 分别为生产者和消费者
var mq = new Producer { Topic = "nx_test33", NameServerAddress = "127.0.0.1:9876",
};
mq.Start();
for (var i = 0; i < 11; i++) { var str = "学无先后达者为师" + i; //var str = Rand.NextString(1337);
}
Console.WriteLine("正在处理消息s"); Console.ReadLine();