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)})
示例#2
0
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)
示例#3
0
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)
示例#4
0
# 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)
示例#5
0
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)
示例#6
0
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)