消息队列之--Kafak
序言
消息丢失如何解决?
解耦
异步
并行
Docker安装Kafak
1.下载镜像
- # zookeeper镜像
- docker pull wurstmeister/zookeeper
- # kafka镜像
- docker pull wurstmeister/kafka
- # kafka管理镜像
- docker pull sheepkiller/kafka-manager
2.运行容器
启动zookeeper
- docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper
查看zookeeper启动日志
- docker logs -f zookeeper
安装kafka
- docker run -d --name kafka \
- --env KAFKA_ADVERTISED_HOST_NAME=localhost \
- --env KAFKA_ZOOKEEPER_CONNECT=192.168.229.129:2181 \
- --env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.229.129:9092 \
- --env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
- --env KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" \
- --net=host wurstmeister/kafka
查看kafka启动日志
- docker logs -f kafka
验证:
进入kafka容器
- docker exec -it kafka /bin/bash
- # 进入kafka的bin目录
- cd /opt/kafka_2.12-2.2.0/bin/
新建一个test主题,并以生产者身份进行消息生产
- ./kafka-topics.sh --create --zookeeper 192.168.229.129:2181 --replication-factor 1 --partitions 1 --topic test
- ./kafka-console-producer.sh --broker-list 192.168.229.129:9092 --topic test
- >hello # 发送一条消息并回车
- >world
打开一个新的ssh连接,同样进入kafka容器,模拟消费者接收消息
- docker exec -it kafka /bin/bash
- # 进入kafka的bin目录
- cd /opt/kafka_2.12-2.2.0/bin/
- # 以消费者身份接收消息
- ./kafka-console-consumer.sh --bootstrap-server 192.168.229.129:9092 --topic test --from-beginning
- hello # 成功接收到消息
- world
不断在生产者端发送消息,消费者端可以不断的接收到消息。kafka安装成功!
同样,在zookeeper可视化工具,刷新后可以看到kafka的相关数据节点:
安装kafkamanager
- docker run -d --name kafka-manager -e ZK_HOSTS="192.168.229.129:2181" --net=host sheepkiller/kafka-manager
- firewall-cmd --add-port=9000/tcp
http://192.168.229.1:9001
点对点模式
Kafka 是支持消费者群组的,也就是说 Kafka 中会有一个或者多个消费者,如果一个生产者生产的消息由一个消费者进行消费的话,那么这种模式就是点对点模式
发布订阅模式
如果一个生产者或者多个生产者产生的消息能够被多个消费者同时消费的情况,这样的消息队列成为发布订阅模式的消息队列
资料
http://www.tracefact.net/tech/058.html
https://www.cnblogs.com/cxuanBlog/p/11949238.html
https://www.jianshu.com/p/e642793cd5de
消息队列之--Kafak的更多相关文章
- 消息队列之 Kafka
转 https://www.jianshu.com/p/2c4caed49343 消息队列之 Kafka 预流 2018.01.15 16:27* 字数 3533 阅读 1114评论 0喜欢 12 K ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- 消息队列 Kafka 的基本知识及 .NET Core 客户端
前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息 ...
- .net 分布式架构之业务消息队列
开源QQ群: .net 开源基础服务 238543768 开源地址: http://git.oschina.net/chejiangyi/Dyd.BusinessMQ ## 业务消息队列 ##业务消 ...
- 【原创经验分享】WCF之消息队列
最近都在鼓捣这个WCF,因为看到说WCF比WebService功能要强大许多,另外也看了一些公司的招聘信息,貌似一些中.高级的程序员招聘,都有提及到WCF这一块,所以,自己也关心关心一下,虽然目前工作 ...
- Java消息队列--ActiveMq 实战
1.下载安装ActiveMQ ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux.Un ...
- Java消息队列--JMS概述
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...
- Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇
目前业界流行的分布式消息队列系统(或者可以叫做消息中间件)种类繁多,比如,基于Erlang的RabbitMQ.基于Java的ActiveMQ/Apache Kafka.基于C/C++的ZeroMQ等等 ...
随机推荐
- C#程序员经常用到的10个实用代码片段 - 操作系统
原文地址 如果你是一个C#程序员,那么本文介绍的10个C#常用代码片段一定会给你带来帮助,从底层的资源操作,到上层的UI应用,这些代码也许能给你的开发节省不少时间.以下是原文: 1 读取操作系统和C ...
- LPVOID 指针 转 int
1 DWORD WINAPI SockUDP::RecvThread(LPVOID lparam){ //套接字 正确:int sock= *(int*)(lparam); 错误:int ...
- 交换机安全学习笔记 第二章 MAC地址泛洪攻击
本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为.H3C设备的相关配置.华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02. H3C配置参 ...
- Book - 《Python编程:从入门到实践》
Tag:看<Python编程:从入门到实践>学习笔记 数据类型相关: 字符串str 改变大小写(临时):title首字母大写,upper全大写,lower全小写 删除空白(临时):rstr ...
- 【Linux 网络编程】MTU(Maximum Transmission Uint)
(1)以太网和IEEE802.3对数据帧的长度都是有限制的,其最大分别是1500和1492字节,成为MTU. (2)如果IP层有一个数据要传输,而且数据的长度比链路层的MTU要大,那么IP层就要进行分 ...
- []转帖]linux 上修改了nginx.conf 怎么重新加载配置文件生效
linux 上修改了nginx.conf 怎么重新加载配置文件生效 https://www.cnblogs.com/zhuyeshen/ 步骤如下先利用/usr/local/nginx/sbin/ng ...
- Luogu P4602 [CTSC2018]混合果汁
题目 把果汁按美味度降序排序,以单价为下标插入主席树,记录每个节点的\(sum\)果汁升数和\(val\)果汁总价. 每次询问二分最小美味度,查询美味度大于等于\(mid\)的总体积为\(L\)的最低 ...
- Thread 线程 1
Thread 常用方法: String getName() 返回该线程的名称. void setName(String name) 改变线程名称,使之与参数 name 相同. int getPrior ...
- 在Vue项目中加载krpano全景图
在Vue-cli项目中做krpano全景图编辑器的时候,由于js插件的路径是动态的,做的过程中遇到了加载不到资源的难题,在网上搜索了好久也没找到合适的办法,最后想到了可能是JS加载的问题,于是解决了问 ...
- 用C#控制台编写 推箱子之类的 坐标移动----之二维坐标
//首先用枚举 列出方向 上,下,左,右(枚举的最后一位数后不用符号 否则会报错) public enum dro { up = 1, down = ...