RabbitMQ持久化消息

RabbitMQ持久化消息

RabbitMQ实现持久化消息需满足以下3个条件:

  1. delivery_mode=2
  2. 使用durable=True声明exchange是持久化
  3. 使用durable=True声明queue是持久化

delivery_mode

delivery_mode=2指明message为持久的.
delivery_mode 投递消息模式
1 . ram
2 . disc
设置为disc后能从AMQP服务器崩溃中恢复消息–持久化

查看更多

分享到

RabbitMQ用户增删及权限控制

RabbitMQ用户增删及权限控制

用户角色分类

none:无法登录控制台

不能访问 management plugin,通常就是普通的生产者和消费者。

management:普通管理者。

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对policies进行管理。用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。

查看更多

分享到

RabbitMQ磁盘警报

RabbitMQ磁盘警报

当可用磁盘空间低于配置的限制(默认为50MB)时,将触发警报,所有生产者将被阻止。目标是避免填满整个磁盘,这将导致节点上的所有写操作失败,并可能导致RabbitMQ终止。为了减少填满磁盘的风险,所有传入的消息都被阻止。在内存不足的情况下,瞬时消息仍然被分页到磁盘,并且会占用已经有限的磁盘空间。如果磁盘警报设置得太低,并且信息被快速转出,则可能会耗尽磁盘空间,并在磁盘空间检查(至少间隔10秒)之间崩溃RabbitMQ。更保守的方法是将限制设置为与系统上安装的内存量相同.
如果可用磁盘空间量低于配置的限制,则会触发警报。代理程序数据库使用的驱动器或分区的可用空间将至少每10秒钟进行一次监视,以确定是否应提高或清除磁盘警报。代理启动后,监控将立即开始,导致代理日志文件中的条目:

1
2
=INFO REPORT==== 23-Jun-2012::14:52:41 ===
Disk free limit set to 953MB

查看更多

分享到

RabbitMQ镜像策略set_policy

RabbitMQ镜像策略set_policy

添加vhosts

1
2
3
rabbitmqctl add_vhost <vhost>
rabbitmqctl delete_vhost <vhost>
rabbitmqctl list_vhosts [<vhostinfoitem> ...]

参数设置格式:

