erlang

Dining Philosophers in Erlang

ⅰ亾dé卋堺 提交于 2020-02-16 09:07:15
问题 If you have ever seen Dining Philosophers before, then you know that there are a few ways to do it. My implementation creates philosopher and fork processes which communicate with message passing. I was having a lot of program with format on the fork and philosopher processes, but I figured it out myself and now I will share the finished code. I'm a beginner fyi. Have a nice day. -module(df). -export([start/0, fork/2, philosopher/5]). start() -> SpawnForks = spawnForks([1,2,3,4], []),

Dining Philosophers in Erlang

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-16 09:05:50
问题 If you have ever seen Dining Philosophers before, then you know that there are a few ways to do it. My implementation creates philosopher and fork processes which communicate with message passing. I was having a lot of program with format on the fork and philosopher processes, but I figured it out myself and now I will share the finished code. I'm a beginner fyi. Have a nice day. -module(df). -export([start/0, fork/2, philosopher/5]). start() -> SpawnForks = spawnForks([1,2,3,4], []),

Dining Philosophers in Erlang

a 夏天 提交于 2020-02-16 09:04:52
问题 If you have ever seen Dining Philosophers before, then you know that there are a few ways to do it. My implementation creates philosopher and fork processes which communicate with message passing. I was having a lot of program with format on the fork and philosopher processes, but I figured it out myself and now I will share the finished code. I'm a beginner fyi. Have a nice day. -module(df). -export([start/0, fork/2, philosopher/5]). start() -> SpawnForks = spawnForks([1,2,3,4], []),

Dining Philosophers in Erlang

自闭症网瘾萝莉.ら 提交于 2020-02-16 09:04:12
问题 If you have ever seen Dining Philosophers before, then you know that there are a few ways to do it. My implementation creates philosopher and fork processes which communicate with message passing. I was having a lot of program with format on the fork and philosopher processes, but I figured it out myself and now I will share the finished code. I'm a beginner fyi. Have a nice day. -module(df). -export([start/0, fork/2, philosopher/5]). start() -> SpawnForks = spawnForks([1,2,3,4], []),

Windows环境下RabbitMQ的启动和停止命令

人走茶凉 提交于 2020-02-14 20:18:33
Windows环境下RabbitMQ的启动和停止命令 原创lockie_zou 最后发布于2018-05-24 15:34:21 阅读数 36514 收藏 展开 首先windows下安装好了erlang和rabbitmq。 如下地址同时下载和安装: Erlang:http://www.erlang.org/download.html RabbitMQ :http://www.rabbitmq.com/download.html 安装RabbitMQ时注意如下图: RabbitMQ Service默认是自动勾选中的,这里我们取消勾选。如选中启动RabbitMQ服务时会报如下图错误: 安装完成后,Erlang和RabbitMQ环境变量是没有配置的,需要自己手动去配置,如下图: 变量名分别为:ERLANG_HOME 、RABBITMQ_SERVER;同时把变量为配置在path环境变量中即可。 可视化界面启动 运行命令行窗口cmd 输入命令rabbitmq-plugins enable rabbitmq_management,这样就可以添加可视化插件了。 这样就添加了rabbitmq界面,只要启动rabbitmq,然后在浏览器输入 http://127.0.0.1:15672/ 就可以访问了 rabbitmq启动方式有2种 1、以应用方式启动 rabbitmq-server

Windows环境下RabbitMQ的启动和停止命令

帅比萌擦擦* 提交于 2020-02-14 17:56:37
Windows环境下RabbitMQ的启动和停止命令 原创lockie_zou 最后发布于2018-05-24 15:34:21 阅读数 36514 收藏 展开 首先windows下安装好了erlang和rabbitmq。 如下地址同时下载和安装: Erlang:http://www.erlang.org/download.html RabbitMQ :http://www.rabbitmq.com/download.html 安装RabbitMQ时注意如下图: RabbitMQ Service默认是自动勾选中的,这里我们取消勾选。如选中启动RabbitMQ服务时会报如下图错误: 安装完成后,Erlang和RabbitMQ环境变量是没有配置的,需要自己手动去配置,如下图: 变量名分别为:ERLANG_HOME 、RABBITMQ_SERVER;同时把变量为配置在path环境变量中即可。 可视化界面启动 运行命令行窗口cmd 输入命令rabbitmq-plugins enable rabbitmq_management,这样就可以添加可视化插件了。 这样就添加了rabbitmq界面,只要启动rabbitmq,然后在浏览器输入 http://127.0.0.1:15672/ 就可以访问了 rabbitmq启动方式有2种 1、以应用方式启动 rabbitmq-server

