SpringCloud-(三)常见分布式环境搭建
本文最后更新于:May 13, 2023 pm
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
目录
MySQL主从复制环境搭建
MySQL的安装:MySQL-Ubuntu20.04安装MySQL8.0以及远程连接
安装并开启远程连接。
主库操作
创建用户
用于从库访问主库。
1 |
|
设置主库
配置主库,为刚才创建的用户分配一个主从复制的权限。
1 |
|
查看主库状态
1 |
|
从库操作
修改配置文件
1 |
|
找到:server-id;并修改其值,只要保证唯一即可,不要使用默认值。修改完后重启。
修改数据库
执行命令:
1 |
|
注意:HOST为主库的地址;最后两个参数通过在主库执行命令:show master status; 获取。
开启主从复制
1 |
|
可以看见我们刚才的一些信息,其中重要的两个必须为YES才可以:
1 |
|
- 当主库挂掉后,前者将会变为Connecting。
测试
完成上述后,在主库中的操作都会同步到从库中。可自行创建库、表进行测试。
重启主库
当主库挂掉,需要重启时。需要先将从库停止复制:
1 |
|
然后查看主库的状态:
1 |
|
如果发生改变,则从从库操作中的 ‘修改数据库’ 操作依次执行。
搭建Nacos集群
这里以搭建一个两个Nacos的小集群,使用Nginx实现负载均衡。
环境安装
JDK8安装
1 |
|
还需要进行配置。默认路径:/usr/lib/jvm。可参考:星星之火-服务器部署Springboot+Vue项目以及配置SSL证书
下载上传Nacos
官方地址:https://github.com/alibaba/nacos/releases 。然后解压执行文件 /conf/ 目录下的nacos.mysql.sql。先进入看一眼是哪一个数据库,然后自行创建数据库,再进行执行。压缩包留着,后面要上传服务器。
可能使用Navicat无法完整执行sql文件,可自行使用IDEA或其他工具进行创建。
创建用户
使用工具创建一个用户。
设置密码:
设置权限:
上传服务器
上传到服务器后,进行解压。进入 /conf 目录下。
1 |
|
- 将 spring.datasource.platform=mysql 的注释去掉。
- 将 db.num=1 的注释去掉。
- 将 db.url.0 、db.user.0 、db.password.0 注释去掉。这里即为数据库的地址,刚才创建的用户名称和密码。如果后面部署完成后,访问外网IP无法成功连接,则在数据库的url后面拼接上:&allowPublicKeyRetrieval=true,再次访问外网IP即可成功。
然后将 cluster.conf.example 文件复制一份,命名为 cluster.conf:
1 |
|
然后再编辑 cluster.conf 文件:
1 |
|
将最下面的一些原有的地址删除,换成自己要搭建的IP和端口。
📢注意:这里的IP是内网IP。 如果是多服务器进行部署,则每台服务器只需要部署自己内网的IP和端口即可。因为数据库都是用的同一个。
如:
1 |
|
修改 /bin 目录下的startup.sh :
1 |
|
找到JVM配置,修改为如下(自行根据实际修改):
1 |
|
运行
1 |
|
若提示未安装JDK,可参考:星星之火-服务器部署Springboot+Vue项目以及配置SSL证书
若想前台运行(即运行窗口不能关闭,关闭则服务停止),可参考:SpringCloud-(一)Nacos的安装与启动
显示如下则表示成功启动:
1 |
|
访问
外网IP:端口
登录名称和密码均为:nacos。
其他可能问题
- nacos2.1.0 端口号不能连续,一个nacos会占用两端口。
实现负载均衡
现在已经完成了nacos的集群搭建,但是我们不会用两个IP进行使用,而是要找一个代理。这时候就需要使用到Nginx来实现负载均衡了。
Nginx安装
1 |
|
配置文件地址:/etc/nginx/nginx.conf ,在http中添加如下内容:
1 |
|
- 只要是访问 1.14.121.107/nacos 的,都会被转发到 upstream。从而实现负载均衡的效果。
然后再重启Nginx:
1 |
|
测试
访问 1.14.121.107/nacos ,然后进行登录,查看集群管理中节点列表。多次请求 1.14.121.107/nacos 或刷新然后看节点IP是否改变。
- 其他模块的nacos注册地址写 1.14.121.107:80 即可。
本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/979dc081.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!