SpringBoot实战电商项目mall(40k+star)地址:github.com/macrozheng/…

摘要

Kafka是当下非常盛行的音讯httpwatch中间件,据官网泄漏,已有http署理成千上万的公司在运用它。最近实践了一波Kafka,的确很好很健壮。今日咱们来从三个方面学习下KaJavafka:Kafaka在Linux下的设备,Kafkagithub下载可视化东西,Kafka和SpringBhttpclientoot结合运用。期望咱们看完后能快速入门Kafkhttp 302a,把握这数据库系统工程师个盛行的音讯中间件!

Kafka简介

Kafka是由LinkedIn公司开发的一款开源分布式音讯流途径,由Scala和Java编写。首要作用是为处理实时数据供给一个统一、高吞吐、低推迟的途径,其本质是依据发布订阅方式的音讯引擎系统。

Kajava初学fka具有以下特性:

  • 高吞吐、低推http署理延:Kafka收发音讯非常http协议快,运用集群处理音讯推迟可低至2ms。
  • 高扩展性数据库有哪几种:Kafka能够弹性地扩展和缩短,能够扩展到上千个broker,数十万个partition,每天处理数万亿条音讯。
  • 永久存http署理储:Kafka能够将数据安全地存储在分布式的,持久的java模拟器,容错的数据库群会合。
  • 高可用性:Kafka在可用区上能够数据库系统的中心是有效地数据库软件扩展群集,某个节点宕机,集群照样能够正常作业。

Kafka设备

咱们将选用Linux下的设备方式,设备环境为CentOS 7.6github永久回家地址。此处没有选用Docker来设备安顿,个人感https和http的差异觉直接设备更简略(首要是官方没供给Docker镜像)!

  • 首要咱们需求下载Kafka的设备包,下载地址:mirrors.bfsu.edu.cn/apache/kafk…

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 下载完毕后将Kafka解压到指定目录:
cd /mydata/kafka/
tar -xzf kafka_2.13-2.8.0.tgz
  • 解压完毕后进入到解压目录:
cd kafka_2.13-2.8.0
  • 虽然有音讯称Kafka行可视化是什么意思将移除Zookeeper,但是在Kafka最新版java难学吗本中没有移除,所以建议Kafka前仍是需求先建议Zookeeper;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 建议Zookeeper服务,服务将数据库软件作业在2181端口;
# 后台作业服可视化是什么意思务,并把日志输出到当时文件夹下的zookeeper-out.file文件中java初学
nohup bin/zookeeper-server-可视化start.sh config/zookeeper.properties > zookeeper-out.file 2>&1 &
  • 由于现在Kafka是安顿在Linjava面试题ux服务器上的,外网假定想要拜访,需求修改Ka可视化音乐fjavascriptkhttp 404a的装备文件config/server.properties,修改下Kafka的监听数据库规划地址,否则会无法联接;
#############################github怎样下载文件 Socket Server Settingsgithub永久回家地址 #########GitHub####################

# The address the socket server listens on. It willhttp署理 gejava开发t the valu可视化办理e returned from
# java.net.I数据库系统的中心是netAddress.getChttp 404anonijava开发calHostName() if not configured.
#   FO可视化图表RMAT:
#     listeners = listener_name://host_namhttps和http的差异e:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://192.168.5.78:http 3029092
  • 最终建议Kafka服务,服务将作业在9092端口。
# 后台作业服务,并把日志输出到当时文件夹下的kafka-out.file文件中
nohup bin/kafka-server-start.sh co可视化大屏nfig/server.properties > kafka-ohttps和http的差异ut.file 2>&a可视化编程mp;1 &

Kafka指令行操作

接下来咱们运用指令行来操作下Kafka,了解下Kafka的运用。

  • 首要创建一个叫consoleTopic的Topic;
bin/kafka-topics.sh --creat可视化图表e --topic可视化音乐 consoleTopic数据库 --bootstrap-server 192.168.5.78:9092
  • 接下来查看Topi可视化是什么意思c;
bin/kafka-topics.sh --describe --topic consoleTopic --bootstrap-server 192.168.5.78:9092
  • 会闪现如下Topic信息;
Topic: consoleTopic	TopicId: tJmxUQ8QRJGlhCSf2ojuGw	PartitionCount: 1	Repli数据库办理系统cationFactor: 1	Configs: segment.bytes=1073741824
Topic: conjava面试题soleTopic	Partition: 0	Leader: 0	Replicas: 0	Isr: 0
  • 向Topic中发送音讯GitHub
