问题
I have Kafka set up on my local machine, and I'm using github.com/segmentio/kafka-go
to implement consumer producer model and working fine with localhost.
But wanted to connect to an external server that is running on EC2.
ip:= X_XXX_XXX_XXX
func CreateTopic() {
_, err := kafka.DialLeader(context.Background(), "tcp", "ip:9092", "indicator", 0)
if err != nil {
fmt.Println("error in creating topic: " + err.Error())
}
}
func ListofTopics() {
conn, err := kafka.Dial("tcp", "ip:9092")
if err != nil {
fmt.Println(err.Error())
}
defer conn.Close()
partitions, err := conn.ReadPartitions()
if err != nil {
fmt.Println(err.Error())
}
m := map[string]struct{}{}
for _, p := range partitions {
m[p.Topic] = struct{}{}
}
for k := range m {
fmt.Println(k)
}
}
when executing createTopic() function getting error like host not found or connection refussed and gone through some article to reslove this issue. but it was not usefull.
Made chanage to server.properties file like
advertised.listeners=PLAINTEXT://ec2-XX-XXX-XXX-XXX.us-east-2.compute.amazonaws.com:9092
listeners=PLAINTEXT://ec2-XX-XX-XXX-XXX.us-east-2.compute.amazonaws.com:9092
and modified like this too
- In config/server.properties:
advertised.listeners=PLAINTEXT://X_X_X_X_X:9092
- In config/producer.properties:
bootstrap.servers=X_X_X_X_X:9092
and added to sudo nano /etc/hosts
127.0.0.1 ec2-XX-XX-XX-XX.ap-east-1.compute.amazonaws.com
But still getting connection refused error and not host found if proerties file revered back.
来源:https://stackoverflow.com/questions/65334248/how-to-connect-kafka-to-external-server-ip