def producer(): print(TRANSACTIONS_TOPIC) print(KAFKA_BROKER_URL) print(TRANSACTIONS_PER_SECOND) try: client = get_kafka_client() topic = client.topics[TRANSACTIONS_TOPIC] producer = topic.get_sync_producer() count = 6 transactions = [] while count > 0: try: transaction: dict = create_random_transaction() transaction_output = json.dumps(transaction) producer.produce(transaction_output.encode('ascii')) print(transaction) # DEBUG sleep(SLEEP_TIME) transactions.append(transaction) count = count - 1 print(transactions) except Exception as e: print(str(e)) return ({ "statusCode": 200, "body": transactions, "KAFKA_BROKER_URL": KAFKA_BROKER_URL }) except Exception as e: return ({"statusCode": 400, "error_message": str(e)})
def main(): # Produces transactions to transactions topic producer = KafkaProducer( bootstrap_servers=KAFKA_BROKER_URL, value_serializer=lambda value: json.dumps(value).encode(), ) # Create and send transactions, then sleep given interval while True: transaction: dict = create_random_transaction() producer.send(TRANSACTIONS_TOPIC, value=transaction) print(transaction) sleep(SLEEP_TIME)
import json from kafka import KafkaProducer import os from time import sleep from transactions import create_random_transaction # from .transactions import create_random_transaction KAFKA_BROKER_URL = os.environ.get("KAFKA_BROKER_URL") TRANSACTIONS_TOPIC = os.environ.get("TRANSACTIONS_TOPIC") SLEEP_TIME = 1 if __name__ == "__main__": producer = KafkaProducer( bootstrap_servers=KAFKA_BROKER_URL, value_serializer=lambda value: json.dumps(value).encode()) while True: transaction = create_random_transaction() print(transaction) producer.send(TRANSACTIONS_TOPIC, value=transaction) sleep(SLEEP_TIME)
# generator/app.py """Produce fake transactions into a Kafka topic.""" import os import json from time import sleep from kafka import KafkaProducer from transactions import create_random_transaction KAFKA_BROKER_URL = os.environ.get('KAFKA_BROKER_URL') TRANSACTIONS_TOPIC = os.environ.get('TRANSACTIONS_TOPIC') TRANSACTIONS_PER_SECOND = float(os.environ.get('TRANSACTIONS_PER_SECOND')) SLEEP_TIME = 1 / TRANSACTIONS_PER_SECOND if __name__ == '__main__': producer = KafkaProducer( bootstrap_servers=KAFKA_BROKER_URL, # Encode all values as JSON value_serializer=lambda value: json.dumps(value).encode(), ) while True: transaction: dict = create_random_transaction() producer.send(TRANSACTIONS_TOPIC, value=transaction) print(transaction) # DEBUG sleep(SLEEP_TIME)
from kafka import KafkaProducer from time import sleep from transactions import create_random_transaction import os import json KAFKA_BROKER_URL = os.environ.get("KAFKA_BROKER_URL") TRANSACTIONS_TOPIC = os.environ.get("TRANSACTIONS_TOPIC") TRANSACTIONS_PER_SECOND = float(os.environ.get("TRANSACTIONS_PER_SECOND")) SLEEP_TIME = 1 / TRANSACTIONS_PER_SECOND if __name__ == '__main__': producer = KafkaProducer( bootstrap_servers=KAFKA_BROKER_URL, # Encode all values as JSON value_serializer=lambda value: json.dumps(value).encode()) while True: transaction = create_random_transaction() # Dictionary message = json.dumps(transaction) # String producer.send(TRANSACTIONS_TOPIC, value=transaction) print(transaction) # DEBUG sleep(SLEEP_TIME)
import os import json from time import sleep from kafka import KafkaProducer from transactions import create_random_transaction KAFKA_BROKER_URL = os.environ.get('KAFKA_BROKER_URL') TRANSACTIONS_TOPIC = os.environ.get('TRANSACTIONS_TOPIC') TRANSACTIONS_PER_SECOND = float(os.environ.get('TRANSACTIONS_PER_SECOND')) SLEEP_TIME = 1 / TRANSACTIONS_PER_SECOND if __name__ == '__main__': producer = KafkaProducer( bootstrap_servers=KAFKA_BROKER_URL, value_serializer=lambda value: json.dumps(value).encode( ), # Encode all values as JSON #api_version=(1, 4, 7) ) while True: transaction = dict(create_random_transaction()) producer.send(TRANSACTIONS_TOPIC, value=transaction) print(transaction) # DEBUG sleep(SLEEP_TIME)