生产环境中间件服务集群搭建-zk-activeMQ-kafka-reids-nacos
环境:
系统:centos7.9
工作目录:/home
安装包位置:/home/op/tools
1.系统初始化
安装依赖环境
yum -y install net-tools vim screen telnet vim gcc gcc-c++
修改主机名,为另外两台添加hosts文件
[root@mq01 conf]# hostnamectl set-hostname mq01
[root@mq01 conf]# vim /etc/hosts
192.10.30.11 mq01
192.10.30.12 mq02
192.10.30.13 mq03
上传所有服务器安装包
[root@mq01 tools]# ll /home/op/tools/
总用量 459144
-rw-r--r-- 1 root root 53675823 1月 5 16:18 apache-activemq-5.13.2-bin.tar.gz
-rw-r--r-- 1 root root 9890010 1月 5 16:18 apache-zookeeper-3.5.10-bin.tar.gz
-rw-r--r-- 1 root root 179476803 1月 5 16:19 java1-8.tar.gz
-rw-r--r-- 1 root root 107000763 1月 5 16:21 kafka_2.12-3.5.0.tgz
-rw-r--r-- 1 root root 117593603 1月 5 16:19 nacos-server-2.0.3.tar.gz
-rw-r--r-- 1 root root 2508776 1月 5 16:18 redis-6.2.7.tar.gz
进行解压二进制包
tar -zxf apache-activemq-5.13.2-bin.tar.gz
tar -zxf apache-zookeeper-3.5.10-bin.tar.gz
tar -zxf java1-8.tar.gz
tar -zxf nacos-server-2.0.3.tar.gz
tar -zxf redis-6.2.7.tar.gz
注意:redis源码包进行编译
tar -zxf redis-6.2.7.tar.gz
cd redis-6.2.7
make
make install PREFIX=/wespace/redis-7001
make install PREFIX=/wespace/redis-7002
进行将所有服务文件进行重命名到工作目录下
mv java /wespace/java
mv apache-activemq-5.13.2 /wespace/activeMQ
mv apache-zookeeper-3.5.10-bin /wespace/zookeeper
mv nacos /wespace/nacos
mv kafka_2.12-3.5.0 /wespace/kafka
2.准备Java环境
配置java环境变量
[root@mq01 wespace]# vi /etc/profile
export JAVA_HOME=/wespace/java/jdk1.8.0_111
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
export PATH=$JAVA_HOME/bin:$PATH
[root@mq01 wespace]# source /etc/profile
测试[root@mq01 wespace]# java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
3.部署zookeeper集群
1.拷贝其他服务zookeeper配置文件进行修改
[root@mq01 conf]# pwd
/wespace/zookeeper/conf
[root@mq01 conf]# ll
总用量 16
-rw-r--r-- 1 1000 1000 535 5月 19 2022 configuration.xsl
-rw-r--r-- 1 1000 1000 2712 5月 19 2022 log4j.properties
-rw-r--r-- 1 root root 224 1月 5 17:51 zoo.cfg
-rw-r--r-- 1 1000 1000 922 5月 19 2022 zoo_sample.cfg
2.根据本机情况修改zoo.cfg,和创建data,log目录,myid文件
注意:myid是唯一的,第一台为1,第二台2
[root@mq01 zookeeper]# mkdir log data
[root@mq01 conf]# vi zoo.cfg
dataDir=/wespace/zookeeper/data
dataLogDir=/wespace/zookeeper/log
tickTime=2000
initLimit=10
syncLimit=5
clientPort=12181
server.1=192.10.30.11:12888:13888
server.2=192.10.30.12:12888:13888
server.3=192.10.30.13:12888:13888
[root@mq01 zookeeper]# echo '1' > data/myid
3.将当前配置文件进行拷贝到两台服务器
注意:在另外两台修服务上修改myid
scp -Cr zoo.cfg root@192.10.30.12:/wespace/zookeeper/conf/
scp -Cr zoo.cfg root@192.10.30.13:/wespace/zookeeper/conf/
echo '2' > data/myid
echo '3' > data/myid
4.启动zookeeper
/wespace/zookeeper/bin/zkServer.sh start
ps -ef |grep zoo
lsof -i:12888
4.部署activeMQ集群
1.拷贝配置文件
[root@mq01 conf]# ll -rt
总用量 76
-rw-r--r-- 1 root users 665 3月 2 2016 client.ts
-rw-r--r-- 1 root users 1357 3月 2 2016 client.ks
-rw-r--r-- 1 root users 665 3月 2 2016 broker.ts
-rw-r--r-- 1 root users 592 3月 2 2016 broker-localhost.cert
-rw-r--r-- 1 root users 1370 3月 2 2016 broker.ks
-rw-r--r-- 1 root users 961 3月 2 2016 users.properties
-rw-r--r-- 1 root users 1016 3月 2 2016 login.config
-rw-r--r-- 1 root users 1207 3月 2 2016 logging.properties
-rw-r--r-- 1 root users 3084 3月 2 2016 log4j.properties
-rw-r--r-- 1 root users 964 3月 2 2016 jmx.password
-rw-r--r-- 1 root users 965 3月 2 2016 jmx.access
-rw-r--r-- 1 root users 1087 3月 2 2016 jetty-realm.properties #账号配置文件
-rw-r--r-- 1 root users 962 3月 2 2016 groups.properties
-rw-r--r-- 1 root users 1121 3月 2 2016 credentials.properties
-rw-r--r-- 1 root users 1172 3月 2 2016 credentials-enc.properties
-rw-r--r-- 1 root users 6117 1月 5 18:06 activemq.xml #activeMQ集群zk配置文件
-rw-r--r-- 1 root users 8183 1月 5 18:09 jetty.xml #activeMQ配置文件
2.修改jetty.xml配置文件[root@mq01 conf]# vim jetty.xml
114 <property name="host" value="192.10.30.11"/> #修改为当前主机IP地址
115 <property name="port" value="8161"/> #修改端口号
3.修改activemq.xml配置文件
[root@mq01 conf]# vim activemq.xml
40 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" schedulerSupport="true"> #schedulerSupport="true"启动延迟队列
81 <persistenceAdapter>
82 <replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:61617" zkAddress="192.10.30.11:12181,192.10.30.12:12181,192.10.30.13:12181" hostname="mq01" zkPath="/home/data/activeMQ/leveldb-stores"/>
83 </persistenceAdapter>
#修改zookeeper集群地址和端口 修改集群存放配置文件位置 zkAddress zkPath
4.修改jetty-realm.properties配置文件
[root@mq01 conf]# vim jetty-realm.properties
admin: admin, admin
user: user, user
5.将三个配置文件进行拷贝到另外两台服务器中
scp -Cr jetty-realm.properties root@192.10.30.12:/wespace/activeMQ/conf/
scp -Cr jetty-realm.properties root@192.10.30.13:/wespace/activeMQ/conf/
scp -Cr activemq.xml root@192.10.30.12:/wespace/activeMQ/conf
scp -Cr activemq.xml root@192.10.30.13:/wespace/activeMQ/conf
scp -Cr jetty.xml root@192.10.30.12:/wespace/activeMQ/conf
scp -Cr jetty.xml root@192.10.30.13:/wespace/activeMQ/conf
注意:修改配置文件主机IP
6.开启activemq
/wespace/activeMQ/bin/activemq start
ps -ef | grep active
5.部署kafka集群
1.修改kafka配置文件
[root@mq01 config]# pwd
/wespace/kafka/config
[root@mq01 config]# vim server.properties
broker.id=1 #唯一ID
port=9092
host.name=localhost
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/wespace/kafka/log
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.retention.check.interval.ms=300000
zookeeper.connect=192.10.30.11:12181,192.10.30.12:12181,192.10.30.13:12181 #zookeeper集群IP
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.10.30.11:9092 #本机IP地址
2.将配置文件进行拷贝到另外两台服务器
#注意拷贝到其他主机后
1.修改ID
2.确认端口号
3.确认zkIP和端口
4.访问本机IP和端口
3.进行守护进程启动/home/kapai/kafka/bin/kafka-server-start.sh -daemon /home/kapai/kafka/config/server.properties
6.部署nacos集群
1.修改nacos主配置文件
[root@mq01 conf]# pwd
/wespace/nacos/conf
[root@mq01 conf]# vi application.properties19 server.servlet.contextPath=/nacos20 ### Default web server port:21 server.port=8848 #端口号35 ### Count of DB:36 db.num=1 #指定数据库个数42 db.url.0=jdbc:mysql://192.30.10.99:3316/nacos?characterEncoding=utf8&connect Timeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC43 db.user.0=nacos #连接数据库用户名44 db.password.0=2023Nacos!!! #数据库连接密码
2.修改集群文件
cp cluster.conf.example cluster.conf
[root@mq01 conf]# vim cluster.conf
192.10.30.11:8848
192.10.30.12:8848
192.10.30.13:8848
3.进行将配置文件拷贝到另外两台服务器
4.启动nacos服务
/wespace/nacos/bin/startup.sh
7.部署redis群集
环境:三台服务器 两个实例
端口:7001 7002
1.创建工作目录
cd /wespace/redis-7001/
mkdir conf data log
cd /wespace/redis-7002/
mkdir conf data log
2.编写redis配置文件
cd /wepsace/redis-7001/etc/
vim redis-7001.conf
daemonize yes
pidfile /wespace/redis-7001/redis-7001.pid
port 7001
bind 192.10.30.11
#requirepass 123456 设置redis密码
timeout 0
tcp-keepalive 0
loglevel notice
logfile /wespace/redis-7001/log/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /wespace/redis-7001/data
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
maxclients 65535
slowlog-log-slower-than 10000
slowlog-max-len 128
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
maxmemory 20480mb
maxmemory-policy allkeys-lru
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 15000
cluster-require-full-coverage yes
cluster-migration-barrier 1
3.配置redis-7002
cp redis-7001.conf ../../redis-7002/conf/
cd ../../redis-7002/conf
mv redis-7001.conf redis-7002.conf
vim redis-7002.conf
注意:修改配置文件与文件不同的字段如pid,log,目录
4.进行将两个配置文件进行拷贝到另外两台服务器上
#注意
#1.修改IP
#2.端口
#3.日志pid等存放路径
5.启动redis,进行确认
/wespace/redis-7001/bin/redis-server /wespace/redis-7001/conf/redis-7001.conf
/wespace/redis-7002/bin/redis-server /wespace/redis-7002/conf/redis-7002.conf
netstat -anptl | grep redis
ps -ef |grep redis
6.自动搭建集群模式
注意:3.以下低版本redis需要手动进行部署集群或者安装第三方工具进行部署
/wespace/redis-7001/bin/redis-cli --cluster create --cluster-replicas 1 192.10.30.11:7001 192.10.30.12:7001 192.10.30.13:7001 192.10.30.11:7002 192.10.30.12:7002 192.10.30.13:7002
7.检测集群redis状态
/wespace/redis-7001/bin/redis-cli --cluster check 192.10.30.11:7001 #更换IP和端口
8.连接redis增加key测试cluster分布,和查看cluster的关系和状态
#注意:/wespace/redis-7001/bin/redis-cli -h 192.10.30.11 -p 7001 #这种方式只适用于主从redis或者单机redis等情况,否则连接添加key测试会报错
#192.10.30.11:7001> set k1 v1
#(error) MOVED 12706 192.10.30.13:7001
/wespace/redis-7001/bin/redis-cli -h 192.10.30.11 -p 7001 -c #集群连接方式 -c
set k1 v1 #添加key
keys * #查看所有key
cluster nodes #查看集群状态
相关文章:
生产环境中间件服务集群搭建-zk-activeMQ-kafka-reids-nacos
环境: 系统:centos7.9 工作目录:/home 安装包位置:/home/op/tools 1.系统初始化 安装依赖环境 yum -y install net-tools vim screen telnet vim gcc gcc-c 修改主机名,为另外两台添加hosts文件 [rootmq01 conf…...

Smart Light Random Memory Sprays Retinex 传统图像增强 SLRMSR
文章目录 前言1、Smart Light Random Memory Sprays Retinex概况2、Smart Light Random Memory Sprays Retinex的实现2.1、SLRMSR算法的伪代码2.2、初始化记忆喷雾(CreateInitialMemorySpray)2.3、更新记忆喷雾 (UpdateMemorySpray)2.4、计算颜色校正因子…...
Oracle数据库实例概述
Oracle数据库实例是由内存结构(SGA和PGA)及后台进程这两大部分组成。 内存结构 SGA (System Global Area):这是数据库实例的共享内存区域,所有与该实例连接的进程都可以访问。SGA包含多个内存结构,例如: 数…...

Odoo17免费开源ERP开发技巧:如何在表单视图中调用JS类
文/Odoo亚太金牌服务开源智造 老杨 在Odoo最新V17新版中,其突出功能之一是能够构建个性化视图,允许用户以独特的方式与数据互动。本文深入探讨了如何使用 JavaScript 类来呈现表单视图来创建自定义视图。通过学习本教程,你将获得关于开发Odo…...

[RCTF2015]EasySQL ---不会编程的崽
今天也是sql注入的新类型---二次注入。不得不说花样真的多哦。 既然真的是sql注入了。那就不测试其他地方了。现在注册进去看一下界面 单纯的回显了名字。源代码里发现user.php。 可以修改密码?二次注入应该就在用户名这里了。因为修改密码时,用户名会被…...

Memcached-分布式内存对象缓存系统
目录 一、NoSQL 介绍 二、Memcached 1、Memcached 介绍 1.1 Memcached 概念 1.2 Memcached 特性 1.3 Memcached 和 Redis 区别 1.4 Memcached 工作机制 1.4.1 内存分配机制 1.4.2 懒惰期 Lazy Expiration 1.4.3 LRU(最近最少使用算法) 1.4.4…...
bash: sqlplus: command not found 问题解决方法
一、问题描述 在Linux中Oracle安装成功后,首次启动使用时,出现 sqlplus 命令不识别的问题,现象如下: $ sqlplus / as sysdba bash: sqlplus: command not found...二、问题分析 查看环境变量是否正确配置: $ vim .ba…...
大模型-Prompt
一、prompt是什么 在大型语言模型集成中,"prompt" 是指您向模型提供的输入文本或指令,以引导模型生成特定类型的响应。这个 prompt 可以是一个问题、一段描述、一个任务说明,甚至是一部分对话历史记录等。通过设计和优化 prompt&a…...
Python实战:SQLAlchemy ORM使用教程
一、SQLAlchemy ORM使用教程 SQLAlchemy是一个流行的Python SQL工具包和对象关系映射(ORM)框架,它为开发人员提供了一种高效、灵活的方式来与数据库进行交互。在本篇博客中,我们将深入探讨SQLAlchemy ORM的核心知识,并…...
能不能绕过c去学c++?
目前做工程开发,基本都是c/c混着用的,c/c是同源的,c/是在c的基础上发展起来的,它们之间有些联系和区别: 区别: 1.可用库不同 c基本是系统底层语言,一般系统底层开发用c(例如&…...
Python 小爬虫:爬取 bing 每日壁纸设为桌面壁纸
请求 URLJSON 版示例代码代码片段注意点headers 中的 User-Agent响应头中的 Content-Type终端通过代理API从 bing.com 找Bing 每日壁纸设置为桌面壁纸代码设定计划任务自动执行 python 脚本请求 URL 通过模仿必应(Bing)自己的 AJAX 调用方式获得请求 URL。 JSON 格式:...

利用textarea和white-space实现最简单的文章编辑器 支持缩进和换行
当你遇到一个非常基础的文章发布和展示的需求,只需要保留换行和空格缩进,你是否会犹豫要使用富文本编辑器?实际上这个用原生的标签两步就能搞定! 1.直接用textarea当编辑器 textarea本身就可以保存空格和换行符,示例如…...

总结mac下解决matplotlib中文显示问题的几种方法
一、前言: 使⽤matplotlib画图时,由于matplotlib默认没有中⽂,显⽰中文时会出现空⽩⼩⽅块。 二、方法: 2.1 matplotlib中使用SimHei字体 1)进入终端后查看matplotlib的字体路径: $ python >>&g…...

探索区块链世界:从加密货币到去中心化应用
相信提到区块链,很多人会想到比特币这样的加密货币,但实际上,区块链技术远不止于此,它正在深刻地改变我们的生活和商业。 首先,让我们来简单了解一下什么是区块链。区块链是一种分布式数据库技术,它通过将…...

GitLab/Github从头开始配置秘钥
1、下载git安装包 CNPM Binaries Mirrorhttps://registry.npmmirror.com/binary.html?pathgit-for-windows/ 拉到页面最底部选择 点进文件夹下载32位或者64位的版本,我的是64位就选择64的版本进行安装 2、傻瓜式安装 3、在相应的文件夹右键选择 UserName为你的用…...
uni.getlocation h5获取定位失败后,阻塞问题
uni.getlocation 在H5中,如果用户未开gps定位或者gps定位信号较差时,定位会失败。这种情况uni.getlocation也不会出现报错,也不会有后续执行,导致代码阻塞,体验极差。 解决方案1:拿不到定位或者定位失败这个…...

Flutter 运行 flutter doctor 命令长时间未响应
由于 Flutter 运行 flutter doctor 命令,会从 pub(https://pub.dev/ 类似于 Node.js 的 npm) 上进行资源的下载,如果没有配置国内镜像,可能会由于其服务器在国外导致资源下载慢或者下载不下来,所以出现了运行 flutter doctor 命令…...

【数据挖掘】练习2:数据管理2
课后作业2:数据管理2 一:上机实验2 # 编写函数stat,要求该函数同时计算均值,最大值,最小值,标准差,峰度和偏度。 install.packages("timeDate") library(timeDate) stat <- func…...

【iOS】——Blocks
文章目录 前言一、Blocks概要1.什么是Blocks 二、Block模式1.block语法2.block类型变量3.截获自动变量值4._Block修饰符5.截获的自动变量 三、Blocks的实现1.Block的实质2.截获自动变量值3._Block说明符4.Block存储域 前言 一、Blocks概要 1.什么是Blocks Blocks是C语言的扩…...

体验OceanBase OBD V2.5.0 组件内扩容和组件变更
背景 OBD 是OceanBase的命令行部署工具,在 obd V2.5.0 版本之前,其主要功能主要是部署各类组件,例如 oceanbase-ce,obproxy-ce,obagent 等。然而,它并不支持组件的变更操作以及组件内部的扩缩容调整。具体来说: 1、若…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...

Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...