bin/kafka-console-producer.sh --topic consoleTopic --bootstrap-server 192.168.5.7github下载8:9092
  • 直接在指令行中输入信息即可发送;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 从头翻开一个窗HTTP口,经过如下指数据库系统工程师令能够从Topic中获取音讯:
bin/httpclientkafka-console-consumer.sh --topic consoleTopic --from-beginn可视化图表ing --bootstrap-server 192.168.可视化数据图表5.78:9092

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

Kafka可视化

运用指令行操作KafHTTPka的确有点费事,接下来咱们试试可视化东西kafka-eagle

设备JDK

假定你运用的是CentOS的话,默许没javaee有设备完整版的JDK,需求自行设备!

  • 下载JDK 8,下载地址:mirrors.tugithub中文官网网页na.tsinghua.edu.cn可视化分析/AdoptOpenJD…

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 下载完毕后将JDK解压到指定目录;
cd /mydata/java
tar -zxvf OpenJDK8U-jdk_x64_linux数据库办理系统_可视化是什么意思xxx.tar.gz
mv OpenJDK8U-jdk_x64_linux_xxx.tar.gz jdk1.8
  • /etc/profile文件中增加环境变量JAV数据库有哪几种A_HOME
vi /etc/profile
# 在profile文件中增加
export JAVA_HOME=/mydata/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
# 使修改后的profile文件收效
. /etc/profile

设备kafka-eagle

  • 下载kafka-eagle的设备包,下载地址:git数据库规划hub.com/smartloli/k…

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 下载完毕后将kafka-eagle解压到指可视化大屏定目录;
cd /mydata/kafka/
tar -zxvf kafka-ea可视化编程gle-web-2.0.5-bin.tar.gz
  • /etc/profile文件中增加环境变量KE_HOME
vi /etc/profile
# 在profile文件中增加
export KE_HOME=/mydata/kafka/khttp 500afka-eagle可视化音乐-web-2.0.5
export PATH=$PATH:$KE_HOME/bin
# 使修改后github官网的profile文件收效
. /etc/profile
  • 设备MySQL并增加数据httpclientkekafka-eagle之后会用到它;

  • 修改装备文件$KE_HOME/conf/system-config.properties,首要是修改Zookeehttpwatchper的装备和数据库装备,注释掉sqlite装备java模拟器,改为运用MySQL;

######################################
# multi zookeeper & kafka clusthttp://www.baidu.comer list
######################################
kafka.eagle.zk.cluster.alihttpclientas=clustehttps和http的差异r1
chttpclientluster1.zk.list=localhost:2181

######Java###########################github敞开私库#####
# kafka eagle webhttp://192.168.1.1登录ui port
##################################github官网####
kafka.eagle.webui.port=8048

######################################
# kafka sqlite数据库原理及使用 jdbc driver addressjava模拟器
####################################github官网##
# kafka.eagle.driver=org.sqlite.JDBC
# kafka.eagle.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db
# kafka.eagle.username=ro可视化东西ot
# kafka.eagle.passwordhttp协议=www.kafka-eaggithub永久回家地址le.org

######################################
# kafka mysql jdbc driver address
########javaee##########java面试题##数据库系统的中心是##################
kafka.eagle.driver=com.mysql.cgithub官网j.jdbgithub直播渠道永久回家c.Driver
kafka.eagithub怎样下载文件gle.url=jdbc:mysql://localhost:3306/ke?useUnigithub中文社区code=true&characterEncoding=UTF-8&zejava工作培训班roDateTimeBehgithub中文社区avior=convertToNull
kafka.eagle.username=root
kafka.eagle.password=root
  • 运用如下指令建议kafka-eagle
$KE_HOME/bin/ke.sh start
  • 指令履行完毕后会闪现如下信息,但并不代表服务现已建议成数据库规划功,还需求等候一会;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 再介绍几个有用的kafka-eagle指令:
# 停止服务
$KE_HOME/bin/ke.sh stop
# 重启服务
$KE_HOME/bin/ke.数据库原理sh restart
# 查看服务作业情况
$KE_HOME/bi可视化图表n/ke.sh status
# 查看服务情况
$KE_HOME/bin可视化大屏/ke.sh stats
# 动态查看服务输出日志
tail -f $KE_HOME/logs/ke_console.out
  • 建议成功用够直接拜访,输入账号密码admin:123456,拜访地址:http://192.168.5.78:8048/

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 登录成功后能够拜访到Dashboard,界面仍是很棒的!

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

可视化东西运用

  • 之前咱们运用指令行创HTTP立了Topic,这儿能够java工作培训班直接经过界面来创建;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 咱们还能够直接经过kafka-eagle来发送音讯;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 咱们能够经过指令行来消费http协议Topic中的音讯;
