gitee.com/woood2/luca@v1.0.4/internal/mq/greet_test.go (about) 1 package mq 2 3 import ( 4 "context" 5 "gitee.com/woood2/luca/internal/producer" 6 "gitee.com/woood2/luca/internal/trace" 7 "gitee.com/woood2/luca/internal/util" 8 "github.com/openzipkin/zipkin-go" 9 "sync" 10 "testing" 11 ) 12 13 //mac pro 16 (2019款) 14 //1 topic, 10 partition 15 //未启动consumer,WaitForLocal,1000/1.7sec 16 //未启动consumer,NoResponse,1000/60ms 17 //启动consumer,NoResponse,1000/70ms 18 //启动consumer,WaitForAll,1000/2.3 sec 19 //启动consumer,WaitForLocal,1000/2.2sec 20 func TestSendGreet(t *testing.T) { 21 util.SkipCI(t) 22 for i := 0; i < 1; i++ { 23 //time.Sleep(2*time.Second) 24 g := &Greet{"xjb", "zq"} 25 span := trace.StartSpan("TestSendGreet") 26 ctx := zipkin.NewContext(context.Background(), span) 27 if err := producer.G().SendMessage(ctx, g); err != nil { 28 t.Errorf("expected err=nil; actual err=%v", err) 29 } 30 span.Finish() 31 } 32 } 33 34 //mac pro 16 (2019款) 35 //1 topic, 10 partition 36 //consumer启动,WaitForLocal 37 //10w/7.1 sec 38 func TestSendGreetConcurrently(t *testing.T) { 39 util.SkipCI(t) 40 var wg sync.WaitGroup 41 for i := 0; i < 100000; i++ { 42 go func() { 43 wg.Add(1) 44 g := &Greet{"xjb", "zq"} 45 span := trace.StartSpan("TestSendGreetConcurrently") 46 ctx := zipkin.NewContext(context.Background(), span) 47 if err := producer.G().SendMessage(ctx, g); err != nil { 48 t.Errorf("expected err=nil; actual err=%v", err) 49 } 50 span.Finish() 51 wg.Done() 52 }() 53 } 54 wg.Wait() 55 } 56 57 //mac pro 16 (2019款) 58 //consumer启动,WaitForLocal 59 //1 topic, 1 groupID, 10 partition 60 //p:1, 3434 61 //p:5, 10000 62 //p:10, 13732 63 //1 topic, 3 groupID, 300 partition 64 //p:1, 800 65 //1 topic, 3 groupID, 50 partition 66 //p:1, 1200 67 //p:5, 6496 68 //p:10, 10000 69 func BenchmarkSendGreet(b *testing.B) { 70 b.SetParallelism(1) 71 b.RunParallel(func(pb *testing.PB) { 72 for pb.Next() { 73 g := &Greet{"xjb", "zq"} 74 span := trace.StartSpan("BenchmarkSendGreet") 75 ctx := zipkin.NewContext(context.Background(), span) 76 producer.G().SendMessage(ctx, g) 77 span.Finish() 78 } 79 }) 80 }