8.RabbitMQ实现集群高可用

爱⌒轻易说出口 提交于 2020-02-14 08:30:30
RabbitMQ实现集群高可用 前言 为什么搭建rabbitmq集群? rabbitmq集群有那些模式? 如何搭建Rabbitmq集群? rabbitmq镜像高可用策略有那些? RabbitMQ这款产品本身的优点众多,大家最看好的便是他的异步化提高系统抗峰值能力,然后便是系统及功能结构解耦,既然它如此重要,那么我们就需要考虑它的高可用性。 rabbitmq有3种模式 : 单一模式:即单机情况不做集群,就单独运行一个rabbitmq而已,生产上肯定不能用。 普通模式:普通集群就是在多台机器上启动多个实例。每个队列只会存在其中的一个实例上,然后所有实例同步这些队列的元数据。消费者在进行消费的时候,如果连接的实例上恰好不是队列所在的实例,就会根据队列的元数据去队列所在实例上拉取数据 由此可知,集群模式并没做到分布式,如果队列所在的实例宕机了,会导致接下来其他实例就无法从那个实例拉取消息,所以集群主要是提高吞吐量的 镜像模式:把需要的队列做成镜像队列,存在与多个节点属于** RabbitMQ的HA方案 。**该模式解决了普通模式中的问题,其实质和普通模式不同之处在于,消息实体会主动在镜像节点间同步,而不是在客户端取数据时临时拉取。该模式带来的副作用也很明显,除了降低系统性能外,如果镜像队列数量过多,加之大量的消息进入,集群内部的网络带宽将会被这种同步通讯大大消耗掉

RabbitMQ在Centos7中安装

坚强是说给别人听的谎言 提交于 2020-02-12 02:18:48
1、下载 由于RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前,需要先安装Erlang [root@localhost /]# cd usr/local/src/ [root@localhost src]# pwd /usr/local/src [root@localhost src]# wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm 执行下面命令升级上步下载的rpm软件包 [root@localhost src]#rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm 执行下面命令安装erlang yum -y install erlang 测试Erlang是否安装成功 [root@localhost src]# erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 8.0.3 2、安装RabbitMQ [root@localhost src]#yum -y install rabbitmq-server-3.6.6-1.el6.noarch.rpm 3、后台运行rabbitmq [root@localhost src

rabbitMQ安装问题记录

一个人想着一个人 提交于 2020-02-11 20:26:19
参考链接: rabbitmq国内镜像地址: https://www.newbe.pro/Mirrors/Mirrors-RabbitMQ/ https://www.zhihu.com/question/30451381 1、通过rabbitmq国内镜像地址下载新版rabbitmq,我下载的是 3.8.2版本(需要Erlang21.3版本以上) 2、打开rabbitmq官网(官网地址: https://www.rabbitmq.com/which-erlang.html )看rabbitmq与Erlang的版本匹配 3、打开Erlang官网( https://www.erlang.org/downloads )获取erlang的下载地址, 目前最新Erlang版本是22.2 在官网点击下载,实在是太太太慢了,都是几B的走,然后发现下面这种方式很可以解决问题 1)复制Erlang下载地址,打开百度云网盘,点击离线下载,粘贴下载链接到输入框内,点击开始下载,秒保存到网盘下 (注意:我下载的时候官网最新版本是22.2但是百度网盘上能下载的最新版本是22.1,不过满足需求) 2)通过百度网盘的下载获取Erlang 3)下载成功Erlang后,管理员身份运行exe文件,一直next进行安装,安装目录可以自行选择 4)安装完Erlang后,双击rabbitmq的exe文件,一路next,安装成功

erlang 调优工具

一曲冷凌霜 提交于 2020-02-09 03:11:35
转自 http://blog.csdn.net/huang1196/article/details/38660325 类似top命令,查看erlang进程占用cpu、内存较高的进程 参数: node atom erlang node port integer The used port accumulate boolean If true execution time is accumulated lines integer Number of displayed processes interval integer Display update interval in secs sort runtime | reductions | memory | msg_q output graphical | text tracing on | off setcookie string 使用举例: 1. 找出cpu占用最高的进程,图形界面输出,每10秒更新一次 > spawn(fun() -> etop:start([{interval,10}, {sort, runtime}]) end). > etop:stop(). 2. 找出内存占用较高进程, 输出进程的数量为20,文本形式输出 > spawn(fun() -> etop:start([{output, text}, {lines