kafka 与mysql的区别,【数据库】kafka与redis的区别有哪些

e578f8374b6feb2806fa9ddb02058f92.png

kafka与redis的区别:

1、redis消息推送(基于分布式 pub/sub)多用于实时性较高的消息推送,并不保证可靠。

其他的mq和kafka保证可靠但有一些延迟(非实时系统没有保证延迟)。redis-pub/sub断电就清空,而使用redis-list作为消息推送虽然有持久化,但是又太弱智,也并非完全可靠不会丢。

2、redis 发布订阅除了表示不同的 topic 外,并不支持分组,比如kafka中发布一个东西,多个订阅者可以分组,同一个组里只有一个订阅者会收到该消息,这样可以用作负载均衡。

比如,kafka 中发布:topic = "发布帖子" data="文章1" 这个消息,后面有一百台服务器每台服务器都是一个订阅者,都订阅了这个 topic,但是他们可能分为三组,A组50台,用来真的做发布文章,A组50台里所有 subscriber 都订阅了这个topic。

由于在同一组,这条消息 (topic="发布帖子", data="文章1")只会被A组里面一台当前空闲的机器收到。而B组25台服务器用于统计,C组25台服务器用于存档备份,每组只有一台会收到。

用不同的组来决定每条消息要抄送出多少分去,用同组内哪些订阅者忙,哪些订阅者空闲来决定消息会被分到哪台服务器去处理,生产者消费者模型。

redis完全没有这类机制,这两点是最大的区别。

更多Redis相关技术文章,请访问Redis教程栏目进行学习!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Docker Compose 部署 Kafka、Elasticsearch、RedisMySQL 和 MongoDB,并实现持久化。以下是一个示例的 Docker Compose 配置文件: ```yaml version: '3' services: zookeeper: image: confluentinc/cp-zookeeper:6.2.0 container_name: zookeeper ports: - 2181:2181 volumes: - zookeeper-data:/var/lib/zookeeper/data - zookeeper-logs:/var/lib/zookeeper/logs kafka: image: confluentinc/cp-kafka:6.2.0 container_name: kafka depends_on: - zookeeper ports: - 9092:9092 environment: - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 volumes: - kafka-data:/var/lib/kafka/data elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0 container_name: elasticsearch ports: - 9200:9200 volumes: - esdata:/usr/share/elasticsearch/data environment: - discovery.type=single-node redis: image: redis:6.2.5 container_name: redis ports: - 6379:6379 volumes: - redis-data:/data mysql: image: mysql:8.0.26 container_name: mysql ports: - 3306:3306 volumes: - mysql-data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=your_root_password mongo: image: mongo:5.0.2 container_name: mongo ports: - 27017:27017 volumes: - mongo-data:/data/db volumes: zookeeper-data: driver: local zookeeper-logs: driver: local kafka-data: driver: local esdata: driver: local redis-data: driver: local mysql-data: driver: local mongo-data: driver: local ``` 这个示例配置文件中包含了 ZooKeeper、Kafka、Elasticsearch、RedisMySQL 和 MongoDB 的部署配置。通过挂载相应的卷,实现了持久化。 使用以下命令启动所有的服务: ```shell docker-compose up -d ``` 这将启动所有的容器,并将它们分别绑定到主机的相应端口。你可以根据需要修改端口映射。 请注意,这只是一个简单的示例配置文件,你可以根据自己的需求进行修改和扩展。同时,还可以根据需要配置其他 Kafka、Elasticsearch、RedisMySQL 和 MongoDB 相关的环境变量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值