bin/kafkagithub敞开私库-console-congithub敞开私库sumer.sh --topic testTopic --from-beginning --bootstrajavascriptp-se可视化图表rver 192.168.5.78:9092
  • 控制台获取到信息闪现如下;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 还有一个很有意思的功用叫KSQL,能够经过SQL句子来查询Topic中的音讯;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 可视化东西自然少不了监控,假定你想敞开kafka-eagle对Kafka的监控功用的话,需求修改Kafka的建议脚本,露出JMX的端口;
viGitHub kgithub中文官网网页afka-server-start.sh
# 露出JMX端口
if [ "x$KAFKA_HEAP_OPTS" = "x" ]数据库原理; then
export KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX:+github下载UseG1GC -XX:MaxGC数据库原理PauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
export JMX_PORT="9999"
fi
  • 来看下监控图表界面;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 还有一个很骚气的监控大屏功用;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 还有Zookeeper的指令行功用,总之功用很全,很健壮!

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

SpringBoot整合Kafka

在SpringBoot中操作Kafka也是非常简略的,HTTP比方Kafka的http 302音讯方式很简略,没有队列,只要Topic。

  • 首要在运用的poJavam.xml中增加Spring Kafka依靠;
<!--Spring整合Kafka-->
&l可视化编程t;dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactIGitHubd>
&数据库lt;version>2.7.1</version>
</dependency>
  • 修改运用装备文件application.yml,装备Kafka服务地址及consumer的group-id
server:
port: 8http://www.baidu.com088
spring:
kafka:
bootstrap-servers: '192.168.5.78:9092'
consumer:
group-Javaid: "bootGroup"可视化图表
  • 创建一个生产者,用于向Kafka的Topic中发送音讯;
/**
* Kafka音讯生可视化数据图表产者
* Created by macr数据库原理及使用o on 2021/5/19.
*/
@Component
pgithub怎样下载文件ublic class KafkaProducejava开发r {
@Autowired
private KafkaTemplate kafkaTemplate;
public void send(String message){
kafkaTemplate.send("bootToJavapic",message);
}
}
  • 创建一个顾客,用于从Kafka中获取音讯并消费;
/**
* Kafka音讯顾客
* Created by macro on 2021/5/19.
*/可视化是什么意思
@Slf4j
@Component
pu数据库原理blic class KafkaConsumer {
@KafkaListener(topics = "bootTop可视化是什么意思ic")
public void processMessage(Stringgithub怎样下载文件 content) {
log.info("consumer prhttp协议ohttp://www.baidu.comcessMessage : {}",content);
}
}可视化音乐
  • 创建一个发送音讯的接口,调用生产者去发送音讯;
/**
* Kafka功用查验
* Created by macro on 2021/5/19.
*/
@Api(tags = "KafkaController", description = "Kafka功用查验")
@Controller
@RequestMapping("/kafka")
pub可视化lic class KafkaController {
@Autowired
private Kafkgithub中文官网网页aProducer kafkaProgithub官网ducer;
@ApiOperation("发送音讯")
@RequestM可视化数据图表apping(GitHubvalue = "/sendMessage", method = Requ可视化是什么意思estMethod.GET)
@ResponseBody
public Commo数据库系统概论第五版课后答案nResult sendMessage(@RequestParam String message) {
kafkaProducer.send(message);
return CommonResult.success(null);
}
}
  • 直接在Shttps和http的差异wagger中调用接口进行查验;

吊炸天的 Kafka 图形化东西 Eagle,有必要引荐给你!

  • 项目控制台会输出如下信息,表明音讯现已被接收并消费可视化音乐掉了。
2021-05-19 16:59:21.016  INFO 2344 --- [可视化是什么意思ntainer#0-0-C-1] c.m.mall.tijava开发ny.component.KafkaConsumer    : consumer processMessage : Spring Boot message!

总结

经过http://192.168.1.1登录本文的一波实践,咱们根柢就能入门Kafka了。设备、可视化东西、结合SpringBoot,这些根柢都是和开发者相关的操作,也是学习Kafka的必经之路。

参考资料

  • Kafka官方文档:kafka.apa可视化办理che.org/quickstart

  • kafka-eagle官方文档:www.kafka-eagle.org/articles/do…

  • Kafka相关概念:/post/684490…

项目源码地址

githubgithub直播渠道永久回家.com/macrozheng/…

本文 GitHub github.com/macrozheng/… 现已录入,欢迎咱们Star!