当前位置: 首页 > 文档资料 > 技术文档 Cookbook >

AMQ Streams

优质
小牛编辑
113浏览
2023-12-01

功能概述

AMQ Streams 基于 Strimzi(http://strimzi.io/) 社区产品,核心组件包括 Apache Kafka 和 Apache Zookeeper,是一个可大规模扩展,分布式和高性能的数据流平台。详细组件如下所示:

amq streams 478987 0918 01.png

名称功能

Zookeeper

高可靠分布式协调器

Kafka Broker

可靠消息传输代理,负责将生产者创建的消息传输给消费者

Kafka Connect

流数据小工具,将 Kafka Broker 和其它系统通过 Connector 插件连接

Kafka Consumer and Producer APIs

Java API,用来向 Kafka Broker 发送消息或从 Kafka Broker 接收消息

Kafka Streams API

开发流处理应用

本地运行

安装与部署

1. 创建 kafka 用户和组
# groupadd kafka
# useradd -g kafka kafka
# passwd kafka
2. 创建 /opt/kafka 路径
# mkdir /opt/kafka
3. 解压安装
# unzip amq-streams-1.0.0-bin.zip -d /opt/kafka
4. 设定 /opt/kafka 组属关系
# chown -R kafka:kafka /opt/kafka/
5. 创建 /var/lib/zookeeper,并设定组属关系
# mkdir /var/lib/zookeeper
# chown -R kafka:kafka /var/lib/zookeeper/
6. 创建 /var/lib/kafka,并设定组属关系
# mkdir /var/lib/kafka
# chown -R kafka:kafka /var/lib/kafka/

单节点运行

1. 切换到 kafka 用户
# su - kafka
2. 编辑 /opt/kafka/config/zookeeper.properties,设定 dataDir
dataDir=/var/lib/zookeeper
3. 启动 Zookeeper
$ /opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
4. 确保 Zookeeper 运行
$ jcmd | grep zookeeper
12433 org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/kafka/config/zookeeper.properties
5. 编辑 /opt/kafka/config/server.properties,设定 log.dirs
log.dirs=/var/lib/kafka
6. 启动 Kafka
$ /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
7. 确保 Kafka 运行
$ jcmd | grep kafka
12778 kafka.Kafka /opt/kafka/config/server.properties
8. 向 my-topic 发送消息
$ /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic
Hello World Kafka
9. 从 my-topic 接收消息
$ /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning
Hllo World Kafka
10. 停止 Kafka
$ /opt/kafka/bin/kafka-server-stop.sh
$ /opt/kafka/bin/zookeeper-server-stop.sh

OpenShift 上部署 Kafka

集群部署

1. 下载安装脚本
# wget https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.8.2/strimzi-0.8.2.zip
2. 创建工程
# oc new-project streams
3. 部署 Cluster Operator
# sed -i 's/namespace: .*/namespace: streams/' install/cluster-operator/*RoleBinding*.yaml
# oc apply -f install/cluster-operator
# oc apply -f examples/templates/cluster-operator
4. 部署 Kafka cluster
# oc apply -f examples/kafka/kafka-persistent.yaml
5. 部署 Kafka Connect
# oc apply -f examples/kafka-connect/kafka-connect.yaml
6. 验证 Kafka cluster 启动状况
# oc get pods
NAME                                          READY     STATUS    RESTARTS   AGE
my-cluster-entity-operator-54457f4548-x8mvq   3/3       Running   1          32m
my-cluster-kafka-0                            2/2       Running   1          34m
my-cluster-kafka-1                            2/2       Running   1          34m
my-cluster-kafka-2                            2/2       Running   1          34m
my-cluster-zookeeper-0                        2/2       Running   0          36m
my-cluster-zookeeper-1                        2/2       Running   0          36m
my-cluster-zookeeper-2                        2/2       Running   0          36m
my-connect-cluster-connect-64669fb655-6dpzb   1/1       Running   0          22m
strimzi-cluster-operator-696658566-bfmbf      1/1       Running   0          43m

部署测试

1. 发送消息到 my-topic
# oc run kafka-producer -ti --image=registry.access.redhat.com/amqstreams-1/amqstreams10-kafka-openshift:1.0.0 --rm=true --restart=Never -- bin/kafka-console-producer.sh --broker-list my-cluster-kafka-bootstrap:9092 --topic my-topic
>Hello World
>AMQ STREAMS
>Kafka
2. 从 my-topic 接收消息
# oc run kafka-consumer -ti --image=registry.access.redhat.com/amqstreams-1/amqstreams10-kafka-openshift:1.0.0 --rm=true --restart=Never -- bin/kafka-console-consumer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 --topic my-topic --from-beginning
Hello World
AMQ STREAMS
Kafka
**
**

最后更新:

类似资料

  • 认证(Authentication) 身份验证是大多数现有应用程序的重要组成部分。有许多不同的方法、策略和方法来处理用户授权。我们最终决定使用什幺取决于特定的应用程序要求,并且与它们的需求密切相关。 passport 是目前最流行的 node.js 认证库,为社区所熟知,并相继应用于许多生产应用中。将此工具与 Nest 框架集成起来非常简单。为了演示,我们将设置 passport-http-bea

  • 下面是一个 XML 技术的列表。 XHTML (可扩展 HTML) 更严格更纯净的基于 XML 的 HTML 版本。 XML DOM (XML 文档对象模型) 访问和操作 XML 的标准文档模型。 XSL (可扩展样式表语言) XSL 包含三个部分: XSLT (XSL 转换) - 把 XML 转换为其他格式,比如 HTML XSL-FO (XSL 格式化对象)- 用于格式化 XML 文档的语言

  • AJAX不能独立工作。 它与其他技术结合使用来创建交互式网页。 JavaScript 松散类型的脚本语言。 在页面中发生事件时调用JavaScript函数。 整个AJAX操作的胶水。 DOM 用于访问和操作结构化文档的API。 表示XML和HTML文档的结构。 CSS 允许将演示样式与内容明确分开,并可通过JavaScript以编程方式进行更改 XMLHttpRequest 与服务器执行异步交互的

  • 可能因为是线下面,再加上公司内部信息流通比较快,一天内的上下午就面完了! 我个人还是对公司的业务非常感兴趣的!所以提前看过好几篇公司业务相关的文章 面试官人很nice,我俩基本上是我一答他一回应,所以我在这里重点挑自己印象里答得不好的地方写写。 技术面 堆和栈的区别?堆是怎么样的数据结构? 数组和链表的具体区别呢?优缺点?存取效率? 原型链?可以先答概念,在用Object和Array来解释各个指向

  • 用例是黑盒测试的功能测试,用于根据系统的使用从系统的开始到结束识别测试用例。通过使用这种技术,测试团队创建了一个测试场景,可以从头到尾根据每个功能的功能运行整个软件。 在这种情况下,有一个测试人员代表用户逐个使用系统的功能。在这种情况下,有一个演员代表用户使用软件系统的功能。 这描述了软件应用程序的逐步功能,可以通过一个例子来理解,假设存在在线资金转移的软件应用程序。转账的各个步骤如下: 用户登录

  • 主要内容:动态分区的缺点,需要分页动态分区的缺点 动态分区的主要缺点是外部碎片。 尽管这可以通过压缩来消除,但正如我们前面所讨论的那样,压缩使得系统效率低下。 我们需要找一种替代机制,以更优化的方式加载分区中的进程。 让我们讨论一个称为分页的动态灵活机制。 需要分页 让我们考虑一个大小为2 MB的进程P1和分为三个分区的主内存。 在三个分区中,两个分区是每个大小为1 MB的空洞。 P1需要在主存中加载2 MB空间。 我们有两个1M