erlang

一丶RabbitMQ初识与安装

六眼飞鱼酱① 提交于 2020-03-18 11:21:59
某厂面试归来,发现自己落伍了!>>> 一.RabbitMQ是什么? RabbitMQ是一个开源消息代理和队列服务器,用来通过普通的协议在完全不同的应用之间共享数据,RabbitMQ使用的是Erlang语言编写的,并且是基于AMQP协议的。 二.为什么使用RabbitMQ 1.开源,性能优秀,性能稳定保障 2.提供可靠的消息投递(confirm),返回模式(return) 3.与SpringAMQP完美整合,API丰富 4.集群模式丰富,表达式配置,HA模式,镜像队列模型 5.保证数据不掉失可靠,可用性 三.RabbitMQ高性能的原因? 1.erlang最初用于交换机架构模式,使得rabbitmq在broker之间进行数据交互性能非常优秀 2.erlang的优点:有着和原生的socket一样的延迟 四.linux安装 准备一台Linux虚拟机,老师的机器是Linux7(CentOS 7);配置最好再2G内存以上哦,然后使用Xshell登录上去即可,注意准备工作非常重要哦。首先我们确认你的虚拟机是否能够和本机Ping通,检查虚拟机和本机的网络、防火墙等基础设施。 进入安装: ## 1. 首先在Linux上进行一些软件的准备工作,yum下来一些基础的软件包 yum install build-essential openssl openssl-devel unixODBC

每日进步一点点:解读消息中间件—RabbitMQ(集群原理与搭建篇)

亡梦爱人 提交于 2020-03-17 22:51:53
摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。 对于RabbitMQ这么成熟的消息队列产品来说,搭建它并不难并且也有不少童鞋写过如何搭建RabbitMQ消息队列集群的博文,但可能仍然有童鞋并不了解其背后的原理,这会导致其遇到性能问题时无法对集群进行进一步的调优。本篇主要介绍RabbitMQ集群方案的原理,如何搭建具备负载均衡能力的中小规模RabbitMQ集群,并最后给出生产环境构建一个能够具备高可用、高可靠和高吞吐量的中小规模RabbitMQ集群设计方案。 一、RabbitMQ集群方案的原理 RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现)。因此,RabbitMQ天然支持Clustering。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过ZooKeeper分别来实现HA方案和保存集群的元数据。集群是保证可靠性的一种方式

RabbitMQ3.7.12-1 安装记录

こ雲淡風輕ζ 提交于 2020-03-17 20:05:16
某厂面试归来,发现自己落伍了!>>> linux 安装 RabbitMQ3.7.12-1 记录 安装Erlang依赖环境 相关命令 curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash 查看结果 https://packagecloud.io/rabbitmq/erlang/el/7/x86_64/repodata/repomd.xml: [Errno -1] Gpg Keys not imported, cannot verify repomd.xml for repo rabbitmq_erlang Generating yum cache for rabbitmq_erlang-source... The repository is setup! You can now install packages. 导入rabbitmq签名密钥(使RPM工具信任存储库中提供的包上的签名) rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc 这里需要注意

[Erlang 0034] Erlang iolist

夙愿已清 提交于 2020-03-16 18:54:40
问题的缘起是芒果在使用mochiweb的过程中遇到一个异常,在google的讨论组中我找到了同样的问题: =ERROR REPORT==== 7-Apr-2011::18:58:22 === "web request failed" path: "cfsp/entity" type: error what: badarg trace: [{erlang,iolist_size, [[...]]}, {mochiweb_request,respond,2}, {rest_server_web,loop,1}, {mochiweb_http,headers,5}, {proc_lib,init_p_do_apply,3}] 提问者遇到这个异常后判断是文档超长造成的,bob在下面的回复首先否定了这个猜测,并把关注点放在了trace信息中明确提示出来的iolist异常上面,他的回复: I don't think it has anything to do with the size of your document, your code is somehow returning a value that is not an iolist. Perhaps there is an atom in there, or an integer outside of 0..255 (I guess

RabbitMQ的下载、安装

空扰寡人 提交于 2020-03-16 09:07:48
下载 有windows版的,用得不多。 运维一般用的是tar.xz,最符合需求,但需要自己配置很多东西,有些麻烦。 我们使用最简单的rpm即可。rpm对新手友好,环境变量什么的自动给你配好,很简单,但安装配置使用的都是预置选项,有些地方可能不太符合需求。 RabbitMQ是Erlang写的,需要配置Erlang环境。查看推荐的erlang版本,然后到erlang官网下载。 源码、文档、windows版,这些都不是我们想要的,往下滑,找rpm安装包 点进去选择需要的版本下载。 安装 1、先安装erlang的依赖 yum install epel-release unixODBC unixODBC-devel SDL 如果不先安装erlang的依赖,安装erlang时会报错:没有提供xxx。此外erlang还需要一些依赖,安装erlang时会自动提示,那时候再安装。 2、安装erlang yum install esl-erlang_22.2.2-1~centos~8_amd64.rpm 3、安装rabbitmq server   yum install rabbitmq-server-3.8.3-1.el8.noarch.rpm 默认安装目录是/usr/lib/rabbitmq,默认已经把rabbitmq安装为服务(默认不会开机自启)。 4、开启rabbitmq的控制台 cd

