code: @Bean
    KafkaCollector kafka(
        ZipkinKafkaCollectorProperties kafka,
        CollectorSampler sampler,
        CollectorMetrics metrics,
        StorageComponent storage) {
      final KafkaCollector result =
          kafka.toBuilder().sampler(sampler).metrics(metrics).storage(storage).build();
  
      // don't use @Bean(initMethod = "start") as it can crash the process if zookeeper is down
      Thread start =
          new Thread("start " + result.getClass().getSimpleName()) {
            @Override
            public void run() {
              result.start();
            }
          };
      start.setDaemon(true);
      start.start();
  
      return result;
    }
docs: This launches a thread to run start. This prevents a several second hang, or worse crash if
  zookeeper isn't running, yet.