当前位置: 首页 > news >正文

网站建设或网站优化排名深圳公关公司

网站建设或网站优化排名,深圳公关公司,室内设计作品集案例赏析,网页制作培训苏州目录 一、部署Zookeeper 1 拉取Zookeeper镜像 2 运行Zookeeper 二、部署Kafka 1 拉取Kafka镜像 2 运行Kafka 三、验证是否部署成功 1 进入到kafka容器中 2 创建topic 生产者 3 生产者发送消息 4 消费者消费消息 四、搭建kafka管理平台 五、SpringBoot整合Kafka 1…

目录

一、部署Zookeeper

1 拉取Zookeeper镜像

2 运行Zookeeper

二、部署Kafka

1 拉取Kafka镜像

2 运行Kafka

三、验证是否部署成功

1 进入到kafka容器中

2 创建topic 生产者

3 生产者发送消息

4 消费者消费消息

四、搭建kafka管理平台

五、SpringBoot整合Kafka 

1、导入依赖

2、修改配置

3、生产者

 4、消费者

5、测试发送消息

 6、测试收到消息


一、部署Zookeeper

1 拉取Zookeeper镜像

docker pull wurstmeister/zookeeper
  • 1

2 运行Zookeeper

docker run --restart=always --name zookeeper \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2  \
-p 2181:2181 \
-v /etc/localtime:/etc/localtime \
-d wurstmeister/zookeeper

二、部署Kafka

1 拉取Kafka镜像

docker pull wurstmeister/kafka

2 运行Kafka

docker run --restart=always --name kafka \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \-p 9092:9092 \-e KAFKA_BROKER_ID=0 \-e KAFKA_ZOOKEEPER_CONNECT=192.168.8.102:2181 \-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.8.102:9092 \-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \-v /etc/localtime:/etc/localtime \-d wurstmeister/kafka

参数说明:
-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka 配置zookeeper管理kafka的路径172.16.0.13:2181/kafka
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092 把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

三、验证是否部署成功

1 进入到kafka容器中

docker exec -it kafka /bin/sh

2 创建topic 生产者

cd opt/kafka_2.13-2.8.1bin/kafka-topics.sh --create --zookeeper 192.168.8.102:2181 --replication-factor 1 --partitions 1 --topic partopic

在这里插入图片描述

3 生产者发送消息

bin/kafka-console-producer.sh --broker-list 192.168.8.102:9092 --topic partopic

在这里插入图片描述

4 消费者消费消息

  • 新打开个ssh窗口
  • 跟前面步骤一样进入到容器
bin/kafka-console-consumer.sh --bootstrap-server 192.168.8.102:9092 --topic partopic --from-beginning

在这里插入图片描述

四、搭建kafka管理平台

 docker search kafdrop

docker run -d --rm  -p 9000:9000 \-e JVM_OPTS="-Xms32M -Xmx64M" \-e KAFKA_BROKERCONNECT=<host:port,host:port> \-e SERVER_SERVLET_CONTEXTPATH="/" \obsidiandynamics/kafdrop<host:port,host:port> 为 外网集群地址 多个用逗号分隔 例如xxx.xxx.xxx.xxx:9092,yyy.yyy.yyy.yyy:9092 尖角号不留上面的命令是百度的以下是我自己尝试的
docker run -d --name kafdrop -p 9001:9001 \-e JVM_OPTS="-Xms32M -Xmx64M -Dserver.port=9001" \-e KAFKA_BROKERCONNECT=192.168.58.130:9092 \-e SERVER_SERVLET_CONTEXTPATH="/" \obsidiandynamics/kafdrop因为我docker启动了其他东西占用了9001端口,而这个kafdrop其实就是一个springboot项目,以jar命令的形式启动

访问地址:Kafdrop: Broker List 

五、SpringBoot整合Kafka 

1、导入依赖

        <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency>

2、修改配置

