python将kafka数据写入memcache

import json

import memcache
from kafka import KafkaConsumer


class KafkaToMemcache:

    def __init__(self, topic, kafka_host):
        self.memcache = memcache.Client(['127.0.0.1:11211'])
        self.con = KafkaConsumer(topic, bootstrap_servers=kafka_host)

    def write_cache(self, key, body):
        """

        所属单元:监控信息缓存单元

        此方法根据批次号将原始监控数据写入缓存
        :param body: kafka中接收到的数据
        :param key: 编号
        :return:
        """
        try:
            body = body.decode('utf-8')
            self.memcache.set(key, body)
        except UnicodeError:
            print("数据解码出错")

    def consumer(self):
        """
        此方法消费kafka数据,并将之写入缓存中
        :return:
        """
        key = 1
        for msg in self.con:
            key += 1
            data = msg.value
            # print(data)
            self.write_cache(str(key), data)

    def do(self):
        self.consumer()


if __name__ == '__main__':
    topic = "feng"
    kafka_host = "localhost:9092"
    kafka_to_memcache = KafkaToMemcache(topic, kafka_host)
    kafka_to_memcache.do()
在Java中将数据写入Kafka可以使用Kafka Producer API。以下是一个示例代码,演示了如何使用Kafka Producer API将消息写入Kafka。 ```java import java.util.Properties; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; public class KafkaWriter { private static final String TOPIC_NAME = "test"; private static final String BOOTSTRAP_SERVERS = "localhost:9092"; public static void main(String[] args) { Properties props = new Properties(); props.put("bootstrap.servers", BOOTSTRAP_SERVERS); props.put("acks", "all"); props.put("retries", 0); props.put("batch.size", 16384); props.put("linger.ms", 1); props.put("buffer.memory", 33554432); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); KafkaProducer<String, String> producer = new KafkaProducer<>(props); for (int i = 0; i < 10; i++) { String message = "Message " + i; ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, message); producer.send(record); } producer.close(); } } ``` 在此示例中,我们创建了一个名为`KafkaWriter`的类,并在其中定义了一个名为`main`的方法。在`main`方法中,我们首先定义了一些Kafka Producer的配置,然后创建了一个`KafkaProducer`对象。接下来,我们使用一个`for`循环向Kafka发送10条消息。每条消息都包含一个字符串,它是一个简单的文本消息。我们使用`ProducerRecord`对象来指定消息的主题和内容,然后使用`producer.send(record)`方法将消息发送到Kafka。最后,我们关闭了`KafkaProducer`对象,以确保所有未发送的消息都被刷新并发送到Kafka
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值