阿里云运维技术栈 2020-11-13

本文档描述当前“20201111”光棍节阿里云运维技术栈:
是阿里云安全等保3文档的后继服务记录和部署记录及常见问题补充

一 RDS服务后端备份的“DBS存储服务”:

前言:
采购了RDS服务之后,需要进行服务的日常数据备份:
在RDS数据控制面板中,可以见到左侧菜单:“数据恢复”按钮,点开就能看到相关的右侧内容。

 

关于RDS服务有相关如下常识性知识链接:
-1 十分钟了解云数据库RDS:
https://help.aliyun.com/document_detail/67687.html?spm=5176.208363.1107630.3.689f1313tQ9azr

-2 RDS 学习路径:
https://help.aliyun.com/learn/learningpath/rds.html?spm=5176.2020520165.121.d998.6ff77029uLx2wl

 

-3 使用DBS备份MySQL:
https://help.aliyun.com/document_detail/187011.html?spm=a2c4g.11174283.6.571.e3643635sGpR0B

 

1 根据阿里云官网上介绍的方法将RDS数据库服务进行备份:
https://help.aliyun.com/knowledge_detail/41817.html 需要使用开源软件Percona Xtrabackup可以用于对数据库进行备份恢复,可以使用该软件将云数据库MySQL的备份文件恢复到自建数据库中,本文将介绍详细的操作步骤。

 

根据百度到的资料,这种方式只能:恢复到自建的数据库中。如果需要在线进行秒级恢复,则需要使用阿里云的DBS数据库备份套餐策略。(处于这个打算,采购的DBS备份服务)

目前备份的做法:每周进行7次创建备份数据,可以下载后恢复到本地数据库:
具体相关文档:
参看刘方明的RDS数据库文档。


二 通过阿里云提供的“阿里云RDS通过克隆实例恢复到主实例
http://www.alibjyun.com/introduction/o3398.html 没弄过

 

 使用DBS备份MySQL 最终用这个! 

https://help.aliyun.com/document_detail/187011.html?spm=a2c4g.11174283.6.571.e3643635sGpR0B

 

四 学习路径:
https://help.aliyun.com/learn/learningpath/rds.html?spm=5176.2020520165.121.d998.6ff77029uLx2wl


五 以下这个文档将完善所有的备份工作过程和相关的恢复记录

 

二 RabbitMQ消息中间件服务:
由于阿里云的消息队列太贵,所以自己搭建的RabbitMQ集群和进行的数据持久化。

相关术语:

二 RabbitMQ消息中间件服务:
由于阿里云的消息队列太贵,所以自己搭建的RabbitMQ集群和进行的数据持久化。

RabbitMQ 基本介绍

RabbitMQ的设计理念是.只要有接收消息的队列. 邮件就会存放到队列里. 直到订阅人取走. . 如果没有可以接收这个消息的消息队列. 默认是抛弃这个消息的..

我实现的功能是将远程实现两

Publisher:

          是Message的生产者,Publisher这个Clients产生了一些Message。

Consumer:

          Message的消费者,Publisher产生的Message,最终要到达Consumer这个Clients,进行消费。

Exchange:

         指定消息按什么规则,路由到哪个Queue,Message消息先要到达Exchange,在Server中承担着从Produce接收Message的责任。

Queue:

         到达Exchange的消息,根据制定的规则(Routing key)到达对应的Queue,在Server中承担着装载Message,是Message的容器,等待被消费出去。

Routing key:

         在Exchange和Queue之间隐藏有一条黑线,可以将这条黑线看成是Routing key,Exchange就是根据这些定义好的Routing key将Message送到对应的Queue中去,是Exchange和Queue之间的桥梁。

Broker:

        之前一直不理解这个Broker,其实Broker就是接收和分发消息的应用,也就是说RabbitMQ Server就是Message Broker。

VirtualHost:

        虚拟主机,一个Broker里可以开有多个VirtualHost,它的作用是用作不同用户的权限分离。 

Connection:

       是Publisher/Consumer和Broker之间的TCP连接。断开连接的操作只会在Publisher/Consumer端进行,Broker不会断开连接,除非出现网络故障或者Broker服务出现问题,Broker服务宕了。

Connection: Channel: 

        如果每一次访问RabbitMQ就建立一个Connection,那在消息量大的时候建立TCP Connection的开销就会很大,导致的后果就是效率低下。

左边的Client向右边的Client发送消息,流程:
       第一:获取Conection
       第二:获取Channel
       第三:定义Exchange,Queue
       第四:使用一个RoutingKey将Queue Binding到一个Exchange上
       第五:通过指定一个Exchange和一个RoutingKey来将消息发送到对应的Queue上,
       第六:Consumer在接收时也是获取connection,接着获取channel,然后指定一个Queue,到Queue上取消息,它对Exchange,RoutingKey及如何Binding都不关心,到对应的Queue上去取消息就行了。

        一个Publisher Client发送消息,哪些Consumer Client可以收到消息,在于Exchange,RoutingKey,Queue的关系上。

       RabbitMQ的简单理论知识就介绍这么多,下篇博客介绍RabbitMQ在CentoOS7上的安装和配置。

 

 

首先要区别AMQP协议mandatory和immediate标志位的作用。

 

mandatory和immediate是AMQP协议中basic.pulish方法中的两个标志位,它们都有当消息传递过程中不可达目的地时将消息返回给生产者的功能。具体区别在于:
1. mandatory标志位
当mandatory标志位设置为true时,如果exchange根据自身类型和消息routeKey无法找到一个符合条件的queue,那么会调用basic.return方法将消息返还给生产者;当mandatory设为false时,出现上述情形broker会直接将消息扔掉。
2. immediate标志位
当immediate标志位设置为true时,如果exchange在将消息route到queue(s)时发现对应的queue上没有消费者,那么这条消息不会放入队列中。当与消息routeKey关联的所有queue(一个或多个)都没有消费者时,该消息会通过basic.return方法返还给生产者。

 

如想使用RabbitMQ 需要先安装 erlang 虚拟机 在安装RabbitMQ 服务器 具体实现请查看 我的上一篇博客

具体的代码参考请参考参考资料 良心制作 环境Springboot +maven +IDEA

 https://gitee.com/xdymemory00/RabbitMQ.git

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值