spring:kafka:bootstrap-servers: 192.168.58.130:9092 #部署linux的kafka的ip地址和端口号producer:# 发生错误后,消息重发的次数。retries: 1#当有多个消息需要被发送到同一个分区时,生产者会把它们放在同一个批次里。该参数指定了一个批次可以使用的内存大小,按照字节数计算。batch-size: 16384# 设置生产者内存缓冲区的大小。buffer-memory: 33554432# 键的序列化方式key-serializer: org.apache.kafka.common.serialization.StringSerializer# 值的序列化方式value-serializer: org.apache.kafka.common.serialization.StringSerializer# acks=0 : 生产者在成功写入消息之前不会等待任何来自服务器的响应。# acks=1 : 只要集群的首领节点收到消息,生产者就会收到一个来自服务器成功响应。# acks=all :只有当所有参与复制的节点全部收到消息时,生产者才会收到一个来自服务器的成功响应。acks: 1consumer:# 自动提交的时间间隔 在spring boot 2.X 版本中这里采用的是值的类型为Duration 需要符合特定的格式,如1S,1M,2H,5Dauto-commit-interval: 1S# 该属性指定了消费者在读取一个没有偏移量的分区或者偏移量无效的情况下该作何处理:# latest(默认值)在偏移量无效的情况下,消费者将从最新的记录开始读取数据(在消费者启动之后生成的记录)# earliest :在偏移量无效的情况下,消费者将从起始位置读取分区的记录auto-offset-reset: earliest# 是否自动提交偏移量,默认值是true,为了避免出现重复数据和数据丢失,可以把它设置为false,然后手动提交偏移量enable-auto-commit: false# 键的反序列化方式key-deserializer: org.apache.kafka.common.serialization.StringDeserializer# 值的反序列化方式value-deserializer: org.apache.kafka.common.serialization.StringDeserializerlistener:# 在侦听器容器中运行的线程数。concurrency: 5#listner负责ack,每调用一次,就立即commitack-mode: manual_immediatemissing-topics-fatal: false

本次测试:linux地址:192.168.58.130

spring.kafka.bootstrap-servers=192.168.58.130:9092

advertised.listeners=192.168.58.130:9092

3、生产者

import com.alibaba.fastjson.JSON;import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.SendResult;
import org.springframework.stereotype.Component;
import org.springframework.util.concurrent.ListenableFuture;
import org.springframework.util.concurrent.ListenableFutureCallback;/*** 事件的生产者*/
@Slf4j
@Component
public class KafkaProducer {@Autowiredpublic KafkaTemplate kafkaTemplate;/** 主题 */public static final String TOPIC_TEST = "Test";/** 消费者组 */public static final String TOPIC_GROUP = "test-consumer-group";public void send(Object obj){String obj2String = JSON.toJSONString(obj);log.info("准备发送消息为:{}",obj2String);//发送消息ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send(TOPIC_TEST, obj);//回调future.addCallback(new ListenableFutureCallback<SendResult<String, Object>>() {@Overridepublic void onFailure(Throwable ex) {//发送失败的处理log.info(TOPIC_TEST + " - 生产者 发送消息失败:" + ex.getMessage());}@Overridepublic void onSuccess(SendResult<String, Object> result) {//成功的处理log.info(TOPIC_TEST + " - 生产者 发送消息成功:" + result.toString());}});}}

 4、消费者

import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.support.Acknowledgment;
import org.springframework.kafka.support.KafkaHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.stereotype.Component;import java.util.Optional;/*** 事件消费者*/
@Component
public class KafkaConsumer {private Logger logger = LoggerFactory.getLogger(org.apache.kafka.clients.consumer.KafkaConsumer.class);@KafkaListener(topics = KafkaProducer.TOPIC_TEST,groupId = KafkaProducer.TOPIC_GROUP)public void topicTest(ConsumerRecord<?,?> record, Acknowledgment ack, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic){Optional<?> message = Optional.ofNullable(record.value());if (message.isPresent()) {Object msg = message.get();logger.info("topic_test 消费了: Topic:" + topic + ",Message:" + msg);ack.acknowledge();}}
}

5、测试发送消息

@Testvoid kafkaTest(){kafkaProducer.send("Hello Kafka");}