1
2
3
4
5
6
7
8
9
10
11
#设置
rabbitmqctl set_policy [-p <vhost>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern> <definition>

<!--more-->


#清除
rabbitmqctl clear_policy [-p <vhost>] <name>

#查看
rabbitmqctl list_policies [-p <vhost>]

例如:

1
2
3
4
5
6
7
8
9
10
11
##set_policy
rabbitmqctl set_policy -p vh_test1 ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

Setting policy "ha" for pattern "^" to "{\"ha-mode\":\"all\",\"ha-sync-mode\":\"automatic\"}" with priority "0"


##list_policies
rabbitmqctl list_policies -p vh_test1

Listing policies
vh_test1 ha all ^ {"ha-mode":"all","ha-sync-mode":"automatic"} 0
1
2
3
4
##clear_policy
rabbitmqctl clear_policy -p vh_test1 ha

Clearing policy "ha"

参数

ha-mode:策略键
1.all 队列镜像在群集中的所有节点上。当新节点添加到群集时,队列将镜像到该节点
2.exactly 集群中的队列实例数。
3.nodes 队列镜像到节点名称中列出的节点。

ha-sync-mode:队列同步
1.manual手动<默认模式>.新的队列镜像将不会收到现有的消息,它只会接收新的消息。
2.automatic自动同步.当一个新镜像加入时,队列会自动同步。队列同步是一个阻塞操作。

为用户赋权:

1
rabbitmqctl  set_permissions -p /vhost1  user_admin '.*' '.*' '.*'

该命令使用户user_admin具有/vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源

分享到

RabbitMQ高可用镜像队列

RabbitMQ高可用镜像队列


在分布式系统中,通常使用多个术语来标识主要副本和辅助副本。本指南通常使用“主”来引用队列的主要副本,而对于辅助副本则使用“镜像”。但是,你会发现“master”在这里和那里使用。这是因为RabbitMQ CLI工具历史上一直使用术语“master”来指代辅助。因此这两个术语目前可以互换使用,但我们希望最终摆脱传统的术语。

如何配置镜像

镜像参数是使用策略配置的。策略按名称(使用正则表达式模式)匹配一个或多个队列,并包含添加到匹配队列的整个属性集中的定义(可选参数的映射)。有关策略 的更多信息,请参阅运行时参数和策略。

参考文档:http://www.rabbitmq.com/parameters.html#policies

控制镜像的队列参数

如上所述,队列通过策略启用镜像。政策可以随时更改; 创建一个非镜像的队列是有效的,然后在稍后的某个点上镜像(反之亦然)。非镜像队列和没有任何镜像的镜像队列之间是有区别的 - 前者缺少额外的镜像基础架构,可能会提供更高的吞吐量。

查看更多

分享到

Rabbitmq中rabbitmq.config配置

rabbitmq.config

1
2
3
4
5
6
7
8
9
[
{rabbit, [{vm_memory_high_watermark_paging_ratio, 0.4},
{vm_memory_high_watermark, 0.4}]}
].

[{rabbit, [{vm_memory_high_watermark, {absolute, "8192MiB"}},
{vm_memory_high_watermark_paging_ratio, 0.5},
{disk_free_limit, 307200000000}
]}].

vm_memory_high_watermark
默认值:0.4
代表已安装RAM的40%.

查看更多

分享到

生产环境Rabbitmq集群安装

生产环境Rabbitmq集群安装

创建用户

创建用户名
sudo adduser rabbitmq

添加到sudo组里面
sudo usermod -a -G sudo rabbitmq

查看更多

分享到

关于Apache Spark

关于Apache Spark

Apache Spark是一个开放源码,Hadoop兼容,快速,富于表现力的集群计算平台。它是在加州大学伯克利分校的AMPLabs创建的,作为伯克利数据分析平台(BDAS)的一部分。它已经成为一个顶级的Apache项目。图4显示了当前Apache Spark堆栈的各种组件。

它有五大优点:

  1. 闪电的计算速度,因为数据被加载到分布式存储器(RAM)的机器集群上。可以对数据进行快速转换,并根据需要进行缓存,以便后续使用。已经注意到,由于内存不足,一些数据溢出到磁盘上时,Apache
    Spark会比Hadoop Map更快地处理数据,当所有数据都适合内存时,数据速度提升10倍。
    enter image description here
  2. 通过Java,Scala,Python,SQL(用于交互式查询)内置的标准API可以很方便地访问,并且具有丰富的机器学习库可用于开箱即用。
  3. 与现有的Hadoop v1(SIMR)和2.x(YARN)生态系统的兼容性使公司能够利用其现有的基础架构。
  4. 方便的下载和安装过程。方便的shell(REPL:Read-Eval-Print-Loop)交互式学习API。
  5. 提高生产率,因为高层次结构将重点放在计算内容上。

查看更多

分享到

如何安装Apache Spark

如何安装Apache Spark

下表列出了一些重要的链接和先决条件:

当前版本 1.0.1 @ http://d3kbcqa49mib13.cloudfront.net/spark-1.0.1.tgz
下载页面 https://spark.apache.org/downloads.html
JDK版本(必填) 1.6以上
Scala版本(必填) 2.10以上
Python(可选) [2.6,3.0)
简单构建工具(必需) http://www.scala-sbt.org
开发版本 git clone git://github.com/apache/spark.git
Building说明 https://spark.apache.org/docs/latest/building-with-maven.html
Maven 3.0以上

Apache Spark可以配置为独立运行,也可以在Hadoop V1 SIMR或Hadoop 2 YARN / Mesos上运行。Apache Spark需要Java,Scala或Python中等技能。这里我们将看到如何在独立配置中安装和运行Apache Spark。

  1. 安装JDK 1.6+,Scala 2.10+,Python [2.6,3)和sbt
  2. 下载Apache Spark 1.0.1发行版
  3. 在指定的目录中解压缩并解压缩spark-1.0.1.tgz

查看更多

分享到

浅谈HDFS-20170705

Hadoop分布式文件系统(HDFS)是一种分布式文件系统,用于在商品硬件上运行。它与现有的分布式文件系统有很多相似之处。然而,与其他分布式文件系统的区别很大。HDFS具有高度的容错能力,旨在部署在低成本的硬件上。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大数据集的应用程序。HDFS放宽了一些POSIX要求,以便对文件系统数据进行流式访问。HDFS最初是作为Apache Nutch网页搜索引擎项目的基础设施构建的。HDFS现在是一个Apache Hadoop子项目。项目URL为http://hadoop.apache.org/hdfs/

enter image description here
NameNodeDataNodes
HDFS具有主/从结构。HDFS集群由单个NameNode组成,一个主服务器,用于管理文件系统命名空间,并调节客户端对文件的访问。
此外,还有一些DataNodes,通常是集群中每个节点的一个,它们管理连接到运行的节点的存储。HDFS公开了文件系统命名空间,并允许将用户数据存储在文件中。
在内部,文件被分割成一个或多个块,这些块被存储在一组数据节点中。
NameNode执行文件系统命名空间操作,如打开,关闭和重命名文件和目录。它还确定块到DataNodes的映射。DataNodes负责从文件系统的客户端提供读取和写入请求。

查看更多

分享到