在Docker容器中部署整套基于Spring Cloud的微服务架构,看这篇就对了!

2023-11-15

本文以mall-swarm项目为例,主要介绍一个微服务架构的电商项目如何在Docker容器下部署,涉及到大量系统组件的部署及多个Spring Cloud 微服务应用的部署,基于CentOS7.6。

环境搭建

基础环境部署

mall-swarm运行需要的系统组件如下,Docker容器中安装这些组件的方法直接参考该文章即可:mall在Linux环境下的部署(基于Docker容器)

组件 版本号
JDK 1.8
Mysql 5.7
Redis 3.2
Elasticsearch 6.4.0
MongoDb 3.2
RabbitMq 3.7.15
Nginx 1.10

镜像打包上传

一共8个应用服务需要打包成Docker镜像,具体如何打包可以参考使用Maven插件构建Docker镜像 。需要注意的是如果打包过程中遇到找不到mall-commonmall-mbgmall-security的情况,需要先按顺序将这些模块install到本地maven仓库再进行打包。

应用 版本号
mall-registry 1.8
mall-config 5.7
mall-monitor 3.2
mall-gateway 6.4.0
mall-admin 3.2
mall-portal 3.7.15
mall-search 1.10
mall-demo 1.10

镜像打包上传完成后,完整docker仓库镜像示意图:

应用部署

部署mall-registry

  • 通过以下命令运行注册中心mall-registry

docker run -p 8001:8001 --name mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-registry/logs:/var/logs \
-d mall/mall-registry:1.0-SNAPSHOT
  • 运行成功后,通过访问该地址可以查看注册中心控制台:http://192.168.6.132:8001/

部署mall-config

  • 通过以下命令运行配置中心mall-config

docker run -p 8301:8301 --name mall-config \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-config/logs:/var/logs \
-d mall/mall-config:1.0-SNAPSHOT
  • 运行成功后,通过访问该地址可以查看mall-admin在prod环境下的配置信息:http://192.168.6.132:8301/master/admin-prod.yml

  • 需要注意的是prod环境下从配置中心获取的是存储在git仓库中的配置,如需更改需要将mall-config模块的配置文件application.yml中的git仓库配置改为你自己的。

spring:
cloud:
config:
server:
git: #Git仓库存储
uri: https://gitee.com/macrozheng/mall-config.git #改为你自己的配置
username: macro
password: 123456
clone-on-start: true
search-paths: '{application}'

部署mall-monitor

  • 通过以下命令运行监控中心mall-monitor

docker run -p 8101:8101 --name mall-monitor \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-monitor/logs:/var/logs \
-d mall/mall-monitor:1.0-SNAPSHOT
  • 运行完成后可以通过该地址查看监控中心信息,账号密码为macro:123456:http://192.168.6.132:8101

部署mall-gateway

  • 通过以下命令运行网关服务mall-gateway

docker run -p 8201:8201 --name mall-gateway \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-gateway/logs:/var/logs \
-d mall/mall-gateway:1.0-SNAPSHOT
  • 运行完成后可以通过该地址查看动态路由规则:http://192.168.6.132:8201/actuator/gateway/routes

部署mall-admin

  • 通过以下命令运行后台服务mall-admin

docker run -p 8180:8180 --name mall-admin \
--link mysql:db \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-admin/logs:/var/logs \
-d mall/mall-admin:1.0-SNAPSHOT
  • 通过mall-gateway网关服务访问接口文档:http://192.168.6.132:8201/mall-admin/swagger-ui.html

部署mall-portal

  • 通过以下命令运行前台服务mall-portal

docker run -p 8085:8085 --name mall-portal \
--link mysql:db \
--link redis:redis \
--link mongo:mongo \
--link rabbitmq:rabbit \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-portal/logs:/var/logs \
-d mall/mall-portal:1.0-SNAPSHOT
  • 通过mall-gateway网关服务访问接口文档:http://192.168.6.132:8201/mall-portal/swagger-ui.html

部署mall-search

  • 通过以下命令运行搜索服务mall-search

docker run -p 8081:8081 --name mall-search \
--link mysql:db \
--link elasticsearch:es \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-search/logs:/var/logs \
-d mall/mall-search:1.0-SNAPSHOT
  • 通过mall-gateway网关服务访问接口文档:http://192.168.6.132:8201/mall-search/swagger-ui.html

部署mall-demo

  • 通过以下命令运行测试服务mall-demo

