Кажется, что следующие шаги работают.
На локальном компьютере и на компьютере EC2 в /etc/kakfa/server.properties установите
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://54.XX.XX.XX:9092
На локальном компьютере в / etc /kakfa / seller.properties set
bootstrap.servers=0.0.0.0:9092
на машине EC2, в /etc/kakfa/producer.properties set
bootstrap.servers=localhost:9092
как на локальной машине, так и на машине EC2, в / etc / kakfa/consumer.properties set
bootstrap.servers=0.0.0.0:9092
group.id=mygroup
Используйте 'confluent-start', чтобы запустить все необходимые демоны на удаленной машине EC2.На локальной машине Confluent НЕ работает.
На локальном компьютере (для скрытия IP, необязательно):
export KAFKA_PRODUCER_IP=54.XX.XX.XX
При этом производитель с локального компьютера может отправлять сообщения на удаленный компьютер EC2 Kafka следующим образом:
broker = os.environ['KAFKA_PRODUCER_IP'] + ':9092'
topic = 'mytopic'
p = Producer({'bootstrap.servers': broker})
С локального компьютера сообщения могут быть получены с удаленной кафки EC2 следующим образом:
broker = os.environ['KAFKA_PRODUCER_IP'] + ':9092'
topic = 'mytopic'
group = 'mygroup'
c = Consumer({
'bootstrap.servers': broker,
'group.id': group,
'session.timeout.ms': 6000,
'default.topic.config': {
'auto.offset.reset': 'smallest'
}
})
Эти шаги, кажется, работают.Там могут быть некоторые увольнения, если это так, обязательно укажите.