更新:原来我在 Docker 中的端口有问题。不知道为什么解决了这个现象。
我相信我遇到了一个奇怪的错误。我正在使用Sarama库并且能够成功创建消费者。
func main() {
config = sarama.NewConfig()
config.ClientID = "go-kafka-consumer"
config.Consumer.Return.Errors = true
// Create new consumer
master, err := sarama.NewConsumer("localhost:9092", config)
if err != nil {
panic(err)
}
defer func() {
if err := master.Close(); err != nil {
panic(err)
}
}()
partitionConsumer, err := master.ConsumePartition("myTopic",0,
sarama.OffsetOldest)
if err != nil {
panic(err)
}
}
Run Code Online (Sandbox Code Playgroud)
一旦我打破这段代码并移到主程序之外,我就会遇到错误:
kafka:客户端已经没有可用的代理可以与之交谈(您的集群是否可访问?)
我已将我的代码拆分如下:我现在已将之前的 main() 方法转换为一个消费者包,其中包含一个名为 NewConsumer() 的方法,而我的新 main() 像这样调用 NewConsumer():
c := consumer.NewConsumer()
Run Code Online (Sandbox Code Playgroud)
恐慌声明在行中被触发sarama.NewConsumer并打印出来kafka: client has …
基本上我有3首歌曲,我希望用户能够在完成3首歌曲的循环后循环回到第一首歌曲.为什么这不起作用?它将播放所有3首歌曲,然后在第四次点击时,不播放任何歌曲.
MediaPlayer song0, song1, song2;
Button play, next;
ArrayList<MediaPlayer> music = new ArrayList<MediaPlayer>();
int track = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
song0 = MediaPlayer.create(TheParty0Activity.this, R.raw.blacksunempire);
song1 = MediaPlayer.create(TheParty0Activity.this, R.raw.blueskies);
song2= MediaPlayer.create(TheParty0Activity.this, R.raw.fuckingnoise);
music.add(song0);
music.add(song1);
music.add(song2);
play = (Button) findViewById(R.id.button0);
next = (Button) findViewById(R.id.button1);
play.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
music.get(track).start();
}
});
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { …Run Code Online (Sandbox Code Playgroud)