镜像

RabbitMQ 如何保证消息不丢失?

早过忘川 提交于 2020-01-13 04:45:38
RabbitMQ一般情况很少丢失,但是不能排除意外,为了保证我们自己系统高可用,我们必须作出更好完善措施,保证系统的稳定性。 下面来介绍下,如何保证消息的绝对不丢失的问题,下面分享的绝对干货,都是在知名互联网产品的产线中使用。 1.消息持久化 2.ACK确认机制 3.设置集群镜像模式 4.消息补偿机制 第一种:消息持久化 RabbitMQ 的消息默认存放在内存上面,如果不特别声明设置,消息不会持久化保存到硬盘上面的,如果节点重启或者意外crash掉,消息就会丢失。 所以就要对消息进行持久化处理。如何持久化,下面具体说明下: 要想做到消息持久化,必须满足以下三个条件,缺一不可。 1) Exchange 设置持久化 2)Queue 设置持久化 3)Message持久化发送:发送消息设置发送模式deliveryMode=2,代表持久化消息 第二种:ACK确认机制 多个消费者同时收取消息,比如消息接收到一半的时候,一个消费者死掉了(逻辑复杂时间太长,超时了或者消费被停机或者网络断开链接),如何保证消息不丢? 这个使用就要使用Message acknowledgment 机制,就是消费端消费完成要通知服务端,服务端才把消息从内存删除。 这样就解决了,及时一个消费者出了问题,没有同步消息给服务端,还有其他的消费端去消费,保证了消息不丢的case。 第三种:设置集群镜像模式

Docker学习2.0 容器数据卷以及DockerFile的使用

ぃ、小莉子 提交于 2020-01-13 03:40:49
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像id/镜像名 容器里有了这个文件夹 宿主机也有了这个文件夹 这时候你给宿主机或者容器添加文件修改文件,二者都会同步更新。 就算容器关闭之后,重启,容器内的容器卷也会同步宿主机的内容。 docker inspect 容器id/容器名 会发现宿主机的卷文件夹和容器的卷文件夹绑定了 这里的Mode没有值,默认是可读可写 3. 我们用第一个命令创建容器卷双方都具有读写权限,可是如何设置容器只有读的权限呢 只要在容器卷路径上加上:ro 意思是readonly 4. docker run -it -v 宿主机路径:容器路径:ro 镜像id/镜像名 运行这条命令之后 我们再docker inspect 容器id 发现Mode 的值 为ro 只读 大家可以在容器里面创建一个文件,或者修改一个文件,会发现失败。 5. 编写Dockefile 其中VOLUMES [] 表明容器有多个卷对应主机的卷文件夹,默认会给主机创建两个卷文件夹与你Dockerfile写的对应 6. 使用DockerFile构建镜像并运行 docker build -f 文件路径 -t 镜像名 . 7. 我们docker inspect 容器id 会发现每个容器卷文件夹有一个与之对应的主机文件夹 8. 容器数据卷 让一个容器继承另一个容器的数据卷

Docker常用命令与知识点汇总

一个人想着一个人 提交于 2020-01-13 02:50:01
docker镜像基本操作 docker的命令总是要以root的权限运行 1. 查看本地镜像 docker images 2. 搜索镜像 docker search centos 3. 搜索镜像并过滤是官方的 docker search --filter "is-official=true" centos 4. 搜索镜像并过滤大于多少星星的镜像 docker search --filter stars=10 centos 5. 下载centos7镜像 docker pull centos:7 6. 修改本地镜像的名称 docker tag centos:7 mycentos:1 7. 本地镜像删除 docker rmi centos:7 镜像与容器 可以理解为iso文件与用其安装出来的centos系统 基本操作 1. 构建容器 docker run -itd --name=mycentos centos:7 * -i 表示以交互模式运行容器(让容器的标准输入保持打开) * -d 表示后台运行容器,并返回容器ID * -t 为容器重新分配一个伪输入终端 * --name 为容器指定名称 2. 查看本地所有的容器 docker ps -a 3. 查看本地正在运行的容器 docker ps 4. 停止容器 docker stop CONTAINER_ID / CONTAINER_NAME

Docker 命令

