商城微服务项目组件搭建(五)——Kafka、Tomcat等安装部署
mhr18 2025-07-10 19:14 5 浏览 0 评论
1、本文属于mini商城系列文档的第0章,由于篇幅原因,这篇文章拆成了6部分,本文属于第5部分
2、mini商城项目详细文档及代码见CSDN:
https://blog.csdn.net/Eclipse_2019/article/details/132141211
3、本文主要讲解Kafka、Apache Druid、Sentinel、Tomcat的安装部署以及在ideal中启动vue项目的流程
2.16 Kafka安装
137服务器
关于Kafka安装,我们可以参考
http://kafka.apache.org/documentation/#quickstart
为了更方便安装Kafka,我们换种方式采用Docker容器安装,安装如下:
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.8.137:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.8.137:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime --restart always wurstmeister/kafka
参数说明:
KAFKA_BROKER_ID:当前Kafka的唯一ID
KAFKA_ZOOKEEPER_CONNECT:当前Kafka使用的Zookeeper配置信息
KAFKA_ADVERTISED_LISTENERS:对外发布(暴露)的监听器,对外发布监听端口、地址KAFKA_LISTENERS:监听器,告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。
注意,安装前务必先安装好Zookeeper,由于上一章我们已经安装了Zookeeper,所以这里不再演示Zookeeper安装流程。
安装好后,我们可以验证一下Kafka是否可用,验证kafka主要使用内部集成的命令实队列创建、现消息发送、消息消费。
2.16.1 创建队列
我们首先进入到kafka容器的 kafka_2.13-2.7.0/bin/ 目录下,该目录下有很多可执行的脚本,用于队列创建、发送消息、消费消息等,操作如下:
docker exec -it kafka /bin/bash
cd /opt/kafka_2.13-2.7.0/bin/
脚本如下:
创建队列mslogs:
./kafka-topics.sh --create --bootstrap-server 192.168.8.137:9092 --replication-factor 1 --partitions 1 --topic msitemslog
参数说明:
使用kafka-topics.sh创建队列
--create:执行创建一个新的队列操作
--bootstrap-server:需要链接的kafka配置,必填
--replication-factor 1:设置分区的副本数量
--topic mslogs:队列的名字叫mslogs
2.16.2 发送消息
在kafka容器中执行消息发送(接着上面的步骤执行):
./kafka-console-producer.sh --broker-list 192.168.8.137:9092 --topic mslogs
参数说明:
使用kafka-console-producer.sh实现向kafka的mslogs队列发送消息
--broker-list:指定将消息发给指定的Kafka服务的链接列表配置
--topic mslogs:指定要发送消息的队列名字
此时回车进入下面命令行操作界面:
我们可以发送这样的消息:
{"accesstime":"2020-12-10 16:30:30","uri":"/item/1.html","ip":"119.123.100.2"}
2.16.3 消息消费
我们执行脚本消费mslogs的数据,命令如下:
./kafka-console-consumer.sh --bootstrap-server 192.168.8.137:9092 --topic mslogs --from-beginning
参数说明:
使用kafka-console-consumer.sh从kafka中消费mslogs队列的数据
--bootstrap-server:从指定的kafka中读取消息
--topic mslogs:读取队列的名字
--from-beginning:从最开始的数据读取,也就是读取所有数据的意思
消费信息如下:
2.16.4 Lua操作Kafka
Lua操作Kafka主要实现MQ消息发送和MQ消息消费,我们项目中主要实现发送消息,此时我们需要写一个Lua库或者借助其他Lua库,写一个Lua库成本比较大,可以借助github上开源的lua库
https://github.com/doujiang24/lua-resty-kafka。
下载安装包:
在下发的资料/Kafka目录下已经下载好了该库文件lua-resty-kafka-master,将该库文件上传至/usr/local/openresty,并解压unzip
lua-resty-kafka-master.zip -d/usr/local/openresty。
nginx要想使用到该lua库,需要在nginx.conf中配置当前lua库文件路径,在http中配置如下:
lua_package_path "/usr/local/openresty/lua-resty-kafka-master/lib/?.lua;;";
2.17 Apache Druid安装
137服务器
安装包下载地址:
http://druid.apache.org/downloads.html资料/ApacheDruid目录下已经提供安装包
首先下载下来该安装包,并上传到服务器指定目录下/usr/local/eclipse2019,并解压改文件:
tar -xf apache-druid-0.22.0-bin.tar.gz
我们这里为了方便操作,启动单机版即可,但单机版启动会自动加载Zookeeper,集群版可以自由配置Zookeeper外部节点,但单机版不行。我们前面Kafka也用到了Zookeeper,为了让2个Zookeeper不冲突,我们需要将要安装的Apache Druid的Zookeeper端口换掉,把2181换成3181,在 apache-druid-0.20.0 目录下执行如下2行命令即可:
sed -i "s/2181/3181/g" `grep 2181 -rl ./`
sed -i "s/druid.zk.service.host=localhost/druid.zk.service.host=localhost:3181/g" `grep druid.zk.service.host=localhost -rl ./`
说明:sed -i "s/原字符串/新字符串/g" grep 原字符串 -rl 所在目录
Druid的时区和国内时区不一致,会比我们的少8个小时,我们需要修改配置文件,批量将时间+8,代码如下:
sed -i "s/Duser.timezone=UTC/Duser.timezone=UTC+8/g" `grep Duser.timezone=UTC -rl ./`
接下来进入到
/usr/local/eclipse2019/apache-druid-0.20.0/bin目录下启动Apache Druid即可:
./start-micro-quickstart
启动后,等待20秒我们可以访问Apache Druid的控制台
http://192.168.8.137:8888/效果如下:
注意:如果需要后台运行,可以直接执行nohup ./start-micro-quickstart &
如果ApacheDruid 跟Seata-server部署在同一台服务器则会出现8091端口冲突,只需要将
/usr/local/eclipse2019/apache-druid/conf/druid/single-server/micro-quickstart/middleManager/runtime.properties文件中的druid.plaintextPort=8091改成8891,同时,还有修改
/usr/local/eclipse2019/apache-druid/bin目录下的verify-default-ports中的8091为8891。
注意,如果centos7中没有安装jdk的话,则需要先安转
1、查看系统的位数:
getconf LONG_BIT
2、下载jdk
Oracle官网下载地址:
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html3、解压:
切换目录到 cd /usr/local/eclipse2019
创建目录 mkdir jvm
使用Xshell和Xftp将安装包传输到虚拟机的
/usr/local/eclipse2019/jvm目录下切换到
/usr/local/eclipse2019/jvm目录下 cd
/usr/local/eclipse2019/jvmtar -zxvf jdk-8u271-linux-x64.tar.gz
改名:mv jdk1.8.0_271/ java
删除压缩包:rm -f
jdk-8u212-linux-x64.tar.gz4、编辑环境变量文件:vim /etc/profile
将下面的内容粘贴到文件末尾:
JAVA_HOME=/usr/local/eclipse2019/java
JRE_HOME=/usr/local/eclipse2019/java/jre
CLASSPATH=.:$JAVA_HOME/lib:/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
使配置生效:source /etc/profile
5、查看是否成功:java -version
2.18 Sentinel控制台安装
137或139服务器
docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard
安装好了后,我们可以直接访问http://192.168.8.137:8858访问控制台,默认用户名和密码都是 sentinel
2.19 Tomcat安装
1、拉去镜像文件
docker pull tomcat
2、启动tomcat
docker run -d -p 8080:8080 tomcat
3、访问http://ip:8080/
4、如果访问报404的错误,是因为版本太高,访问的资源再webapps.dist里面
- 首先进入到tomcat容器中
docker exec -it 容器id /bin/bash
- 删除webapps文件
rm -rf webapps
- 重命名
mv webapps.dist webapps
5、再访问就成功了
上传文件到服务器
1、rz 命令上传zip文件到服务器
2、把文件放到tomcat容器下的webapps文件夹下
docker cp /root/vueshop.zip de807e6bf422:/usr/local/tomcat/webapps
3、解压文件夹
unzip vueshop.zip
4、删除压缩包
rm -f vueshop.zip
2.20 ideal启动vue项目
用idea打开vue项目 有以下几个步骤 1)给idea安装vue的插件 2)给vue项目安装依赖 3)添加自启动便捷方式
1)给idea安装vue的插件(已有vue插件的,可跳过此步骤) file–>settings–>plugins
2)给vue项目安装依赖 点击idea,下方的Terminal,输入npm install,给项目安装依赖
3)添加自启动便捷方式 点击小锤子旁边的Edit Configurations,会弹出一个弹窗
配置选项,package.json选择的是项目自带的package.json,Scipts点击右侧下拉,选中命令,一般启动是dev或start等等,这个一般来源于项目自带的package.json设置的启动命令。build一般是打包项目的。设置完毕点击apply–>ok
这样就能看到小锤子旁边有运行的了,点击运行就行了。
在重新build一下node-sass就可以了,输入指令:npm rebuild node-sass即可。
相关推荐
- Dubai's AI Boom Lures Global Tech as Emirate Reinvents Itself as Middle East's Silicon Gateway
-
AI-generatedimageAsianFin--Dubaiisrapidlytransformingitselffromadesertoilhubintoaglob...
- OpenAI Releases o3-pro, Cuts o3 Prices by 80% as Deal with Google Cloud Reported to Make for Compute Needs
-
TMTPOST--OpenAIisescalatingthepricewarinlargelanguagemodel(LLM)whileseekingpartnershi...
- 黄仁勋说AI Agent才是未来!但究竟有些啥影响?
-
,抓住风口(iOS用户请用电脑端打开小程序)本期要点:详解2025年大热点你好,我是王煜全,这里是王煜全要闻评论。最近,有个词被各个科技大佬反复提及——AIAgent,智能体。黄仁勋在CES展的发布...
- 商城微服务项目组件搭建(五)——Kafka、Tomcat等安装部署
-
1、本文属于mini商城系列文档的第0章,由于篇幅原因,这篇文章拆成了6部分,本文属于第5部分2、mini商城项目详细文档及代码见CSDN:https://blog.csdn.net/Eclipse_...
- Python+Appium环境搭建与自动化教程
-
以下是保姆级教程,手把手教你搭建Python+Appium环境并实现简单的APP自动化测试:一、环境搭建(Windows系统)1.安装Python访问Python官网下载最新版(建议...
- 零配置入门:用VSCode写Java代码的正确姿
-
一、环境准备:安装JDK,让电脑“听懂”Java目标:安装Java开发工具包(JDK),配置环境变量下载JDKJava程序需要JDK(JavaDevelopmentKit)才能运行和编译。以下是两...
- Mycat的搭建以及配置与启动(mycat2)
-
1、首先开启服务器相关端口firewall-cmd--permanent--add-port=9066/tcpfirewall-cmd--permanent--add-port=80...
- kubernetes 部署mysql应用(k8s mysql部署)
-
这边仅用于测试环境,一般生产环境mysql不建议使用容器部署。这里假设安装mysql版本为mysql8.0.33一、创建MySQL配置(ConfigMap)#mysql-config.yaml...
- Spring Data Jpa 介绍和详细入门案例搭建
-
1.SpringDataJPA的概念在介绍SpringDataJPA的时候,我们首先认识下Hibernate。Hibernate是数据访问解决技术的绝对霸主,使用O/R映射(Object-Re...
- 量子点格棋上线!“天衍”邀您执子入局
-
你是否能在策略上战胜量子智能?这不仅是一场博弈更是一次量子智力的较量——量子点格棋正式上线!试试你能否赢下这场量子智局!游戏玩法详解一笔一画间的策略博弈游戏目标:封闭格子、争夺领地点格棋的基本目标是利...
- 美国将与阿联酋合作建立海外最大的人工智能数据中心
-
当地时间5月15日,美国白宫宣布与阿联酋合作建立人工智能数据中心园区,据称这是美国以外最大的人工智能园区。阿布扎比政府支持的阿联酋公司G42及多家美国公司将在阿布扎比合作建造容量为5GW的数据中心,占...
- 盘后股价大涨近8%!甲骨文的业绩及指引超预期?
-
近期,美股的AI概念股迎来了一波上升行情,微软(MSFT.US)频创新高,英伟达(NVDA.US)、台积电(TSM.US)、博通(AVGO.US)、甲骨文(ORCL.US)等多股亦出现显著上涨。而从基...
- 甲骨文预计新财年云基础设施营收将涨超70%,盘后一度涨8% | 财报见闻
-
甲骨文(Oracle)周三盘后公布财报显示,该公司第四财季业绩超预期,虽然云基建略微逊于预期,但管理层预计2026财年云基础设施营收预计将增长超过70%,同时资本支出继上年猛增三倍后,新财年将继续增至...
- Springboot数据访问(整合MongoDB)
-
SpringBoot整合MongoDB基本概念MongoDB与我们之前熟知的关系型数据库(MySQL、Oracle)不同,MongoDB是一个文档数据库,它具有所需的可伸缩性和灵活性,以及所需的查询和...
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
-
概述 Jmeter最早是为了测试Tomcat的前身JServ的执行效率而诞生的。到目前为止,它的最新版本是5.3,其测试能力也不再仅仅只局限于对于Web服务器的测试,而是涵盖了数据库、JM...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Dubai's AI Boom Lures Global Tech as Emirate Reinvents Itself as Middle East's Silicon Gateway
- OpenAI Releases o3-pro, Cuts o3 Prices by 80% as Deal with Google Cloud Reported to Make for Compute Needs
- 黄仁勋说AI Agent才是未来!但究竟有些啥影响?
- 商城微服务项目组件搭建(五)——Kafka、Tomcat等安装部署
- Python+Appium环境搭建与自动化教程
- 零配置入门:用VSCode写Java代码的正确姿
- Mycat的搭建以及配置与启动(mycat2)
- kubernetes 部署mysql应用(k8s mysql部署)
- Spring Data Jpa 介绍和详细入门案例搭建
- 量子点格棋上线!“天衍”邀您执子入局
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)