RabbitMQ官网:https://www.rabbitmq.com/。 官方文档:https://rabbitmq.com/documentation.html。 官方Demo:https://www.rabbitmq.com/getstarted.html。 部署 RabbitMQ 使用Docker来部署RabbitMQ只需要两个步骤: pull RabbitMQ镜像: 1docker pull rabbitmq:3-management RabbitMQ通过插件的方式提供了一个可视化界面。在RabbitMQ官方的镜像中,带management版本的就是集成了该可视化插件的镜像。 通过Docker官方的镜像源来pull...

微服务间通讯有两种方式: 同步通讯:实时响应。 异步通讯:不需要马上回复。 两种方式各有优劣,同步通讯可以立即得到响应,但是却不能跟多个服务同时通讯。异步通讯可以同时与多个服务通讯,但是往往响应会有所延迟。 同步通讯 Feign调用就属于同步方式,虽然调用可以实时得到结果,但存在下面的问题: 耦合度高:消费者与提供者之间存在直接的调用关系。在服务中每次加入新的需求,都要修改原来的代码。 性能下降:消费者需要等待提供者响应,如果调用链过长,响应时间等于每次调用的时间之和。 资源浪费:消费者在等待响应过程中,不能释放请求占用的资源,高并发场景下会极度浪费系统资源。 级联失败:如果提供者出现问题,所有消费者都会跟着出问题。如同多米话骨牌一...

介绍 Docker Compose是一个文本文件,用于定义和运行多容器 Docker应用程序的工具。通过Compose,可以使用YML文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 Compose使用的三个步骤: 使用Dockerfile定义应用程序的环境。 使用docker-compose.yml定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 最后,执行docker-compose up命令来启动并运行整个应用程序。 docker-compose.yml的配置案例如下: 1version: "3.8" 2 services: 3 mysql: 4 image:...

常见的镜像在Docker Hub就能找到,但是要部署自己的服务可能需要自己构建镜像。构建镜像可以使用Dockerfile。Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 镜像结构 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。 以MySQL镜像的组成结构为例: 镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、依赖文件等组合,然后编写好启动脚本打包在一起形成的文件。构建镜像,其实就是实现上述打包的过程。 语法 构建自定义的镜像时,并不需要一个个文件去拷贝,打包。我们只需要告诉Docker,镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要...

容器状态 Docker容器一般会有以下三种状态: 运行:进程正常运行。 暂停:进程暂停,CPU不再运行,但不会释放内存。 停止:进程终止,回收进程占用的内存、CPU等资源。 相关的命令如下: 命令 说明 docker run 创建并运行一个容器,正常情况下处于运行状态。 docker pause 让一个运行的容器暂停。例如docker pause my-debian。 docker unpause 让一个容器从暂停状态恢复运行。例如docker unpause my-debian。 docker stop 停止一个运行的容器。例如docker stop my-debian。 docker start 让一个停止的容器再次运行。例如...

拉取镜像 在使用容器前,需要先获取相对应的镜像。例如要在Docker中安装MySQL 5.7,需要先获取MySQL 5.7的Docker镜像。相应的命令为: 1docker pull mysql:5.7 命令的本质意思为,从Docker镜像仓库中获取版本为5.7的MySQL镜像。 在Docker中镜像的标识由两部分组成: Repository:通常是由镜像主要运行的软件名称组成。例如Tomcat的镜像的Repository就是tomcat。 Tag:通常代表镜像的版本。在没有显式指定Tag的情况下,Docker会给Tag一个默认值latest,代表当前镜像的最新版本。 例如拉取MySQL最新版本的镜像: 1docker pull...

DockerHub是一个官方的Docker镜像的托管平台,里面存放了人们配置好的镜像。这样的平台称为Docker Registry。 国内也有这样的Docker仓库,它们被称为Docker的镜像仓库或镜像源。这些镜像源都是与Docker官方仓库同步的。 例如导入腾讯的镜像源: 修改/etc/docker/daemon.json配置文件: 1vim /etc/docker/daemon.json 添加以下内容,并保存: 1{ 2 "registry-mirrors": [ 3 "https://mirror.ccs.tencentyun.com" 4 ] 5} 重启Docker: 1sudo systemctl restart...

分布式系统的部署问题 大多数Web服务都是运行在Linux系统之上,因为Linux开源、免费、安全、稳定等等。Linux计算机的架构大致如图: 计算机硬件:例如CPU、内存、磁盘等。 系统内核:所有Linux发行版的内核都是Linux。内核可以与计算机硬件交互,对外提供内核指令,用于操作计算机硬件。 系统应用:操作系统本身提供的应用、函数库。这些函数库是对内核指令的封装,使系统用起来更加方便。 应用与Linux计算机交互过程大致为: 应用调用操作系统应用(函数库),实现各种功能。 系统函数库是对内核指令集的封装,会调用内核指令。 内核指令操作计算机硬件。 Linux的发行版有很多很多,例如Debain、Ubuntu、CentOS等...

搭建MySQL主从数据库,首先需要满足以下条件: 至少两台以上服务器(可用虚拟机模拟); 两台服务器中MySQL的版本一致。 最好是使用刚安装的MySQL并且没有任何修改。 如果要配置从库的MySQL服务器中有数据库存在(或者是要给主库配置新的从库),还需要将该服务器中数据库的结构及其数据导出,并且导入到从库服务器中,保持主库和从库的状态一致(非常重要!!!)。 修改数据库配置 假设你已经满足了以上条件,准备开始配置主库。 修改主库的配置文件/etc/my.cnf: 1vim /etc/my.cnf 增加(修改)以下内容: 1[mysqld] 2# 主库Master 3log-bin=mysql-bin # [必须] 启用二进制日志...

API 测试工具

Postman Apifox(作者也在用) Apifox和Postman差不多,但是比Postman更易用。界面美观、支持中文。而且设置接口参数也很方便,还能自动生成随机的参数。支持将接口导出为HTML、Markdown、PDF等格式。在编写API测试时,还能用它来编写Markdown文档来进一步说明。 支持多种导入方式: 缺点就是每次开机第一次打开Apifox都需要等待一段时间的加载(也有可能是我机械硬盘太慢了)。 Swagger(Knife4j) Swagger是一款用于Java的API文档自动生成的框架。 Knife4j是Swagger的增强UI实现。并且Swagger和Knife4j可以无缝切换。...