ubuntu erlang(ubuntu中文社区)
各位老铁们好,相信很多人对ubuntu erlang都不是特别的了解,因此呢,今天就来为大家分享下关于ubuntu erlang以及ubuntu中文社区的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
RabbitMQ在Ubuntu/Debian下的安装过程
在Ubuntu/Debian系统中安装RabbitMQ的详细步骤如下:
首先,确认要使用的RabbitMQ版本(例如3.12.7),并查找对应的Erlang版本(如25.0~26.1.x)。然后,检查系统中当前可用的Erlang和RabbitMQ版本,可能需要添加RabbitMQ团队在Cloudsmith上维护的额外软件源。
1.安装所需依赖后,添加RabbitMQ团队在Cloudsmith的签名密钥,以及Erlang和RabbitMQ的相应密钥。接着,编辑`/etc/apt/sources.list.d/rabbitmq.list`,将云存储库地址添加进去。确保根据你的系统版本(如Ubuntu 22.04,使用jammy)进行调整。
2.更新软件包列表并再次检查,确认已安装的Erlang和RabbitMQ版本是否满足需求。
接下来,开始安装:
-安装Erlang 26.1.1,命令如下:
-验证安装并查看版本信息。
-安装RabbitMQ 3.12.7,执行相应安装命令:
-检查RabbitMQ是否安装成功,通过访问localhost:15672进行验证。
此外,Linux系统中常用RabbitMQ命令包括:
-查看RabbitMQ服务状态,包括启动状态和自启动设置。
-管理RabbitMQ的开机自启、关闭、重启等操作。
最后,如果需要更多帮助,可以参考RabbitMQ的官方文档链接。
ubuntu 怎么安装 erlang
1:如果你主机上没有安装jdk,那需先安装,安装过程如下:
# sudo apt-get update(更新已安装的包)
#sudo apt-get install openjdk-7-jdk
# javac-version(检测版本)
2:安装erlang R17B的过程如下:
安装相关类库
# install libraries and tools:
sudo apt-get install libncurses5-dev m4 fop freeglut3-dev
libwxgtk2.8-dev g++ libssl-dev xsltproc build-essential tk8.5 unixodbc
unixodbc-dev libxml2-utils
下载erlang可以手动去官网下载:
# download source code wget
# tar zxvf otp_src_R17B.tar.gz(解压)
# cd otp_src_R17B/(进入到解压好的文件夹中)
编译安装
#./configure--prefix=/opt/erlang(指定安装目录)
# make(编译)
# make install(安装)
更新环境变量
# vim/etc/profile
在最后一行加上
export PATH=/opt/erlang/bin:$PATH
保存退出后
source/etc/profile
命令行中输入erl看是否安装成功!
MQ对比之RabbitMQ & Redis
消息队列选择:RabbitMQ& Redis
RabbitMQ是基于Erlang语言的AMQP(Advanced Message Queue)开源产品,作为消息代理,接收消息并传递给消费者。生产者(P)发送消息至队列,消费者(C)接收消息,消息在RabbitMQ中通过队列传输。多个生产者可向同一队列发送消息,多个消费者可从同一队列接收消息。
RabbitMQ架构包含组件,如消息生产者、消息消费者、队列、交换器、路由键等。
Redis是高性能的键值数据库,具有以下三个特点:
设计用于缓存。
可以作为消息队列使用。
提供阻塞式API,支持FIFO。
Redis优势在于:
适合作为消息队列。
利用list对象实现队列操作。
通过blpop、brpop接口和Pub/Sub接口实现阻塞式API。
RabbitMQ与Redis简单对比:
Redis消息队列不支持自动处理失败的worker,数据不会自动回到队列;而RabbitMQ支持。
RabbitMQ提供持久化功能,保障数据传输过程中的安全性。
RabbitMQ有更完善的MQ机制,包括消息确认机制来保证消息不丢失。
RabbitMQ的消息确认机制:客户端取出消息后处理完成,发送ack给RabbitMQ,消息从队列中移除;若客户端异常退出,消息将重新放回队列,供其他客户端处理,确保消息不丢失。
RabbitMQ demo:生产者消费者模式(不发送ack,模拟程序中断)
当生产者不发送ack时,若消费者遇到异常,RabbitMQ会将任务重新添加到队列中。
正常发送ack的消费者:发送ack后,消息从队列中移除,再次查看队列已无消息。
RabbitMQ其他特性包括发布/订阅、路由、主题和RPC等,可参考相关资料进一步了解。
另外,可以考虑使用其他语言实现RabbitMQ实践,例如golang,例如Ubuntu14.04+RabbitMQ3.6.3+Golang的最佳实践。