def consume(address): consumer = KafkaConsumer('seen', bootstrap_servers=address, auto_offset_reset='earliest', enable_auto_commit=False) for message in consumer: # message value and key are raw bytes -- decode if necessary! # e.g., for unicode: `message.value.decode('utf-8')` seen = SeenCount() seen.ParseFromString(message.value) print("{}:{}:{}: key={} value={}".format(message.topic, message.partition, message.offset, message.key, seen))
def greet(context, message: LoginEvent): state = context.state('seen_count').unpack(SeenCount) if not state: state = SeenCount() state.seen = 1 else: state.seen += 1 context.state('seen_count').pack(state) egress_message = kafka_egress_record(topic="seen", key=message.user_name, value=state) context.pack_and_send_egress("k8s-demo/greets-egress", egress_message)
def consume(): consumer = KafkaConsumer('greetings', bootstrap_servers=[KAFKA_BROKER], auto_offset_reset='earliest', group_id='event-gen') for message in consumer: response = SeenCount() response.ParseFromString(message.value) print( "count: %s, sum: %s, avg: %s" % (response.seen, response.sum, float(response.sum) / response.seen), flush=True)
def greet(context, greet_request: GreetRequest): state = context.state('seen_count').unpack(SeenCount) if not state: state = SeenCount() state.seen = 1 else: state.seen += 1 context.state('seen_count').pack(state) response = compute_greeting(greet_request.name, state.seen) egress_message = kafka_egress_record(topic="greetings", key=greet_request.name, value=response) context.pack_and_send_egress("example/greets", egress_message)
def greet(context, greet_request: GreetRequest): state = context.state('seen_count').unpack(SeenCount) if not state: state = SeenCount() state.seen = 1 state.sum = 0 else: state.seen += 1 state.sum += greet_request.val context.state('seen_count').pack(state) response = compute_greeting(greet_request.name, state.seen) response.val = greet_request.val egress_message = kafka_egress_record(topic="greetings", key="vals".encode('utf-8'), value=state) context.pack_and_send_egress("example/greets", egress_message)