docker run -p 8082:8082 --name mall-demo \
--link mysql:db \
--link mall-registry:mall-registry \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-demo/logs:/var/logs \
-d mall/mall-demo:1.0-SNAPSHOT
  • 通过mall-gateway网关服务访问接口文档:http://192.168.6.132:8201/mall-demo/swagger-ui.html

运行完成效果展示

  • 注册中心控制台信息:

  • 监控中心应用信息:

可视化管理工具

Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便的管理Docker环境,包括单机环境和集群环境,下面我们将用Portainer来管理Docker容器中的应用。

  • 官网地址:https://github.com/portainer/portainer

  • 获取Docker镜像文件:

docker pull portainer/portainer
  • 使用docker容器运行Portainer:

docker run -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer
  • 查看Portainer的DashBoard信息:

  • 查看所有运行中的容器信息:

  • 查看所有已经下载的Docker镜像:

  • 查看mall-portal应用的统计信息:

  • 查看mall-portal应用的运行过程中打印的日志信息:

  • 进入mall-portal应用的容器内部来操作容器内部系统:

项目地址

https://github.com/macrozheng/mall-swarm

推荐阅读


欢迎关注,点个在看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Docker容器中部署整套基于Spring Cloud的微服务架构,看这篇就对了! 的相关文章

  • RuntimeError: a leaf Variable that requires grad has been used in an in-place operation.a += torch.o

    叶子节点不能执行in place 原地 操作 因为在进行前向传播的时候得到的是叶子结点的地址 再进行反向传播的时候这个地址不变才不会报错 地址改变了就会出错 要将 a torch ones 1 改为 a a torch ones 1 另外下
  • 计算机断电无法启动不了系统,电脑突然断电后无法启动怎么回事

    使用电脑的时候 总是会避免不了各种意外的事情 比如常见的电脑突然断电的情况 然后就会关机 可是关机之后就无法开机了 这是怎么回事呢 那么遇到电脑突然断电后无法启动如何解决呢 不用担心 本文给大家讲述一下电脑断电关机后无法开机的详细修复步骤
  • 用c语言实现顺序查找,顺序查找算法及C语言实现

    通过前面对静态查找表的介绍 静态查找表即为只做查找操作的查找表 静态查找表既可以使用 虽然一个是本节以静态查找表的顺序存储结构为例做详细的介绍 顺序查找的实现 静态查找表用顺序存储结构表示时 顺序查找的查找过程为 从表中的最后一个数据元素开
  • Java实现哈希函数/散列算法

    哈希函数 散列算法 根据某个值进行hash值计算 确保唯一性 public class HashUtils private static final String ALGORITHM SHA 256 public static String
  • Java基本类型所占存储空间大小

    基本类型 大小 最小值 最大值 包装器类型 boolean Boolean char 两个字节 Unicode 0 Unicode 2 16 1 Character byte 一个字节 128 127 Byte short 两个字节 2 1
  • daily technology

    Trending repositories on GitHub today GitHub The Hacker News Cybersecurity News and Analysis HackerNews Pxlet Yet anothe
  • 四数之和——python

    18 四数之和 难度中等997 给你一个由 n 个整数组成的数组 nums 和一个目标值 target 请你找出并返回满足下述全部条件且不重复的四元组 nums a nums b nums c nums d 若两个四元组元素一一对应 则认为
  • 学习使用 MATLAB 数学建模一篇文章就够了

    学习中 随着学习的深入会不断补充内容 欢迎大家一起学习数学建模知识 有什么问题 大家可以评论 一起讨论学习 需要LaTeX 数学建模模板和我收集的一些数学建模资料的可以评论留下邮箱 与君共勉 文章目录 一 MATLAB 知识学习 二 数学建
  • 剖析高性能队列Disruptor背后的数据结构和算法

    本文是学习算法的笔记 数据结构与算法之美 极客时间的课程 Disruptor 是一种内存消息队列 它经Java 中另外一个非常常用的内存消息队列 ArrayBlockQueue ABS 的性能 要高出一个数量级 可以算得上是最快的内存消息队
  • 深入浅出UML类图(五)

    实例分析3 售票机控制程序 某运输公司决定为新的售票机开发车票销售的控制软件 图I给出了售票机的面板示意图以及相关的控制部件 图I 售票机面板示意图 售票机相关部件的作用如下所述 1 目的地键盘用来输入行程目的地的代码 例如 200表示总站
  • 1063. 计算谱半径(20)

    在数学中 矩阵的 谱半径 是指其特征值的模集合的上确界 换言之 对于给定的n个复数空间的特征值 a1 b1i an bni 它们的模为实部与虚部的平方和的开方 而 谱半径 就是最大模 现在给定一些复数空间的特征值 请你计算并输出这些特征值的
  • Java学习笔记:Servlet

    JavaWeb三大组件 Servlet Filter 过滤器 Listener 监听器 Servlet生命周期 1 初始化阶段 调用init 方法 2 响应客户请求阶段 调用service 方法 3 终止阶段 调用destroy 方法 生命
  • Eclipse 部署Thrift 实例 & 服务模型实例演示(java)

    一 Eclipse 部署Thrift 实例 注 需要1 工具包thrift 0 9 0 ext 下载地址http download csdn net detail xyw eliot 5414527 2 Java语言Thrift工程需要的j
  • Java循环for, while和do...while&break,continue,return

    为什么80 的码农都做不了架构师 gt gt gt Java有非常灵活的三循环机制 可以使用以下三种循环之一 while 循环 do while 循环 for 循环 从Java5 增强的for循环中进行了介绍 这主要是用于数组 while
  • go中make和new的用法,以及nil用法

    看如下代码 package main import fmt unsafe func main make和new函数 new函数用法 a 10 默认值 int rune byte float bool string这些类型都有默认值 指针 切
  • 多进程和多线程的差别(优缺点)

    多进程 多线程 目录 一 多线程的优点 二 多进程的优点 目录 对于问多进程和多线程之间的差别的问题 其实我们只要表明我们所知道的多进程和多线程各自的优点就可以了 一 多线程的优点 1 线程间通信会更加灵活 包括进程间通信在内还可以使用全变
  • Python基于Scapy的抓包协议分析器

    环境 py3 8 原理 模仿wireshark 利用python的scapy模块下的sniff 函数进行数据的抓取 并进行所谓的 消费者处理 即跟据OSI网络协议模型进行协议分析 将整个程序精简的概括得到最关键的一句代码 sniff prn
  • 企业商家怎么做小程序商城?

    自小程序商城的出现 帮助了很多企业商家打破了传统线下卖货的瓶颈 打通了线上卖货的渠道 为企业商家带来销售额的提升 当然还没入局的企业商家趁现在也可以做自己的小程序商城 在线上流量中分一杯羹 那么下面说说企业商家怎么做小程序商城 一 准备好小
  • JSP-内置对象

    response动态响应的例子 response重定向的例子 通过session对象来保证 在不同页面跳转时是同一个用户
  • ehcache缓存过期时间和注解的使用。

    一 过期时间的测试 我们配置一个spring整合ehcache的例子 使用自动注解缓存的方式 进行测试 timeToIdleSeconds表示最大空闲的时间 timeToLiveSeconds表示最大存活时间 例1 结果 5秒间隔内不过期