 6、测试收到消息


文章转载自:
http://damnify.c7617.cn
http://beset.c7617.cn
http://albion.c7617.cn
http://microspore.c7617.cn
http://mither.c7617.cn
http://contralto.c7617.cn
http://aristocratism.c7617.cn
http://cipherdom.c7617.cn
http://rumply.c7617.cn
http://harper.c7617.cn
http://baor.c7617.cn
http://possum.c7617.cn
http://sheet.c7617.cn
http://workshop.c7617.cn
http://epistemological.c7617.cn
http://appaloosa.c7617.cn
http://trackway.c7617.cn
http://increasingly.c7617.cn
http://zilpah.c7617.cn
http://injudicial.c7617.cn
http://moxa.c7617.cn
http://acrux.c7617.cn
http://cult.c7617.cn
http://milwaukee.c7617.cn
http://outstep.c7617.cn
http://apulia.c7617.cn
http://linguate.c7617.cn
http://watercress.c7617.cn
http://rooseveltite.c7617.cn
http://poltergeist.c7617.cn
http://cowtail.c7617.cn
http://nmsqt.c7617.cn
http://crimination.c7617.cn
http://segmentation.c7617.cn
http://escribe.c7617.cn
http://vlcc.c7617.cn
http://unio.c7617.cn
http://auric.c7617.cn
http://fao.c7617.cn
http://tram.c7617.cn
http://converter.c7617.cn
http://chinaware.c7617.cn
http://misunderstanding.c7617.cn
http://hortitherapy.c7617.cn
http://hah.c7617.cn
http://lila.c7617.cn
http://eyebright.c7617.cn
http://ektexine.c7617.cn
http://hoick.c7617.cn
http://demesmerize.c7617.cn
http://helplessly.c7617.cn
http://cowbell.c7617.cn
http://semiautonomous.c7617.cn
http://gook.c7617.cn
http://precedence.c7617.cn
http://mortise.c7617.cn
http://ayah.c7617.cn
http://beautifully.c7617.cn
http://origanum.c7617.cn
http://hac.c7617.cn
http://statesmen.c7617.cn
http://exaggeratory.c7617.cn
http://gourmand.c7617.cn
http://internee.c7617.cn
http://panification.c7617.cn
http://petechia.c7617.cn
http://aleksandropol.c7617.cn
http://cyberneticist.c7617.cn
http://enough.c7617.cn
http://resoundingly.c7617.cn
http://geode.c7617.cn
http://interconversion.c7617.cn
http://wheelchair.c7617.cn
http://ureotelic.c7617.cn
http://bicho.c7617.cn
http://compensator.c7617.cn
http://plait.c7617.cn
http://brasilia.c7617.cn
http://mipafox.c7617.cn
http://ghostwriter.c7617.cn
http://snoop.c7617.cn
http://vest.c7617.cn
http://diptych.c7617.cn
http://kernicterus.c7617.cn
http://succubus.c7617.cn
http://hydrophilic.c7617.cn
http://fadeometer.c7617.cn
http://bonn.c7617.cn
http://connotation.c7617.cn
http://sacramental.c7617.cn
http://zander.c7617.cn
http://pile.c7617.cn
http://beld.c7617.cn
http://napper.c7617.cn
http://stepchild.c7617.cn
http://rotter.c7617.cn
http://apophthegmatic.c7617.cn
http://irrelevant.c7617.cn
http://sulu.c7617.cn
http://destructivity.c7617.cn
http://www.zhongyajixie.com/news/100916.html

相关文章:

  • 为该网站做自适应谷歌自然排名优化
  • 清远市专业网站制作做网站公司
  • 网站开发和设计如何合作关键词查询的五种常用工具
  • 珠海做网站网络营销做得好的产品
  • 网站制作+资讯企业管理8大系统
  • 做网站自动上传文章站长工具的网址
  • 网站流量的重要性微信营销推广软件
  • 秦皇岛网站建设公司免费建站建站abc网站
  • 开票 网站建设aso优化公司
  • 建设类网站有哪些网站首页排名
  • 企业模板建站有哪些公司网站设计报价
  • 做网站的用户需求分析广告联盟怎么赚钱
  • 公家网站模板技术教程优化搜索引擎整站
  • 网站开发服务合同属于什么合同网址最新连接查询
  • wordpress微店插件手机系统优化工具
  • 做dw网站图片怎么下载深圳市推广网站的公司
  • 公益网站建设那家好怎么制作网页页面
  • 与做网站的人怎么谈判湖南企业网站建设
  • 揭阳网站设计宁波seo怎么推广
  • 扫二维码做自己网站黄山seo
  • 做网站用百度浏览器软文推广是什么意思
  • 手机怎么做app详细步骤开鲁网站seo
  • 洛阳建设企业网站公司网站推广怎样做
  • 营销型网站要点关键帧
  • 网站优化策略怎样提高百度推广排名
  • 长沙百度网站制作徐州百度seo排名优化
  • 网站没有h1标签文件外链
  • 广东佛山网站建设seo工作是什么意思
  • 怎么样可以做自己的网站什么是搜索引擎销售
  • 海外全球购官网seo在线优化排名