SpringCloud学习笔记,环境部署相关笔记
关于笔记
学习笔记
以前做笔记word、md、脑图、txt文本都用过,基本都是保存在自己的电脑里,随着更换电脑,回去翻找笔记开始开始困难起来了。从现在开始在这里记录笔记啦,还有一些开发,部署过程中遇到的小问题等等都会写下来,一方面便于自己以后回看。另一方面,如果能帮到同样遇到此问题的朋友就更好啦,笔记里要是存在有什么问题也欢迎大家指正。随着学习会持续更新的
学习教程
我是在B站上看的SpringCloud框架开发教程(SpringCloudAlibaba微服务分布式架构丨Spring Cloud) 这个教程,这里的笔记大多也是跟随教程进度写的。
相关资源
这里也有我在练习时候所用到的软件和安装包等资源
Vm虚拟机、liunx CentOS7精简版等安装包
链接:https://pan.baidu.com/s/1YmxW0uxUFims-Zfl26NIHA
提取码:4321
环境配置
Linux环境配置
我用的是Vm虚拟机、liunx CentOS7精简版,很多常用的工具都要下载
vim指令
如果没有此指令的话 可用下面指令进行安装
yum -y install vim
当因为一些小意外出现交换文件,可使用
vim -r
指令查看都有哪些重复的文件,同时也会显示文件存放位置,
之后可在根目录使用下面指令打开交换文件存放地点
cd /var/tmp/
使用 rm指令 删除相应的即可
如果实在找不到交换文件可用以下指令 进行查询即可
find -name 文件名
Java环境
解压jdk到我创建的jkd18文件夹中
先创建文件夹
mkdir jdk18
之后进入此文件夹
cd jdk18
开始解压文件
tar -zxvf
其中zxvf含义分别如下
z: gzip 压缩格式
x: extract 解压
v: verbose 详细信息
f: file(file=archieve) 文件
文件结构
指令:
tar -zxvf ../jdk-8u161-linux-x64.tar.gz
即可完成解压
在完成解压后,要进行环境配置。
1.打开文件进行配置
vi /etc/profile
在最后追加以下内容后 保存
export JAVA_HOME=/root/yy/jdk18/jdk1.8.0_161
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
第一句话要改成 自己的路径
刷新环境使其生效
source /etc/profile
最后测试一下java是否配置成功
java -version
zookeeper 配置 (和配置jdk基本一样)
1.打开文件进行配置
vi /etc/profile
在最后追加以下内容后 保存
ZOOKEEPER_HOME=/root/yy/zookeeper/zookeeper-3.4.12
PATH=$PATH:$ZOOKEEPER_HOME/bin
export PATH ZOOKEEPER_HOME PATH
第一句话改成 自己的路径
刷新环境使其生效
source /etc/profile
完成配置后 开始测试
启动zooeeper
回到根目录使用下面命令进行启动
/root/yy/zookeeper/zookeeper-3.4.12/bin/zkServer.sh start
连接
/root/yy/zookeeper/zookeeper-3.4.12/bin/zkCli.sh
增删改查
增create
查get
改set
删delete
开启自启动
回到根目录
vim /usr/lib/systemd/system/zookeeper.service
追加以下内容,路径要根据自己的进行更改
[Unit]
Description=zookeeper
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/root/yy /zookeeper/zookeeper-3.4.12/bin/zkServer.sh start
ExecReload=/root/yy /zookeeper/zookeeper-3.4.12/bin/zkServer.sh restart
ExecStop=/root/yy /zookeeper/zookeeper-3.4.12/bin/zkServer.sh stop
[Install]
WantedBy=multi-user.target
使其生效
systemctl daemon-reload
改变文件的权限,使其可读可写
chmod 777 /usr/lib/systemd/system/zookeeper.service
开机自动启动zookeeper
systemctl enable /usr/lib/systemd/system/zookeeper.service
或
systemctl enable /usr/lib/systemd/system/zookeeper
查看是否开机启动
systemctl is-enabled zookeeper.service
zookeeper集群配置
开发环境
简单记录下我的环境,我采用的是两台电脑A、B
两台电脑在同一个网络中,在B电脑安装的VM虚拟机,使用linux系统按前面的方法进行配置,之后克隆出两台一样的。
虚拟机采用桥接模式,这样可以使其拥有不同的ip
三台虚拟机分别为 C1、C2、C3
A电脑进行开发和项目部署
B电脑部署zookeeper集群
SecureCRT 8.5工具可以使用ssh连接虚拟机中的linux系统,方便进行各种配置。很好用推荐,云盘里有存
开始配置 创建myid服务标识
这个myid服务标识是用来做区分的,所以myid不可以重复。
在虚拟机C1上输入
vim /root/yy/zookeeper/zookeeper-3.4.12/dataDir/myid
并且写入 1 作为zookeeper的服务标识,使用more指令可查看是否成功写入。
more /root/yy/zookeeper/zookeeper-3.4.12/dataDir/myid
以此类推,C2、C3虚拟机上也是使用同样指令,但区别是他们的myid分别是2、3
修改zoo.cfg,配置集群节点
打开zoo.cfg
vim /root/yy/zookeeper/zookeeper-3.4.12/conf/zoo.cfg
追加几个服务器的信息
server.1= 172.20.88.232:2888:3888
server.2= 172.20.88.233:2888:3888
server.3= 172.20.88.234:2888:3888
服务器 ip地址 2888:数据同步端口 3888:心跳检测端口
此处若是在一个机器上部署三个服务的话,ip会变成相同的,但端口切记不可以重复
关于zoo.cfg文件 有五个重要的属性
1.tickTime CS通信心跳时间
单位是毫秒,系统默认是2000毫秒
2.initLimit
集群中的follower服务器(F从属服务器)与leader服务器(L主服务器)之间初始连接时能容忍的最多心跳数
3.syncLimit
集群中follower服务器(F从属服务器)与leader服务器(L主服务器)之间的请求和答应最多能容忍的心跳数
4.dataDir
该属性对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
5.clientPort
客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问,这个端口默认是2181
标题启动服务
/root/yy/zookeeper/zookeeper-3.4.12/bin/zkServer.sh start
C1、C2、C3都要执行这条指令来启动
查看服务器状态
/root/yy/zookeeper/zookeeper-3.4.12/bin/zkServer.sh status
zkServer.sh start 启动
zkServer.sh restart (重启)
zkServer.sh status (查看状态)
zkServer.sh stop (关闭)
zkServer.sh start-foreground (以打印日志方式启动)
潜在的问题
Error contacting service. It is probably not running 解决方案
我在这里出现了问题,让我耗费了不少时间
linux防火墙
我的C1防火墙是关闭的,但C2和C3是开启的,以至于他C1总是为主服务器,一度干扰了我的思路。
问题表现为,使用 zkServer.sh status时显示如下错误
借助zkServer.sh start-foreground 打印日志后发现总是出现“没有到主机的路由”
这个问题,就这这个问题继续寻找下去,最终检查防火墙,才发现我的C1确实是关闭了,但C2和C3一直开启防火墙。
同时我还使用了netstat -tan 对端口进行监测,发现和其他两台连接明显不正常(第一张是没关闭防火墙前,第二张是成功后的)
关于centos7防火墙
查看防火墙状态
systemctl status firewalld.service
(上图代表关闭)
关闭防火墙
systemctl stop firewalld.service
永久关闭
systemctl disable firewalld.service
关于zookeeper的小记录
服务节点是临时节点
当关闭自己的服务后,zookeeper服务器一段时间接收不到心跳后,就会进行清除。而再次重新连接后"id":“0dc02fc2-c5ca-4e09-8672-751a5c9f1fd1” ID会发生变化,代表和上次并不是同一个了。
帮助到我的帖子
https://www.cnblogs.com/zwcry/p/10272506.html
这个帖子写的也很好,他是单台电脑上通过不同的端口号进行的伪集群部署,给我在学习过程中提供了帮助