上一篇<<RabbitMQ 上手记录-part 1>>介绍了一些基础知识,整理了一些基础概念.接下来整理一些安装步骤和遇到的问题. 我在CentOS7和Ubuntu16.4上都安装成功过,步骤大同小异,这里以CentOS7为例子,整理一下安装步骤. CentOS是属于Red Hat Enterprise Linux系列的发行版,所以在RabbitMQ官方的安装指南里,需要参考RPM-based的安装指南http://www.rabbitmq.com/install-rpm.html…
接上一part<<RabbitMQ上手记录–part 2 - 安装RabbitMQ>>,这里我们来看看如何通过代码实现对RabbitMQ的调用. RabbitMQ通常是安装在服务器端,那么要体现它的功能,当然还需要一个客户端来调用.这个客户端通常就是我们的业务系统,那么如何操作RabbitMQ呢?不可能让程序员写底层的传输代码或者局限于用erlang开发语言.RabbitMQ已经贴心的准备好了API Client,没错就是程序员喜闻乐见的API(或者说是调包). RabbitMQ官…
上一part<RabbitMQ上手记录–part 5-节点集群高可用(多服务器)>讲到了通过多个服务器来搭建RabbitMQ的节点集群,示例当中提到的服务器都是在同一个局域网中的(实际上是一个机器上的多个不同虚拟机而已),这种使用方式适用于在同一个数据中心的情况.互联网里常常提到异地多活.多数据中心来实现更高级别的高可用.我的理解是当数据或者访问量超过当个数据中心规模时,通过更多的数据中心来提供更多的访问量支持,同时当某地数据中心出问题时,也不会让数据因为都放在同一个数据中心而导致整个系统宕机…
上一part<RabbitMQ上手记录–part 4-节点集群(单机多节点)>中介绍了RabbitMQ集群的一些概念以及实现了在单机上运行多个节点,并且将多个节点组成一个集群. 通常情况下的集群节点是不会都放在一个服务器上的,实际情况是分布在不同的服务器上,所以这里我们将会把集群节点部署在多个服务器上.同时基于集群节点我们会接着实现负载均衡,并且通过代码来演示在某个节点宕机之后,能自动连接到集群里的另外一个节点. 这部分演练将会用到负载均衡技术,具体就不详细说了,这个技术是分布式系统中非常基础…
ExpandoObject与DynamicObject的使用   using ImpromptuInterface; using System; using System.Dynamic; namespace ConsoleApp2 { class Program { static void Main(string[] args) { dynamic expando = new ExpandoObject(); expando.name = "cys"; expando.Add = n…
1.安装EPEL-7: rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 2.安装erlang 语言环境: yum install erlang xmlto erl --version #Erlang > R16 3.安装rabbitmq rpm包: wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rab…
最近在学习Spring Cloud,其中消息总线Spring Cloud Bus是必不可少的,但是Spring Cloud Bus目前只支持RabbitMQ和kafka,因此学习RabbitMQ势在必行,今天先从最基本的安装开始.安装之前我们先认识下RabbitMQ. 一.初识RabbitMQ 百度百科有这么一句话: MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息, 而另一端则可以读取或者订阅队列中的消息. MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务…
现在互联网应用动不动就说要HA,好像不搞个HA都不好意思说自己的应用能承载高并发,大用户量访问.RabbitMQ这个经典的消息组件,也必然逃不掉单点失效的尴尬局面.当然在RabbitMQ在被广泛应用于互联网之后,就对这个HA的需求做了实现,提供了集群供.这是RabbitMQ的内置功能,就跟普通集群的作用一样,就是在某个节点发生异常时,让生产者和消费者能保持通讯状态,同时通过提供更多的节点来增加系统的吞吐量. RabbitMQ集群简介 RabbitMQ的集群实现是基于OTP分布式通讯框架实现的,该…
RabbitMQ是什么,不用多介绍了,毕竟名声在那,江湖地位摆着,搜索引擎收录着.为什么突然去学习这个框架了,毕竟工作中没有用得上(说来也惭愧,工作中开发的项目没有使用这个框架).但是作为互联网分布式应用必不可少的一部分——消息服务,总要补上这块只是空白,不然每次被别人问道消息服务是干嘛的,总是很尴尬的转移到发邮件.短信的服务那块去.更重要的是要有这块知识准备,哪天用户量上来的或者被委以重任,也能够独当一面. 消息服务功能 消息服务能干嘛呢,当然不是仅仅发送个消息那么简单.据我个人知道的一般分布…
上篇文章中,已经介绍了celery和RabbitMQ的安装以及基本用法. 本文将从工程的角度介绍如何使用celery. 1.配置和启动RabbitMQ 请参考celery+RabbitMQ实战记录. 2. 安装和使用celery 2.1 创建虚拟环境,并安装celery $ mkdir celery_demo $ cd celery_demo $ virtualenv -p python3 venv3 $ ./venv3/bin/pip install celery 项目的目录结构说明: --…