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解压到指定目录:
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;
- 建议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
- 直接在指令行中输入信息即可发送;
- 从头翻开一个窗HTTP口,经过如下指数据库系统工程师令能够从Topic中获取音讯:
bin/httpclientkafka-console-consumer.sh --topic consoleTopic --from-beginn可视化图表ing --bootstrap-server 192.168.可视化数据图表5.78:9092
Kafka可视化
运用指令行操作KafHTTPka的确有点费事,接下来咱们试试可视化东西
kafka-eagle
。
设备JDK
假定你运用的是CentOS的话,默许没javaee有设备完整版的JDK,需求自行设备!
- 下载JDK 8,下载地址:mirrors.tugithub中文官网网页na.tsinghua.edu.cn可视化分析/AdoptOpenJD…
- 下载完毕后将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
解压到指可视化大屏定目录;
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并增加数据httpclient库
ke
,kafka-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
指令:
# 停止服务
$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/
- 登录成功后能够拜访到Dashboard,界面仍是很棒的!
可视化东西运用
- 之前咱们运用指令行创HTTP立了Topic,这儿能够java工作培训班直接经过界面来创建;
- 咱们还能够直接经过
kafka-eagle
来发送音讯;
- 咱们能够经过指令行来消费http协议Topic中的音讯;
bin/kafkagithub敞开私库-console-congithub敞开私库sumer.sh --topic testTopic --from-beginning --bootstrajavascriptp-se可视化图表rver 192.168.5.78:9092
- 控制台获取到信息闪现如下;
- 还有一个很有意思的功用叫
KSQL
,能够经过SQL句子来查询Topic中的音讯;
- 可视化东西自然少不了监控,假定你想敞开
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
- 来看下监控图表界面;
- 还有一个很骚气的监控大屏功用;
- 还有Zookeeper的指令行功用,总之功用很全,很健壮!
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中调用接口进行查验;
- 项目控制台会输出如下信息,表明音讯现已被接收并消费可视化音乐掉了。
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!