func cmdBenchmarkSet() error { if len(globalBrokerList) == 0 { return errors.NotValidf("broker list") } if len(globalTopic) == 0 { return errors.NotValidf("Topic") } sendString := utils.GenTestMessage(globalMsgLength) producerConfig := siesta_producer.NewProducerConfig() producerConfig.Linger = time.Millisecond connConfig := siesta.NewConnectorConfig() brokerList := strings.Split(globalBrokerList, ",") producerConfig.BrokerList = brokerList connConfig.BrokerList = brokerList log.Printf("%v", brokerList) connector, err := siesta.NewDefaultConnector(connConfig) if err != nil { return errors.Trace(err) } // go func() { // timeout := time.Tick(producerConfig.MetadataExpire / 2) // for { // <-timeout // connector.RefreshMetadata([]string{globalTopic}) // } // }() producer := siesta_producer.NewKafkaProducer(producerConfig, siesta_producer.ByteSerializer, siesta_producer.ByteSerializer, connector) bt := utils.NewBenchmarkTester(globalConcurrentLevel, globalDuration, func(bt *utils.BenchmarkTester, index int) error { record := &siesta_producer.ProducerRecord{ Topic: globalTopic, Value: []byte(sendString), } recordMetadata := <-producer.Send(record) if recordMetadata.Error == siesta.ErrNoError { return nil } return recordMetadata.Error }, nil) return errors.Trace(bt.Run()) }
func cmdBenchmarkSetNoAck() error { if len(globalBrokerList) == 0 { return errors.NotValidf("broker list") } if len(globalTopic) == 0 { return errors.NotValidf("Topic") } sendString := utils.GenTestMessage(globalMsgLength) producerConfig := siesta_producer.NewProducerConfig() producerConfig.ClientID = "Benchmark" producerConfig.RequiredAcks = 0 connConfig := siesta.NewConnectorConfig() brokerList := strings.Split(globalBrokerList, ",") producerConfig.BrokerList = brokerList connConfig.BrokerList = brokerList log.Printf("%v", brokerList) connector, err := siesta.NewDefaultConnector(connConfig) if err != nil { return errors.Trace(err) } producer := siesta_producer.NewKafkaProducer(producerConfig, siesta_producer.ByteSerializer, siesta_producer.ByteSerializer, connector) bt := utils.NewBenchmarkTester(globalConcurrentLevel, globalDuration, func(bt *utils.BenchmarkTester, index int) error { record := &siesta_producer.ProducerRecord{ Topic: globalTopic, Value: []byte(sendString), } recordMetadata := <-producer.Send(record) if recordMetadata.Error == siesta.ErrNoError { return nil } return recordMetadata.Error }, nil) return errors.Trace(bt.Run()) }