首先明确一下Erlang的应用场景:
-
该应用程序需要处理大量并发活动。
-
它应该可以很容易地在计算机网络上分发。
-
应该有一种使应用程序对软件和硬件错误都容错的工具。
-
该应用程序应该是可伸缩的。这意味着它应该能够跨越多个服务器,而几乎没有变化。
-
它应该易于升级和重新配置,而不必停止和重新启动应用程序本身。
-
该应用程序应在一定严格的时间范围内对用户做出响应。
Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。Erlang问世于1987年,经过十年的发展,于1998年发布开源版本。Erlang是运行于虚拟机的解释性语言,但是现在也包含有乌普萨拉大学高性能Erlang计划(HiPE)开发的本地代码编译器,自R11B-4版本开始,Erlang也开始支持脚本式解释器。在编程范型上,Erlang属于多重范型编程语言,涵盖函数式、并发式及分布式。顺序执行的Erlang是一个及早求值,单次赋值和动态类型的函数式编程语言。
Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适 合于构建分布式,实时软并行计算系统。使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅 只是一两个环节,比起C程序的线程切换要高效得多得多了。
使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。Erlang运行时环境是一个虚拟机,有点像Java虚拟机,这样代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断 的情况下更新。另外如果需要更高效的话,字节代码也可以编译成本地代码运行。
其次了解一下RabbitMQ:
RabbitMQ是一款使用Erlang语言开发的,实现AMQP(高级消息队列协议)的开源消息中间件。要知道一些RabbitMQ的特点[官网]:
- 可靠性。支持持久化,传输确认,发布确认等保证了MQ的可靠性。
- 灵活的分发消息策略。这应该是RabbitMQ的一大特点。在消息进入MQ前由Exchange(交换机)进行路由消息。分发消息策略有:简单模式、工作队列模式、发布订阅模式、路由模式、通配符模式。
- 支持集群。多台RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker。
- 多种协议。RabbitMQ支持多种消息队列协议,比如 STOMP、MQTT 等等。
- 支持多种语言客户端。RabbitMQ几乎支持所有常用编程语言,包括 Java、.NET、Ruby 等等。
- 可视化管理界面。RabbitMQ提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker。
- 插件机制。RabbitMQ提供了许多插件,可以通过插件进行扩展,也可以编写自己的插件。
然后要清楚RabbitMQ与Erlang的版本对应关系:
RabbitMQ Erlang Version Requirements — RabbitMQ
下载与安装:
下载安装就一直next就好了(推荐安装到c盘默认目录,不然可能会报错)
先安装Erlang,配置环境变量,最后在控制台输入
erl
验证,出现版本号即为安装成功
再安装RabbitMQ,并在其中安装RabbitMQ-Plugins
打开命令行cd,输入RabbitMQ的sbin目录,然后输入
rabbitmq-plugins enable rabbitmq_management
进行安装,最后输入
rabbitmqctl status
验证是否安装成功
进入http://localhost:15672
账号密码都为guest
出现的问题:
1. Authentication failed (rejected by the remote node), please check the Erlang cookie
需要修改(我使用的Sublime text软件修改文本)
C:\Windows\System32\config\systemprofile\.erlang.cookie
C:\User\{{电脑用户名}}\.erlang.cookie
这两处的文件使之一致
2.start the node
就我而言,是靠重新安装RabbitMQ和Erlang到c盘默认地址就解决了