微服务部署上线过程总结

devtools/2024/11/14 4:49:50/

目录

一、找到适合自己的部署方式 

二、开始部署,先安装需要的环境 

2.1 梳理一下都需要安装什么软件

2.2 配置数据库环境

redis%C2%A0-toc" style="margin-left:40px;">2.3 配置redis 

nacos-toc" style="margin-left:40px;">2.4 配置nacos

rabbitmq-toc" style="margin-left:40px;">2.5 配置rabbitmq

2.6 配置docker环境 

三、环境配置好了,开始部署后端 

3.1 梳理后端都有什么端口

3.2 部署后端

3.3 部署后端之前的项目配置

四、部署前端

五、域名配置 


一、找到适合自己的部署方式 

  我使用的是宝塔linux部署,但是宝塔安装rabbitmq无法启动(暂时不知道什么原因),所以我最后选择在centos中部署项目。

选择centos部署的原因:

  centos中原生部署有点麻烦,我选择在centos中安装了一个宝塔来部署,至于为什么我选择在centos中安装宝塔,是因为我宝塔启动不了rabbitmq,所以我打算在centos中安装rabbitmq,其他的软件都在宝塔安装就好了。(哈哈哈 投机取巧)

二、开始部署,先安装需要的环境 

   我使用的是腾讯云,在腾讯云买了一个2核8g的服务器,安装的是centos7.6的系统。

   接下来就需要在centos中安装宝塔了,安装宝塔的详细步骤如下,跟着来就行了!

   CentOS宝塔搭建(超详细)

   宝塔搭建好了,就看下面步骤吧!!! 

2.1 梳理一下都需要安装什么软件

1. 需要数据库mysql8

2. 需要redis做缓存

3. 需要nacos做服务中心

4. 需要rabbitmq做消息队列

5. 我有个代码沙箱,所以还需要个docker 

2.2 配置数据库环境

跟着我这篇博客一步一步来就好了,很简单 

宝塔面板安装MySQL8数据库 

redis%C2%A0">2.3 配置redis 

宝塔安装redis并且远程连接redis教程跟着我这篇博客一步一步来就好了,很简单 

宝塔安装redis并且远程连接redis教程 

nacos">2.4 配置nacos

(1) 下载安装包

我需要2.2.0版本的,你需要什么版本自己去springcloud官网查看就行 

地址 :http://https: github.com/alibaba/nacos/releases

(2) 版本要选2.2.0.tar.gz

(3)上传到服务器并安装

无脑安装:

进入目录 你放安装包的目录
cd /www/server/Nacos
解压
tar -xvf nacos-server-2.2.0.tar.gz
删除安装包
rm -rf nacos-server-2.2.0.tar.gz
进入目录
cd /www/server/Nacos/nacos/bin
运行 单机部署
sh startup.sh -m standalone
关闭
sh shutdown.sh #查看nacos运行状态
ps -ef | grep nacos #查看日志
cat /www/server/Nacos/nacos/logs/start.out

 (4)防火墙开放8848端口,本地连接http: ip:8848/nacos/index.html,看看是否能够连接。切记服务器的防火墙的也要放行。账号:nacos 密码:nacos

 (5)如果服务器内存不够也可以修改,nacos启动占用的内存。默认是:-Xms512m -Xmx512m -

Xmn256m 查看教程: https: blog.csdn.net/weixin_48016395/article/details/124239230

 

rabbitmq">2.5 配置rabbitmq

跟着教程无脑操作吧 

Centos7安装配置RabbitMQ 

2.6 配置docker环境 

这里这个docker我配置在了另一个服务器上,另一个服务器是2核2g的,用的是ubuntu系统,

