erlang

[Erlang 0054] Erlang Web 监控工具

…衆ロ難τιáo~ 提交于 2020-03-06 05:30:55
Erlang已经提供了一系列工具查看运行时状态查看的工具,有没有web的监控工具可用呢?下面介绍一个很棒的工具: BigWig 它提供了sasl日志查看,OTP进程树拓扑图,进程查看(可以按照指标排序),Application管理,节点性能采样,进程控制等功能; 这个项目建立在成功的开源项目之上:Web框架使用 Cowboy ,Json解析使用 JSX ;使用 ./rebar get-deps 获取依赖项; 运行 ./start-dev.sh 启动,我们就可以在浏览器中查看了,默认使用端口40829,修改一下start-dev.sh,我们就可以把自己的应用程序启动命令也添加进去;下面是我自己的一个截图: 更详细项目介绍: http://www.metabrew.com/article/bigwig-erlang-webtool-spawnfest Github项目地址: https://github.com/beamspirit/bigwig 注意事项 : BigWig项目的README写的相当详细,只是注意一下:rebar.config 中要求Erlang的版本是 {require_otp_vsn, "R14"}. 如果你的环境不是R14,修改一下这个配置就可以了; 由于这个项目中也会使用reloader,如果我们自己应用里面也有就要处理一下这个模块的冲突; 我们出发! 2012

[Erlang 0003] 编译Erlang程序

老子叫甜甜 提交于 2020-03-06 05:30:26
如果语言学习也做一个"流失率统计",那么有多少人是在编译环节放弃的呢?按下F6就完成编译,F5就可以运行,这样的好日子不再了,你能接受么? 我们今天要说的就是Erlang的编译. 在Windows环境中编译Erlang代码并没有想象中那么繁琐, [Erlang 0002] Erlang IDE 这篇文章里面介绍的一些工具比如Eclipse 和Netbeans都是可以通过简单的点击一下按钮就可以编译erlang文件的。下面重点介绍的是:不依赖IDE如何编译,以及在项目中如果使用 Emakefile来管理复杂的编译行为。 不依赖IDE如何编译 当前路径的问题?有文章介绍添加.erlang文件来解决这个问题的,实际上并没有这么复杂,在你的hello.erl文件所在文件夹新建一个cmd文件 , 使用下面的命令行: "C:\Program Files (x86)\erl5.8.2\bin\erl.exe" -name zen@192.168.1.199 -setcookie abc 前面是erlang的安装路径,后面指定了启动的节点名和magic cookie,然后就可以直接使用c(hello)来编译hello.erl. 如果要添加代码路径,也比较简单,添加启动参数就可以: "C:\Program Files (x86)\erl5.8.2\bin\erl.exe" - pa D:\code\

[Erlang 0074] Erlang 杂记 IV

这一生的挚爱 提交于 2020-03-06 05:30:07
休假回来,调整一下状态,先把Evernote里面一些比较零散的东西整理出来;过去一个月对于Erlang开发者还是有些惊喜的,比如 《 Erlang / OTP 并发编程实战》终于出版了;比如<Building.Web.Applications.with.Erlang>也可以看到英文版了.下面第一条消息就是关于Erlang的另外一本好书: 《 Learn You Some Erlang 》 Learn You Some Erlang 两则 Erlang学习有一个非常棒的网站: http://learnyousomeerlang.com/ 现在有两则关于它的消息: [1] 首先是这本书的Kindle版本, 能够在移动设备上阅读这本书,真的是非常方便;其实不仅仅是Kindle 其它支持mobi格式的都可以完美显示;甚至你可以使用源文件自己编译成为其它格式,比如epub; github地址: https://github.com/igstan/learn-you-some-erlang-kindle [2] 这个网站的出版物已经发行,其中文版由 @淘宝褚霸 翻译,可以预见到这又将成为中文资料的经典之作 http://book.douban.com/subject/10822017/ string To Erlang Term 一个更为考虑更为完善的方法 下面是可以解决的: 1> E=fun

erlang gen_fsm/gen_event/gen_server/gen_tcp

穿精又带淫゛_ 提交于 2020-03-05 06:56:06
gen_fsm: 参考资料 LYSEGG gen_fsm的例子 Erlang OTP设计原则Gen_Fsm行为 相关博客gen_fsm gen_event: 参考资料 LYSEGG [解释加例子] http://erlangdisplay.iteye.com/blog/315391 gen_event 解释 例子 erlang behaviour gen_event gen_server: 参考资料 看文档吧 wx_object 看文档 http://www.erlang.org/doc/man/wx_object.html http://www.erlang.org/doc/man/wx.html 当然wx 也是一个 application,The wx application is an erlang binding of wxWidgets; wx module contains functions for starting and stopping the wx-server, wx 是用于启动和关闭gui 的,使用之前必须首先用 wx:new(); wx_object 是一个bahaviour; 每一个控件对象都对应一个module; 来源: https://www.cnblogs.com/ShankYan/p/4202513.html

RabbitMQ消息队列之Windows下安装和部署(一)

