MCPcopy
hub / github.com/nats-io/nats.go / main

Function main

examples/nats-bench/main.go:48–150  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

46var benchmark *bench.Benchmark
47
48func main() {
49 var urls = flag.String("s", nats.DefaultURL, "The nats server URLs (separated by comma)")
50 var tls = flag.Bool("tls", false, "Use TLS Secure Connection")
51 var numPubs = flag.Int("np", DefaultNumPubs, "Number of Concurrent Publishers")
52 var numSubs = flag.Int("ns", DefaultNumSubs, "Number of Concurrent Subscribers")
53 var numMsgs = flag.Int("n", DefaultNumMsgs, "Number of Messages to Publish")
54 var msgSize = flag.Int("ms", DefaultMessageSize, "Size of the message.")
55 var csvFile = flag.String("csv", "", "Save bench data to csv file")
56 var userCreds = flag.String("creds", "", "User Credentials File")
57 var nkeyFile = flag.String("nkey", "", "NKey Seed File")
58 var showHelp = flag.Bool("h", false, "Show help message")
59
60 log.SetFlags(0)
61 flag.Usage = usage
62 flag.Parse()
63
64 if *showHelp {
65 showUsageAndExit(0)
66 }
67
68 args := flag.Args()
69 if len(args) != 1 {
70 showUsageAndExit(1)
71 }
72
73 if *numMsgs <= 0 {
74 log.Fatal("Number of messages should be greater than zero.")
75 }
76
77 // Connect Options.
78 opts := []nats.Option{nats.Name("NATS Benchmark")}
79
80 if *userCreds != "" && *nkeyFile != "" {
81 log.Fatal("specify -seed or -creds")
82 }
83
84 // Use UserCredentials
85 if *userCreds != "" {
86 opts = append(opts, nats.UserCredentials(*userCreds))
87 }
88
89 // Use Nkey authentication.
90 if *nkeyFile != "" {
91 opt, err := nats.NkeyOptionFromSeed(*nkeyFile)
92 if err != nil {
93 log.Fatal(err)
94 }
95 opts = append(opts, opt)
96 }
97
98 // Use TLS specified
99 if *tls {
100 opts = append(opts, nats.Secure(nil))
101 }
102
103 benchmark = bench.NewBenchmark("NATS", *numSubs, *numPubs)
104
105 var startwg sync.WaitGroup

Callers

nothing calls this directly

Calls 13

NewBenchmarkFunction · 0.92
MsgsPerClientFunction · 0.92
runSubscriberFunction · 0.85
runPublisherFunction · 0.85
ConnectMethod · 0.80
FatalfMethod · 0.80
ReportMethod · 0.80
CSVMethod · 0.80
showUsageAndExitFunction · 0.70
NameMethod · 0.65
AddMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected