LINUX部署微服务项目步骤
项目简介技术栈
主体技术:SpringCloud,SpringBoot,VUE2,
中间件:RabbitMQ、Redis
创建用户
在linux服务器home下创建用户qshh,用于后续本项目需要的环境进行安装配置
#创建用户
useradd 用户名
#设置登录密码
passwd 用户名 密码
JDK安装及配置
JDK是Java程序运行的基础环境
#在qshh用户下进行操作,创建目录
mkdir -p /home/qshh/jdk/instance#切换目录
cd /home/qshh/jdk/instance#上传jdk-8u202-linux-x64.tar.gz#解压
tar -zxf jdk-8u351-linux-x64.tar.gz #得到jdk1.8.0_351目录#环境变量、回到用户根目录
vi .bash_profile #编辑文件 添加以下内容#jdk
PATH=/home/qshh/jdk/instance/jdk1.8.0_351/bin:$PATH#配置文件生效
source .bash_profile #验证
java -version
#显示
java version "1.8.0_351"
Java(TM) SE Runtime Environment (build 1.8.0_351-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.351-b08, mixed mode)
创建jar包目录,以及后台运行的命令
mkdir -p /home/qshh/instance///使运行jar包当前shell连接也能正常运行
nohup java -jar XXX.jar &//查看jar运行的线程等信息
ps aux|grep xxx.jar
Nginx安装及配置
下载Nginx所需要的依赖
//root用户
yum install epel-release -y
yum -y install unzip zip zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++ autoconf automake make psmisc net-tools lsof vim wget -y
创建nginx安装目录并编译安装
#qshh用户
mkdir -p /home/qshh/nginx/make#进入该目录,并且把nginx安装包上传到该目录下
cd /home/qshh/nginx/make#解压得到nginx-1.18.0目录
tar -zxf nginx-1.18.0-src.tar.gz#编译配置
cd nginx-1.18.0
./configure --prefix=/home/qshh/nginx/instance/nginx-1.18.0 --with-stream --with-http_ssl_module --with-http_realip_module#编译并安装
make && make install
配置qshh用户下的nginx环境
#qshh用户根目录
vi .bash_profile#添加以下配置
#nginx
PATH=/home/qshh/nginx/instance/nginx-1.18.0/sbin:$PATH#配置立即生效
source .bash_profile#验证是否安装好
nginx -v
nginx的启动相关命令
#查看nginx运行情况
ps -ef | grep nginx#启动nginx,进入nginx的安装目录下的sbin执行
./nginx#获取nginx执行的进程号
ps -C nginx -o pid#sbin重启,即读取配置文件
./nginx -s reload
Nacos安装及配置
nacos安装
#创建目录
mkdir -p /home/qshh/nacos/instance#切换目录
cd /home/qshh/nacos/instance#该目录下上传压缩包并解压
tar -xf nacos-server-1.4.4.tar.gz#启动命令需要在实例根目录执行 不在nacos的bin目录执行
#避免污染nacos的bin目录 主要是内置数据库日志和tomcat工作目录和日志
cd /home/qshh/nacos/instance/nacos-server-1.4.4#创建启动脚本
vi startup.sh
#键入:
sh bin/startup.sh -m standalone#保存后即可在该目录执行启动脚本
sh startup.sh
#停止
sh bin/shutdown.sh
访问nacos
默认地址:http://localhost:8848/nacos
#账号:nacos
#密码:nacos
修改nacos端口以及查看日志
要进入nacos目录下的conf中修改application.properties文件
设置端口server.port=8888//默认是8848
如果启动nacos后无法访问到nacos,那么首先看一下nacos的启动日志,看是否成功启动
要进入nacos安装目录下的logs文件夹
#查看nacos运行状态
ps -ef | grep nacos
cat start.out//进行启动日志查看
Redis安装及配置
redis安装
#创建目录
mkdir -p /home/qshh/redis/make#切换目录上传安装包
cd /home/qshh/redis/make #解压
tar -zxf redis-5.0.14.tar.gz #得到redis-5.0.14目录#进入目录
cd redis-5.0.14#编译
make #安装,指定安装目录
make install PREFIX=/home/qshh/redis/instance/redis-5.0.14
用户添加redis路径信息
#环境变量
vi ~/.bash_profile#设置路径以及默认密码
#redis
PATH=/home/qshh/redis/instance/redis-5.0.14/bin:$PATH
export REDISCLI_AUTH=123456#生效
source ~/.bash_profile
配置redis信息
#配置文件 拷贝 改名
cp redis.conf /home/qshh/redis/instance/redis-5.0.14/6379.conf#快捷脚本 拷贝 改名
cp utils/redis_init_script /home/qshh/redis/instance/redis-5.0.14/script/redis_6379#切换目录
cd /home/qshh/redis/instance/redis-5.0.14#编辑配置文件
vi 6379.conf#修改以下选项
################################## NETWORK #####################################
bind 0.0.0.0 #69行 外部访问
port 6379 #92行 端口
################################# GENERAL #####################################
daemonize yes #136行 后台运行
pidfile /home/qshh/redis/instance/redis-5.0.14/6379.pid #158行 pid
logfile "/home/qshh/redis/instance/redis-5.0.14/6379.log" #171行 日志
################################ SNAPSHOTTING ################################
dbfilename 6379.rdb #253行 数据文件名称
dir /home/qshh/redis/instance/redis-5.0.14 #263行 数据目录
replicaof <masterip> <masterport> #286行
################################# REPLICATION #################################
masterauth 123456 #293行 master密码 非从节点也是不生效的 可以提前配置 如果不对 部署的时候可以改
################################## SECURITY ###################################
requirepass 123456 #507行 密码
############################## APPEND ONLY MODE ###############################
appendonly yes #699行 持久化策略
appendfilename "6379.aof" #703行 持久化文件
appendfsync always #729行 同步策略#编辑
vi script/redis_6379#修改以下内容
REDISPORT=6379
EXEC=/home/qshh/redis/instance/redis-5.0.14/bin/redis-server #路径修改
CLIEXEC=/home/qshh/redis/instance/redis-5.0.14/bin/redis-cli #路径修改PIDFILE=/home/qshh/redis/instance/redis-5.0.14/${REDISPORT}.pid #路径及文件名称修改
CONF="/home/qshh/redis/instance/redis-5.0.14/${REDISPORT}.conf" #路径修改
启动jar包涉及redis报错处理
报错信息:
[2023-04-09 17:50:42] [ERROR] [org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/ms-app].[dispatcherSer
vlet]:175] -- Servlet.service() for servlet [dispatcherServlet] in context with path [/ms-app] threw exception [red
is.clients.jedis.exceptions.JedisDataException: READONLY You can't write against a read only replica.] with root cau
se
redis.clients.jedis.exceptions.JedisDataException: READONLY You can't write against a read only replica.
原因分析:
在jar使用redis时,设置只读的权限
解决:
在之前的配置文件6379.conf中将replica-read-only yes改为no即可见下:
#设置为no即可
replica-read-only no
RabbitMQ安装及配置
安装依赖Erlang
#root用户安装
yum -y install perl,ncurses-devel,openssl-devel
安装Erlang
#qshh用户创建目录
mkdir -p /home/qshh/erlang/make#进入目录上传压缩包,解压
tar -zxf otp_src_23.3.4.11.tar.gz#进入目录
cd otp_src_23.3.4.11#编译配置
./configure --prefix=/home/qshh/erlang/instance/erlang-23.3.4.11#编译并安装
make && make install#用户根目录设置环境变量
vi .bash_profile #erlang
PATH=/home/qshh/erlang/instance/erlang-23.3.4.11/lib/erlang/bin:$PATH#生效
source .bash_profile #验证
erl -version
安装rabbitMQ
#qshh实例目录
mkdir -p /home/qshh/rabbitmq/instance#切换目录
cd /home/qshh/rabbitmq/instance#上传并解压得到 rabbitmq_server-3.9.14目录
tar -xf rabbitmq-server-generic-unix-3.9.14.tar.xz#用户根目录设置环境变量
vi .bash_profile#rabbitmq
PATH=/home/qshh/rabbitmq/instance/rabbitmq_server-3.9.14/sbin:$PATH#生效
source .bash_profilecd /home/qshh/rabbitmq/instance/rabbitmq_server-3.9.14#启动
rabbitmq-server -detached#组件安装
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_web_stomp#用户
rabbitmqctl list_users#添加用户
rabbitmqctl add_user "admin" "qshh@CYS"#设置角色
rabbitmqctl set_user_tags admin administrator#设置权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"#停止
rabbitmqctl stop#启动管理~/bin/qshh_rabbitmq_5672
相关文章:

LINUX部署微服务项目步骤
项目简介技术栈 主体技术:SpringCloud,SpringBoot,VUE2, 中间件:RabbitMQ、Redis 创建用户 在linux服务器home下创建用户qshh,用于后续本项目需要的环境进行安装配置 #创建用户 useradd 用户名 #设置登录密…...

zsh安装插件
0 zsh不仅在外观上比较美观,而且其具有强大的插件,如果不使用那就亏大了。 官方插件库 https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins 官方插件库并不一定有所有的插件,比如zsh-autosuggestions插件就不再列表里,下面演示zs…...

网站如何正式上线(运维详解)
因为平台原因,不能有太多链接,所以下文中链接都删除了,想访问的去原文链接:https://www.zhoudongqi.com/ TIPS 这篇文章是我自己运营运维的wordpess站点的经验总结,可以说十分详细,域名,服务器和…...

SQL server 数据库使用整理
标题:SQL server 数据库使用整理 1.字符串表名多次查询 2.读取SQL中Json字段中的值:JSON_VALUE(最新版本支持,属性名大小写敏感) 1.字符串表名多次查询 SELECT ROW_NUMBER() OVER (ORDER BY value ASC) rowid,value…...

【Rust自学】17.2. 使用trait对象来存储不同值的类型
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 17.2.1. 需求 这篇文章以一个例子来介绍如何在Rust中使用trait对象来存储不同值的类型。 …...

初始化mysql报错cannot open shared object file: No such file or directory
报错展示 我在初始化msyql的时候报错:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解读: libaio包的作用是为了支持同步I/O。对于数据库之类的系统特别重要,因此…...

2025年1月22日(网络编程)
系统信息: ubuntu 16.04LTS Raspberry Pi Zero 2W 系统版本: 2024-10-22-raspios-bullseye-armhf Python 版本:Python 3.9.2 已安装 pip3 支持拍摄 1080p 30 (1092*1080), 720p 60 (1280*720), 60/90 (640*480) 已安装 vim 已安装 git 学习…...

Jason配置环境变量
jason官网 https://jason-lang.github.io/ https://github.com/jason-lang/jason/releases 步骤 安装 Java 21 或更高版本 安装 Visual Studio Code 根据操作系统,请按照以下具体步骤操作 视窗 下载 Jason 的最新版本,选择“jason-bin-3.3.0.zip”…...

蓝桥杯python语言基础(7)——自定义排序和二分查找
目录 一、自定义排序 (一)sorted (二)list.sort 二、二分查找 bisect 一、自定义排序 (一)sorted sorted() 函数会返回一个新的已排序列表,而列表的 sort() 方法会直接在原列表上进行排序…...

(开源)基于Django+Yolov8+Tensorflow的智能鸟类识别平台
1 项目简介(开源地址在文章结尾) 系统旨在为了帮助鸟类爱好者、学者、动物保护协会等群体更好的了解和保护鸟类动物。用户群体可以通过平台采集野外鸟类的保护动物照片和视频,甄别分类、实况分析鸟类保护动物,与全世界各地的用户&…...

后盾人JS--闭包明明白白
延伸函数环境生命周期 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> <…...

redis的分片集群模式
redis的分片集群模式 1 主从哨兵集群的问题和分片集群特点 主从哨兵集群可应对高并发写和高可用性,但是还有2个问题没有解决: (1)海量数据存储 (2)高并发写的问题 使用分片集群可解决,分片集群…...

Kiwi 安卓浏览器本月停止维护,扩展功能迁移至 Edge Canary
IT之家 1 月 25 日消息,科技媒体 Android Authority 今天(1 月 25 日)发布博文,报道称 Kiwi 安卓浏览器将于本月停止维护,相关扩展支持功能已整合到微软 Edge Canary 浏览器中。 开发者 Arnaud42 表示 Kiwi 安卓浏览器…...

我的AI工具箱Tauri+Django内容生产介绍和使用
在现代内容生产环境中,高效、自动化的工具能够显著提升生产力,降低人工成本。Tauri 与 Django 结合打造的工作箱,集成了强大的 音频处理、视频剪辑、内容下载 以及 AI 文章撰写 等模块,帮助用户在多媒体内容生产的各个环节实现高效…...

四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)
四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用) 文章目录 四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)1. 有序集合 Zset(sorted set)2. zset 有序…...

