建站公司怎么赚钱的,管理咨询包括哪些内容,建设阅读网站的目的,东莞同城招聘目录
一、环境准备
1、工具准备
2、虚拟机环境
3、Docker 环境
二、项目准备
1、配置各个模块#xff08;微服务#xff09;的 Dockerfile
2、配置 docker-compose.yml 文件
3、Maven 打包
4、文件整合并传输
三、微服务部署
1、部署至 Docker
2、访问微服务
四…目录
一、环境准备
1、工具准备
2、虚拟机环境
3、Docker 环境
二、项目准备
1、配置各个模块微服务的 Dockerfile
2、配置 docker-compose.yml 文件
3、Maven 打包
4、文件整合并传输
三、微服务部署
1、部署至 Docker
2、访问微服务
四、问题汇总
1、加载、启动很慢
2、没有给 CentOS 安装 jdk8 一、环境准备
1、工具准备
虚拟机需要使用VMware操作虚拟机需要使用Xshell、XftpLinux 部署微服务需要使用Docker微服务项目打包需要使用IDEA、Maven编辑 Dockerfile、docker-compose.yml 文件需要使用随便一个编辑器 2、虚拟机环境
1使用 CentOS7 作为项目部署的服务器操作系统 由于访问微服务需要操作系统有端口开放因此可以采取两种措施 第一种关闭防火墙第二种微服务用到哪些端口就打开哪些端口 参考如下内容https://www.cnblogs.com/ketoli/p/15111625.html 在这里我选择用到端口再进行开放需要注意的是每次更新完防火墙配置后都需要重启防火墙和 Docker。 如上图所示开启了 10086、8091、8081、8080、8848 端口。
2安装 JDK8
首先要安装 yum 工具
yum instll -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
使用下面命令直接安装 jdk8
yum install java-1.8.0-openjdk* -y3、Docker 环境
1安装 Docker 并配置镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed -i sdownload.docker.commirrors.tuna.tsinghua.edu.cn/docker-ceg /etc/yum.repos.d/docker-ce.repoyum makecache fast
2安装 docker-ce
yum install -y docker-ce
3配置镜像加速器
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json - EOF
{registry-mirrors: [https://n0dwemtq.mirror.aliyuncs.com]
}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
4安装 Docker-Compose
curl -SL https://get.daocloud.io/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
6设置 Docker 开机自动启动
systemctl enable docker 二、项目准备
下面将要部署一个微服务项目其中包括 3 个微服务
gateway 网关order 服务user 服务 1、配置各个模块微服务的 Dockerfile
1编写 Dockerfile
这里举一个 gateway 模块的 Dockerfile 为例子其他的模块只需要修改 EXPOSE 暴露的端口即可
# 指定基础镜像
FROM java:8-alpine
# 将 jar 包复制到容器中
COPY ./app.jar /app.jar
# 暴露端口
EXPOSE 10086
# 入口java项目的启动命令
ENTRYPOINT java -jar /app.jar 2、配置 docker-compose.yml 文件 Dockerfile 文件构建镜像那么 docker-compose 文件就是根据镜像构建容器。 需要关注的是
服务名比如nacos、user-servicebuild它会寻找当前 docker-compose 所在目录对应的文件夹并以文件夹中的内容去构建容器ports端口号是服务器端口和docker端口映射restartalways在容器已经 stop 或 Docker stoped/restarted 的时候才重启容器
version: 3.2services:nacos: # 需要将 java 项目中的 application 配置文件中需要用到这些中间件的地址 localhost都改为这个服务名 nacos数据库则是 mysqlimage: nacos/nacos-serverenvironment:MODE: standaloneports: - 8848:8848restart: alwayslogging: driver: json-fileoptions: max-size: 100muser-service: # 与 nacos 注册中心的 name 一致build: ./user-module # 寻找当前 yml 所在目录的文件夹其中包含 dockerfilerestart: alwayslogging: driver: json-fileoptions: max-size: 100morder-service:build: ./order-modulerestart: alwayslogging: driver: json-fileoptions: max-size: 100mgateway:build: ./gatewayports: - 10086:10086restart: alwayslogging: driver: json-fileoptions: max-size: 100m 3、Maven 打包
1项目结构
feign-api整合了 nacos 和 ribbon但是不需要打包使用 nacos 的容器代替即可gateway网关做了普通的鉴权认证和跨域拦截order-moduleorder-service 服务user-moduleuser-service 服务 2pom 文件
pom 文件的编写需要注意 2 点
有 application 启动类的 module才需要加上 buildbuild 中统一设置 finalName 为 app使得到的 jar 包名称都是 app方便书写以我的项目为例子feign-api 是做远程调用和负载均衡的不需要启动类因此只有它不用 build 3修改 application 和 bootstrap 配置文件
将数据库 url 中的 ip 都改为 mysql或者你用的其他数据库将配置 nacos 服务发现的地址和统一配置的地址的 ip 都改为 nacos这是因为实际使用时 ip 肯定不能用本机地址bootstrap application 因为我没用到数据库所以就不演示数据库的 ip 的修改了
4打包
完成前面的 2 个步骤就可以打包了直接使用 maven 的 clean package 命令即可 打完 jar 包后可以在 target 目录下找到 app.jar 4、文件整合并传输
1将 jar 包放入指定文件夹
我们在 docker-compose.yml 中指定了 user-service 放在 user-module 文件夹因此 user 的 jar 包要放入 user-module其他的也一样 下面是整个项目的文件 2传输至 Linux
使用 Xftp或者其他文件传输工具将 Cloud01 文件夹传输至 Linux放在哪里可以自己定 三、微服务部署
1、部署至 Docker
1cd 至项目在 Linux 中的位置
创建目录使用mkdir -p /usr/myProject/springcloud/然后 cd 至含有 docker-compose.yml 的目录下 2使用 docker-compose
使用命令docker compose up -d-d 后台运行其作用是创建并启动 Container 注意 我们在 nacos 服务中配置了 image 属性会自动 pull 该镜像在 Dockerfile 中引入了 java:8-alpine 基础镜像也会自动 pull因此第一次使用会比较久建议先不加 -d可以观察创建过程 3可能会遇到的问题
如果我们使用 docker compose up 一次性将所有容器创建并启动这就会有一个问题
nacos 不是第一个启动的话那么其他服务就无法进行注册。
因此我们有两种选择
第一种先 compose up nacos 启动并创建 nacos 容器再 compose up 启动所有容器第二种直接 compose up 启动所有容器再 compose restart [service] [service] 重启除了 nacos 外的服务 2、访问微服务
1访问 nacos
我们可以先试试访问 nacos 服务中心可以发现服务都注册进来了 2向 http://ip:port/xxx 发送请求
我这里会从网关发起向 order-service 的查询请求order-service 又会远程服务调用 user-service 四、问题汇总
1、加载、启动很慢 我遇到的问题是 docker compose up 之后要过好几分钟才能访问 nacos 主页。并且需要等到可以访问 nacos 主页之后再 restart 其他服务才能将服务注册到 nacos。 1解决方法
考虑到微服务其实会占用很大的内存所以我将虚拟机的内存增大到 4G 了。
然后部署服务加载的速度就变得很快了。 2、没有给 CentOS 安装 jdk8
既然要运行 java 项目那么一个 jdk 也是必不可少的。我个人就是忘了装 jdkdebug 了数小时没有部署成功
前文准备虚拟机环境中已有介绍。