producer.go
func StartProducer(config ProducerConfig) (p *Producer, err error) {
	p, err = NewProducer(config)
	if err != nil {
		return
	}

	p.Start()
	return
}
func StartProducer(config ProducerConfig) (p *Producer, err error) {
	p, err = NewProducer(config)
	if err != nil {
		return
	}

	p.Start()
	return
}
// StartProducer starts and returns a new producer p, configured with the
// variables from the config parameter, or returning an non-nil error if
// some of the configuration variables were invalid.