openstack--rabbitmq

简介以及优势

IT体系架构发展过程
在这里插入图片描述
物理机架构:应用部署和运行在物理机上,一套应用一套服务器,使用率低下
虚拟化架构:将物理服务器虚拟成多个逻辑服务器,提高了物理服务器的资源使用率,节省成本,提高了虚拟化的功能
云计算架构:对虚拟化进行统一和高效管理,提供资源

什么是云计算

云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池
(资源包括网络、服务器、存储、应用软件、服务)

云计算所包容的几个层次服务
  • SaaS (Software as a Service):一种应用软件
  • PaaS (Platform as a Service):一个设备含有操作系统以及上面的应用
  • IaaS(Infrastructure as a Service):一个设备含有操作系统

OpenStack是一个开源的iaas云计算平台,用Python语言编写

社区与连接

官方文档:http://docs.openstack.org
社区:www.openstack.org
如何贡献源代码:http://wiki.openstack.org/HowToContribute
源代码管理:http://wiki.openstack.org/GerritWorkflow

什么是RabbitMQ?

MQ全称:message queue
是一种程序对应程序的通信方法
应用程序通过读写出入队列消息来通信

组件之间的通信一般有两种方式

1、组件之间直接通信
2、讲消息发送到一个中间件里
中间件——工作在两个或者多个软件之间
在这里插入图片描述

为什么要将消息放到中间件里?

因为松耦合的关系
耦合紧密度高,说明组件之间的依赖关系高,反之亦然
耦合度过高时,一个组件损坏停止工作,就会导致全盘崩溃
用中间件来降低耦合度,那么一个组件损坏时,只有它损坏,不影响其他组件工作
这就大大的提升了工作的效率

AMQP

高级消息队列协议
面向消息的中间件设计
消息的中间件主要用于组件之间的解耦合
消息的发送者无需知道消息的使用者存在,反之亦然

工作原理

在项目中,将一些无需及时返回且耗时的操作提取出来,进行异步处理。而这种方式大大的节省了服务器的请求响应时间,从而提高系统的吞吐量
1、客户端连接消息队列服务器,打开一个channel
2、客户端声明一个exchange并设置相关属性
3、客户端声明一个queue,并设置相关属性
4、客户端使用routing key在exchange和queue之间绑定关系
5、客户端投递消息到exchange
6、接收的消息后,根据消息在key和binding进行消息路由,讲消息投递到队列里

RabbiitMQ的metadata

RabbiitMQ的元数据可以持久化在RAM和disc
根据这个可以把节点分为RAM node和disc node
RAM node只会讲数据存储在RAM
RAM node会将数据持久化放在磁盘
但接待你只有disc node,集群可以有区分
增加或删除节点,RAM node启动时会从disc node下载最新数据,RAM 你的加入的时候要告诉全部disc node,
否则又是重启可能会失败,因为没有RAM node的数据加载

上述就是RabbiitMQ,如有什么错误,欢迎大家指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值