喜欢而已 提交于 2020-01-13 02:16:25
Docker镜像管理 搜索镜像: docker search 获取镜像: docker pull 查看镜像: docker images 删除镜像: docker rmi 构建镜像: docker build -t <镜像名> <Dockerfile路径> Docker容器管理 启动容器: docker run –name -h hostname       docker run -d -P nginx -d 运行在后台 -P 代表随机映射 nginx 镜像的名称 停止容器: docker stop CONTAINER ID 查看容器: docker ps -a -l 进入容器: docker exec | docker attach |nsenter 删除容器: docker rm 查看容器日志: docker logs CONTAINER ID 下面是危险命令! 杀死所有正在运行的容器: [ root@linux - node1 ~]# docker kill $ ( docker ps - a - q ) 1a29a9cdffdf 30c74a556850 删除所有容器(只有先停止才可以删除) [ root@linux - node1 ~]# docker rm $ ( docker ps - a - q ) 30c74a556850 b2bef96c8330 Docker

ubuntu更换软件源

蹲街弑〆低调 提交于 2020-01-13 02:10:02
前言:   上一篇文章记录了树莓派4更换软件源的操作方式。那么这里有个问题,树莓派4和树莓派3更换软件源方式一样么?和Ubuntu等操作系统比呢?Ubuntu不同版本更换软件源方式有没有区别?   这里先把答案甩出来。 假设操作系统的版本不同,那么更换软件源一定有区别。   Ubuntu16.04和Ubuntu18.04一定不一样,树莓派4的raspbian buster和树莓派3的raspbian也一定不一样。   接下来的问题是,不一样在哪里?   这里再把答案甩出来。 区别在于版本号,或者叫系统代号。   本人的操作系统是Ubuntu16.04,在命令行中输入: lsb_release - c   可见Ubuntu16.04的代号叫xenial。   不同版本的Ubuntu对应不同的代号:   Ubuntu 12.04 (LTS)代号为precise。   Ubuntu 14.04 (LTS)代号为trusty。   Ubuntu 15.04 代号为vivid。   Ubuntu 15.10 代号为wily。   Ubuntu 16.04 (LTS)代号为xenial。   Ubuntu 18.04 (LTS)代号为bionic。   sources.list 文件的条目格式中有系统版本代号,不同的版本要对应不同的代号,不然无法生效镜像源。这也解释了盲扒博客为啥翻车。

Docker系列之3 镜像管理

南笙酒味 提交于 2020-01-13 01:49:33
什么是Docker镜像 镜像包含了系统及应用。镜像可以用来创建容器,镜像本身是不可写入的,容器就是在镜像的最顶部新增可写层实现数据写入,这个可写成是临时的,不会影响到镜像,镜像在定制完后数据是不会产生变更的。 镜像基本管理命令 从仓库拉取Docker镜像 docker pull <Image:Tag> 查看本地已有镜像 docker iamges 从仓库中搜索镜像,默认从Docker Hub上搜索 docker search <Image> 重命名镜像名称或标签 docker tag <CurrentImage:CurrentTag> <NewImage:NewTag> 上传本地镜像到远程仓库中 docker push <Image:Tag> 删除本地镜像 docker rmi <Image:Tag> 导出镜像成文件 docker save <Image:Tag> -o <FileName> 导入镜像到本地仓库中 docker load -i <FileName> 使用Dockerfile生成镜像 docker build -t <Image:Tag> <DockerfilePath> 来源: CSDN 作者: 叶康铭 链接: https://blog.csdn.net/m0_38030719/article/details/103949983

Spring Boot与Docker

社会主义新天地 提交于 2020-01-13 00:49:47
Spring Boot与Docker 转载于尚硅谷 五、Docker 1、简介 Docker 是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像; 运行中的这个镜像称为容器,容器启动是非常快速的。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x4LQmbdK-1578836002604)(images/搜狗截图20180303145450.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P879m7lJ-1578836002605)(images/搜狗截图20180303145531.png)] 2、核心概念 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上); docker客户端(Client):连接docker主机进行操作; docker仓库(Registry):用来保存各种打包好的软件镜像; docker镜像(Images):软件打包好的镜像;放在docker仓库中; docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img

mysql集群环境搭建

不想你离开。 提交于 2020-01-12 22:56:25
1、更换yum 镜像源   wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo   yum clean all 2、更新软件包和内核   yum update -y 3、安装并运行docker   yum install docker -y   systemctl start docker 4、配置阿里云docker镜像加速器 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://tti3o6j1.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 5、docker search percona-xtradb-cluster 6、docker pull docker.io/percona/percona-xtradb-cluster 获取镜像 7、docker volume create --name v1 8 、docker network create --subnet=172.18.0.0/24 net1 9、用此镜像生成五个容器