SpringCloud学习笔记,环境部署相关笔记

这篇笔记详述了在Linux环境下配置Zookeeper的过程,包括Java环境配置、Zookeeper单机与集群配置,以及遇到的防火墙问题和解决办法。博主分享了配置步骤、相关指令和可能出现的错误,旨在帮助读者更好地理解和实践Zookeeper集群搭建。
摘要由CSDN通过智能技术生成

关于笔记

学习笔记

以前做笔记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
这个帖子写的也很好,他是单台电脑上通过不同的端口号进行的伪集群部署,给我在学习过程中提供了帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值