Java---猜数字游戏
本篇文章所实现的是Java经典的猜数字游戏 , 运用简单代码来实现基本功能 目录 一.题目要求 二.游戏准备 三.代码实现 一.题目要求 随机生成一个1-100之间的整数(可以自己设置区间),提示用户猜测,猜大提示"猜大了",…...

网站快速收录:利用RSS订阅提升效率
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/27.html 利用RSS订阅可以显著提升网站内容的更新和收录效率,以下是一些具体的方法和策略: 一、RSS订阅的基本原理 RSS(ReallySimpleSyndication或RichS…...

vue3第三部分--组件通信
title: 组件通信 date: 2025-01-28 12:00:00 tags:- 前端 categories:- 前端组件通信 目标:重点学习父子组件与兄弟组件的通信方式,以及插槽的作用与使用方式 父子组件通信 主要是通过props和自定义事件来实现 1.1 父 -> 子通信(通过 …...

DeepSeek R1-Zero vs. R1:强化学习推理的技术突破与应用前景
📌 引言:AI 推理的新时代 近年来,大语言模型(LLM) 的规模化扩展成为 AI 研究的主流方向。然而,LLM 的扩展是否真的能推动 通用人工智能(AGI) 的实现?DeepSeek 推出的 R1…...

matlab提取滚动轴承故障特征
为了精准、稳定地提取滚动轴承故障特征,提出了基于变分模态分解和奇异值分解的特征提取方法,采用标准模糊C均值聚类(fuzzy C means clustering, FCM)进行故障识 别。对同一负荷下的已知故障信号进行变分模态分解,利用 奇异值分解技术进一步提…...

数据结构与算法学习笔记----容斥原理
数据结构与算法学习笔记----容斥原理 author: 明月清了个风 first publish time: 2025.1.30 ps⭐️介绍了容斥原理的相关内容以及一道对应的应用例题。 Acwing 890. 能被整除的数 [原题链接](890. 能被整除的数 - AcWing题库) 给定一个整数 n n n和 m m m个不同的质数 p 1 …...

Java 知识速记:全面解析 final 关键字
Java 知识速记:全面解析 final 关键字 什么是 final 关键字? final 关键字是 Java 中的一个修饰符。它可以用于类、方法和变量,其作用是限制对这些元素的修改。究竟如何限制?我们来逐个分析。 final 在变量中的用法 1. 声明常…...

(笔记+作业)书生大模型实战营春节卷王班---L0G2000 Python 基础知识
学员闯关手册:https://aicarrier.feishu.cn/wiki/QtJnweAW1iFl8LkoMKGcsUS9nld 课程视频:https://www.bilibili.com/video/BV13U1VYmEUr/ 课程文档:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/Python 关卡作业:htt…...

9、Docker环境安装Nginx
一、拉取镜像 docker pull nginx:1.24.0二、创建映射目录 作用:是将docker中nginx的相关配置信息映射到外面,方便修改配置文件 1、创建目录 # cd home/ # mkdir nginx/ # cd nginx/ # mkdir conf html log2、生成容器 docker run -p 80:80 -d --name…...

受击反馈HitReact、死亡效果Death Dissolve、Floating伤害值Text(末尾附 客户端RPC )
受击反馈HitReact 设置角色受击标签 (GameplayTag基本了解待补充) 角色监听标签并设置移动速度 创建一个受击技能,并应用GE 实现设置角色的受击蒙太奇动画 实现角色受击时播放蒙太奇动画,为了保证通用性,将其设置为一个函数,并…...

572. 另一棵树的子树
前导题:100. 相同的树 回顾一下 判断两棵二叉树相同,根结点相同 且 左子树相同 且 右子树相同。 于是判断如下: 根结点都为null,返回true根结点不都为null,返回false根结点都不为null,但是值不相同&#…...

MATLAB中textBoundary函数用法
目录 语法 说明 示例 匹配文本的边界 匹配文本的结尾边界 对文本的边界求反 textBoundary函数的功能是匹配文本的开头或结尾。 语法 pat textBoundary pat textBoundary(type) 说明 pat textBoundary 创建与文本开头或结尾匹配的模式。textBoundary 可以使用 ~ 运算…...

vue3的路由配置
先找到Layout布局文件,从中找到左侧边栏,找到下述代码 <SidebarItem v-for"route in noHiddenRoutes" :key"route.path" :item"route" :base-path"route.path" />/** *菜单项 <SidebarItem>: *使用…...

在彼此的根系里呼吸
爱如草木,需以晨露滋养,而非绳索捆缚。一段健康的亲密关系,恰似两株根系相连却各自向阳的树——风起时枝叶相触,晴空下共享光影,却始终保有向地心深处生长的自由。那些纠缠的根须是信任编织的网,容得下沉默…...

深入理解若依RuoYi-Vue数据字典设计与实现
深入理解若依数据字典设计与实现 一、Vue2版本主要文件目录 组件目录src/components:数据字典组件、字典标签组件 工具目录src/utils:字典工具类 store目录src/store:字典数据 main.js:字典数据初始化 页面使用字典例子…...