centos6安装rabbitmq

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-16 08:31:57
一、安装依赖包 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz 二、下载erlang wget https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_21.0.5-1~centos~6_amd64.rpm 三、下载rabbitmq wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-3.7.14-1.el6.noarch.rpm 四、安装erlang rpm -ivh esl-erlang_21.0.5-1~centos~6_amd64.rpm 报错 warning: esl-erlang_21.0.5-1~centos~6_amd64.rpm: Header V4 RSA/SHA1 Signature, key ID a14f4fca: NOKEY error: Failed dependencies: libwx_baseu-2

Erlang需要了解的知识点

纵饮孤独 提交于 2020-03-12 10:58:42
Supervisor 启动的子进程中,用start启动和start_link启动会有什么不同? exit 被进程调用,为什么有些能杀掉进程,有些时候不能杀死进程? erlang节点之间如何通信? rebar是如何使用的?如何进行suit测试 如何将otp22.2编译成windows版本 如何编译otp22.2为linux版本 erlang的时间处理:os:system_time().os:timestap().等时间的处理知识 来源: oschina 链接: https://my.oschina.net/gaoxepro/blog/3192330

Erlang需要了解的知识点

社会主义新天地 提交于 2020-03-12 10:27:16
Supervisor 启动的子进程中,用start启动和start_link启动会有什么不同? exit 被进程调用,为什么有些能杀掉进程,有些时候不能杀死进程? erlang节点之间如何通信? rebar是如何使用的?如何进行suit测试 如何将otp22.2编译成windows版本 如何编译otp22.2为linux版本 erlang的时间处理:os:system_time().os:timestap().等时间的处理知识 来源: oschina 链接: https://my.oschina.net/gaoxepro/blog/3192330

Linux环境下安装RabbitMQ

落爺英雄遲暮 提交于 2020-03-12 03:15:59
首先RabbitMQ是使用erLang编写的开源消息中间件.所以需要先安装erlang环境. 我使用的是CentOS的系统安装erlang21.0的步骤如下: #下载安装包 (下面是我用的比较匹配的版本,可以直接使用,防止出现RabbitMQ嫌弃ErLang版本太低的问题,互相不兼容的问题,喜欢的请留个赞,谢谢!) 方法一: 链接: https://pan.baidu.com/s/1pQiMMF3K1sekoPKRN_S1xw 提取码: 749j 安装方法直接解压:rpm -ivh ....XXXX.rpm.gz 如果不喜欢可以使用以下方法直接去官网下载.如果遇到不匹配的情况,可以下载多个版本试验一下 方法二: wget http://erlang.org/download/otp_src_21.0.tar.gz # 解压文件 tar -zxvf otp_src_21.0.tar.gz cd otp_src_21.0 #编译 ./otp_build autoconf ./configure make (如果执行到此报错,请往下看,解决方案) #安装 make install ***如果在make的时候报错**** Makefile:248: /usr/local/otp_src_18.1/make/x86_64-unknown-linux-gnu/otp_ded.mk: No

为何选择功能语言[关闭]

最后都变了- 提交于 2020-03-11 21:57:09
我在这里看到很多关于函数式语言和东西的讨论。 你为什么要使用“传统”语言? 他们做得更好? 他们更糟糕的是什么? 什么是理想的函数式编程应用程序? #1楼 我会指出你所说的关于函数式语言的所有内容,大多数人在大约20年前都在谈论面向对象的语言。 那时候听到OO很常见: * The average corporate programmer, e.g. most of the people I work with, will not understand it and most work environments will not let you program in it * It's not really taught at universities (or is it nowadays?) * Most applications are simple enough to be solved in normal IMPERATIVE ways 改变必须来自某个地方。 无论受过早期技术培训的人是否认为不需要进行变革,一项有意义且重要的变革将使自己发生。 你是否认为尽管当时所有反对它的人都对OO的改变是好的? #2楼 如果他不能看到其他艺术的价值,他就无法理解他所选艺术的完美和不完美。 遵循规则只允许在技术上达到一定程度,然后学生和艺术家必须学习更多并进一步寻求。