我弄完系统直接就是apt install docker.io了,然后配了个jdk1.8(因为要启动java

 如果你想用centos配也行,下面教程无脑操作就行了

Centos7安装docker详细教程

三、环境配置好了,开始部署后端 

3.1 梳理后端都有什么端口

网关服务 8101端口
用户服务 8102端口
题目服务 8103端口
判题服务 8104端口

代码沙箱服务 8090端口

3.2 部署后端

给每个项目进行打包,然后都上传到服务器上

然后部署后端教程如下:

宝塔上线前后端项目操作 

每个项目都像教程里部署好,因为环境已经安装完成了,接下来的挨个启动项目,如果启动失败,就点进去查看日志,如图所示

3.3 部署后端之前的项目配置

 给每个需要启动的项目配置一个新的yml,这个yml设置为application-prod.yml,prod是用于生产环境启动的配置,这个配置可以把之前yml的内容复制过来,然后改一下数据库的地址,是线上数据库地址,例如:

  # 数据库配置datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://线上地址/数据库名字username: rootpassword: root

然后需要改rabbitmq的用户名和密码,如果你的rabbitmq用户名和密码自己改了的话

接着如果你的redis配置了密码的话 也需要改。如果你还用了redisson那你redisson也需要加入密码:

java">@Configuration
@ConfigurationProperties(prefix = "spring.redis")
@Data
public class RedissonConfig {private String host;private String port;private Integer database;private String password;@Beanpublic RedissonClient redissonClient(){Config config = new Config();config.useSingleServer().setDatabase(3).setAddress("redis://"+host+":"+port).setPassword(password);RedissonClient redissonClient = Redisson.create(config);return redissonClient;}
}

 这样应该就差不多了,都配置好之后直接打包就可以了。

四、部署前端

前端部署也如教程操作:

宝塔上线前后端项目操作

下一步: 

如果你部署前端的时候nginx报错了,那就请看这个博客:

宝塔nginx部署前端页面刷新报404 

五、域名配置 

 域名配置也如教程操作:很简单

 宝塔上线前后端项目操作

到这里应该就没什么问题了,我这个是给自己写的笔记,随便记一下过程,如果对你有帮助的话,就给我来个三连吧,如果你还有问题就请在评论区留言,我回复很快的哦! 


http://www.ppmy.cn/devtools/56824.html

相关文章

BASH and SH in SHELL scripts

一、执行脚本的现象 为了测试一个小的功能&#xff0c;写了一个小脚本&#xff0c;类似的内容如下&#xff1a; #!/bin/shecho "start api test ......"for((i1;i<10;i)); do echo "cur id :" $i; done echo "end."执行一下&#xff0c;“…

C++ (第二天上午---函数重载和缺省参数和占位参数)

一、函数重载 1、问题的引入 在实际开发中&#xff0c;有时候我们需要实现几个功能类似的函数&#xff0c;只是有些细节不同。例如希望交换两个变量的值&#xff0c;这两个变量有多种类型&#xff0c;可以是 int、float、char、bool 等&#xff0c;我们需要通过参数把变量的地…

6.The hardest part about learing hard things(学一件难的事,难在哪里)

I’ve been recording a lot of podcast interviews for my upcoming book, Ultralearning.One of the reurring themes I’ve noticed in our conversations is that how people feel about learning is the overwhelming cause of the results they experience. 我为我的新书…

[leetcode]文件组合

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<vector<int>> fileCombination(int target) {vector<vector<int>> vec;vector<int> res;int sum 0, limit (target - 1) / 2; // (target - 1) / 2 等效于 target /…

哈希表(C++实现)

文章目录 写在前面1. 哈希概念2. 哈希冲突3. 哈希函数4.哈希冲突解决4.1 闭散列4.1.1 线性探测4.1.2 采用线性探测的方式解决哈希冲突实现哈希表4.1.3 二次探测 4.2 开散列4.2.2 采用链地址法的方式解决哈希冲突实现哈希表 写在前面 在我们之前实现的所有数据结构中(比如&…

【高性能服务器】多进程并发模型

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 对于常见的C/S模型…

【flutter】点击底部不同的item实现切换Scaffold

要实现底部导航栏的不同项目切换不同的 Scaffold&#xff0c;您可以使用 IndexedStack 和 BottomNavigationBar 的组合。IndexedStack 可以根据当前所选的底部导航栏项目来切换不同的 Scaffold。以下是一个示例代码&#xff1a; import package:flutter/material.dart;void ma…

大二暑假 + 大三上

希望&#xff0c;暑假能早睡早起&#xff0c;胸围达到 95&#xff0c;腰围保持 72&#xff0c;大臂 36&#xff0c;小臂 32&#xff0c;小腿 38&#x1f36d;&#x1f36d; 目录 &#x1f348;暑假计划 &#x1f339;每周进度 &#x1f923;寒假每日进度&#x1f602; &…