随机推荐

  • 学成在线网页制作(详细)

    项目分析 如图 分为四个模块 header头部模块 精品推荐模块 编程入门模块 数据分析师模块 机器学习模块 前端工程师开发模块 footer模块 如果仔细观察的话 第2 5 6属于一个模块 样式结构相同 同样的3 4模块相同 这样只要做出
  • linux gdb 不捕获SIGPIPE信号的方法

    gdb stops at SIGPIPE By default gdb captures SIGPIPE of a process and pauses it However some program ignores SIGPIPE So
  • 【⑯MySQL

    前言 欢迎来到小K的MySQL专栏 本节将为大家带来MySQL存储过程与函数概述 创建 调用 查看 修改 删除 争议的分享 目录 前言 1 存储过程概述 2 创建存储过程 3 调用存储过程 4 存储函数的使用 5 存储过程和函数的查看 修改
  • a-descriptions-item描述列表点击按钮显示相应内容

    实现功能 点击查询按钮 显示相应数据 部分数据只读 部分数据可修改 实现思路 首先通过点击按钮事件从接口获取内容 然后通过 显示在界面上 查询按钮触发事件代码 searchQuery var that this getAction this
  • 【数据库1】win10系统下,MySQL数据库安装环境搭建

    一 MySQL下载 登录MySql网站 https www mysql com MySql官方网站 下拉页面至最末端 如图 选择downloads里面的 Mysql community server 链接 进入下载页面 如图 根据个人系统情
  • MATLAB 图像处理 灰度图 将图像中某一行或者某一列的灰度值 绘制成一条曲线

    将这些灰度值保存成一个矩阵A A imgdata 1 第一列的所有数据 若是仅仅画数据 直接用plot A 例子如下 filename I jpg imgData imread filename imshow imgData 该函数可以用来
  • Libev事件库源码阅读笔记

    Libev事件库源码阅读笔记 Intro Libev是一个基于Reactor模式的事件库 效率较高 Benchmark 并且代码精简 4 15版本8000多行 是学习事件驱动编程的很好的资源 本文不会介绍Reactor模式 也不会介绍Lib
  • Windows 下如何使用管理员的身份运行 DOS 窗口

    如图 有时候我们使用命令行会发现类似上面的错误 这是因为我们没有使用管理员的身份运行 DOS 窗口导致的 那么如何解决 解决办法 先关闭命令提示符 然后打开电脑的系统盘C盘 打开路径 C Windows System32 然后在右上角的搜索
  • 数据倾斜

    数据倾斜发生时的现象 1 绝大多数task执行得都非常快 但个别task执行的极慢 2 原本能正常执行的Spark作业 某天突然爆出OOM 内存溢出 异常 观察异常栈 是我们写的业务代码造成的 数据倾斜发生的原理 在进行shuffle的时候
  • Python 文件读取的4种方式

    对于Python程序员来说 读取文件是一项基本操作 Python提供了多种读取文件的方式 以下是其中的4种常用方式 1 使用 open 函数和 read 方法 使用 open 函数和 read 方法是最基本的文件读取方式 它可以读取整个文件
  • mysql中的/、div的区别

    运算符为实数除 其运算的结果为实型 div为整除 该运算符只取商的整数部分 而不会四舍五入 网上说要求除数和被除数均为整形 经我测试 网上的说法有误 mysql gt select 100 22 div 2 1 100 22 div 2 1
  • WinServer 2012 R2 AD 组策略 将域用户加入本地管理员组

    需求 域用户shihua ma添加入到本地管理员组 先查看本地管理员组 net localgroup administrators 通过以上得知 shihua ma这个域用户不在本地管理员组 下面介绍如何将域用户自动加入到本地管理员组 一
  • C语言_函数递归举例

    1 递归和非递归分别实现求第n个斐波那契数 求第 n 个斐波那契数 include
  • 使用vscode如何建立vue模板

    目标 我们希望每次新建 vue文件后 VSCODE能够根据配置 自动生成我们想要的内容 方法 打开VSCODE编辑器 依次选择 文件 gt 首选项 gt 用户代码片段 此时 会弹出一个搜索框 我们输入vue 如下 选择vue后 VSCODE
  • 十、Fiddler抓包工具详细教程 — AutoResponder应用场景

    文章内容有配套的 学习视频和笔记都放在了文章末尾 简单介绍几个应用场景 场景一 生产环境的请求重定向到本地文件 验证结果 例如 某网站或者系统修改了问题 但尚未更新到生产环境 可重定向到本地修改后的文件进行验证 这样能够避免更新到生产环境后
  • JAVASCRIPT使用参考

    JS参考手册 https www w3school com cn jsref index asp 几点注意 JavaScript是一门客户端轻量级脚本语言 它运行在客户端的浏览器中 每一个浏览器都有JavaScript的解析引擎 脚本语言
  • Flink---1、概述、快速上手

    1 Flink概述 1 1 Flink是什么 Flink的官网主页地址 https flink apache org Flink的核心目标是 数据流上有状态的计算 Stateful Computations over Data Stream
  • OpenHarmony之Ubuntu22.04执行hb set报错

    错误提示 最近在使用Ubuntu22 04搭建OpenHarmony编译环境 在执行hb set命令选择开发板时出现如下报错 详细log如下 fangye fangye virtual machine niobeu4 src hb set
  • 分了很多节的word文档,使用尾注插入的参考文献,最后怎么在参考文献之后加入致谢?

    转自 点击打开链接 需要设置一下 1 设置尾注的位置 引用 脚注 按这个功能区分组右下角的功能展开按钮 调出 脚注和尾注 设置对话框 在 位置 下 尾注 后选择 节的结尾 2 从第一节开始分别取消各节的 尾注 直到 参考文献 这节 页面布局
  • 在Docker容器中部署整套基于Spring Cloud的微服务架构,看这篇就对了!

    本文以mall swarm项目为例 主要介绍一个微服务架构的电商项目如何在Docker容器下部署 涉及到大量系统组件的部署及多个Spring Cloud 微服务应用的部署 基于CentOS7 6 环境搭建 基础环境部署 mall swarm