被刻印的时光 ゝ 提交于 2020-03-04 20:47:26
参考文档: https://jingyan.baidu.com/article/ed15cb1bb5c3411be369819d.html https://blog.csdn.net/hzw19920329/article/details/53156015 https://blog.csdn.net/yemaiqingxiang/article/details/81019611 RabbitMQ开源消息队列服务是使用Erlang语言开发的,因此我们要使用他就必须先进行Erlang语言环境的搭建,其实是非常简单的。 登录Erlang官网,进入下载页,然后按照自己的系统环境来选择需要下载的安装文件,如下图所示: https://www.erlang.org/downloads 下载成功之后是个如下所示的安装程序:我的系统是x64位 然后开始安装(一路下一步就OK了) 接下来我们需要对Erlang语言的环境变量的配置,打开 系统属性-->高级-->环境变量 创建一个名为 ERLANG_HOME 的环境变量,其值指向erlang的安装目录,同时将 %ERLANG_HOME%\bin 加入到Path中 注:新建的是用户变量、编辑的是系统变量Path 最后打开命令行,输入erl,如果出现erlang的版本信息就表示erlang语言环境安装成功 好,到这里一定要重启计算机,如果不重启

安装RabbitMQ

China☆狼群 提交于 2020-03-03 18:41:45
概述 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等。 安装Erlang 1.安装基础包:gcc ncurses-devel yum install gcc yum install ncurses-devel 2.去官网下载对应版本的Erlang (1)编译安装erlang (2)rpm包安装 由于本次安装erlang是为了支持rabbitmq的安装,并非为了Erlang的开发使用 所以选择rpm包安装 下载地址: http://www.rabbitmq.com/releases/erlang/ 根据环境不同选择不同版本 本机选用版本: erlang-19.0.4-1.el6.x86_64.rpm 3.安装Erlang rpm -ivh erlang-19.0.4-1.el6.x86_64.rpm 4.安装完后输入“erl”以下提示即为安装成功: [root@localhost ~]#

erlang beam 文件格式

时光总嘲笑我的痴心妄想 提交于 2020-03-03 18:18:13
beam文件是erlang编译器生成的文件格式,可以直接加载到erlang vm中运行的文件格式。 一. 文件格式 beam文件的文件布局如下: 文件由一个文件头加各种块构成,块的结构由块头加自定义结构组成。在beam文件中atom块,code块,字符串块,导入表,导出表,是必须出现的块。其它可选(意思是你没用到beam文件就不会出现这些块)。 接下来逐一介绍这些块: 1. 文件头 4字节 4字节 4字节 "FOR1" Size "BEAM" "FOR1": 符合EA IFF 85 文件格式 Size:文件剩余大小,也就说文件大小=Size + 8 "BEAM":beam文件 2. Atom块 4字节 4字节 4字节 1字节 N1字节 1字节 N2字节 ... "Atom" Size Count N1 原子 N2 原子 ... Atom:原子块标识 Size:原子表大小 Count:原子个数 N1:第一个原子长度 原子:第一个原子,ascii码 N2:第二个原子长度 原子:第二个原子 然后一直到Count个原子. (ps:第一个原子一定是模块名) 3. Code块 4字节 4字节 4字节 4字节 4字节 4字节 4字节 4字节 "Code" Size sub-size version opcode-max lables fun-count code "Code":代码块标识

erlang.

旧巷老猫 提交于 2020-03-03 17:08:55
erlang 终端退出. erl q(). 来源: oschina 链接: https://my.oschina.net/innovation/blog/3186680

C#调用RabbitMQ实现消息队列

大城市里の小女人 提交于 2020-03-03 10:27:40
C#调用RabbitMQ实现消息队列 前言 我在刚接触使用中间件的时候,发现,中间件的使用并不是最难的,反而是中间件的下载,安装,配置才是最难的。 所以,这篇文章我们从头开始学习RabbitMq,真正的从头开始。 关于消息队列 其实消息队列没有那么神秘,我们这样想一下,用户访问网站,最终是要将数据以HTTP的协议的方式,通过网络传输到主机的某个端口上的。 那么,接收数据的方式是什么呢?自然是端口监听啦。 那消息队列是什么就很好解释了? 它就是端口监听,接到数据后,将数据排列起来。 那这件事,我们不用中间件能做吗? 当然能做啦,写个TCP/UDP/Socket的软件就可以做啦。 举个简单的例子,如下图: 既然自己可以做消息队列,那为什么要用RabbitMQ? 因为,RabbitMQ成熟的开源中间件,可靠性有保证,bug少,性能也非常好。 而C#代码默认是使用托管内存的,所以,想写出媲美RabbitMQ性能的消息队列,就必须离开我们常用的托管内存,使用非托管内存,但这个代价就太大了;而且最终能否达到RabbitMQ的性能水平还是个未知数。 还有就是RabbitMQ除了基础的消息队列管理,还有很多很强大的额外功能,而自己开发消息队列,很难如此尽善尽美。 --------------------------------------------------------------------

Centos 7 环境下安装 RabbitMQ 3.6.10

雨燕双飞 提交于 2020-03-02 23:59:38
一、单机安装 在Centos7系统下部署(阿里云服务),使用yum安装 hostnamectl set-hostname rabbit01 #永久修改 1.1安装Erlang,因为RabbitMQ 是基于Erlang语言的,因此需要安装Erlang环境 创建一个目录存放rpm安装包,病切换到该目录 mkdir /home/rabbitcd /home/rabbit yum 安装 epel-release,此时会去下载安装包,下载完成后会提示确认安装 Is this ok [y/d/N],输入 y 回车开始安装,看到 Complete! 提示时安装成功。 yum install epel-release 安装 Erlang 环境,这个过程可能需要一段时间。看到 Complete! 提示时安装成功 yum -y install erlang 1.2 安装 RabbitMQ 下载 RabbitMQ-3.6.10 安装包(虚拟机中可以需要自己手动安装 “wget”) wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm 开始安装,当看到 Complete! 提示时,安装完成 yum -y install rabbitmq-server-3.6