RabbitMQ之入门HelloWorld(Erlang)
来源:互联网 发布:手机版淘宝客 编辑:程序博客网 时间:2024/06/06 07:43
RabbitMQ是一些概念、安装、一键实现这个简单的HelloWorld程序的步骤和可能遇到的问题这里都不讲了, 有疑问的可以看看这篇文章。这里主要是用Erlang来实现这个简单程序。RabbitMQ的Erlang库可以从这里下载,下载解压后直接在linux下make一下就OK了。
make过程中会自己下载一些依赖库,都在deps下。这些依赖库都是以application的方式运行的,所以我们只要运行amqp_client:start().就可以启动整个client程序了。
好了, 废话不多说了, 直接上代码!!
消费者:
-module(mod_receive).-behaviour(gen_server).-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).-export([start_link/0]).-include("common.hrl").-record(state, {}).-define(SERVER,hello_receiver).start_link() ->gen_server:start_link({local,?SERVER}, ?MODULE, [], []).init([]) ->start(), {ok, #state{}}.handle_call(_Request, _From, State) -> Reply = ok, {reply, Reply, State}.handle_cast(_Msg, State) -> {noreply, State}.handle_info({'basic.consume_ok',_}, State) ->{noreply, State};handle_info({#'basic.deliver'{},#amqp_msg{payload=Msg}}, State) ->io:format(" receive messages is ~p~n",[Msg]),{noreply, State};handle_info(Info, State) ->io:format("unknown messages is ~p~n", [Info]), {noreply, State}.terminate(_Reason, _State) -> ok.code_change(_OldVsn, State, _Extra) -> {ok, State}.start() ->Params = #amqp_params_network{host=?HOST,username=?USER_NAME,password=?PASSWORD},case amqp_connection:start(Params) of{ok,ConnectionPid} ->{ok, Channel} = amqp_connection:open_channel(ConnectionPid),amqp_channel:call(Channel, #'queue.declare'{queue = <<"hello">>}),io:format(" Waiting for messages......~n"),amqp_channel:subscribe(Channel, #'basic.consume'{queue = <<"hello">>,no_ack = true}, self());{error,Resaon} ->Resaonend.生产者:
-module(mod_send).-export([send/0]).-include("common.hrl").send() ->Params = #amqp_params_network{host=?HOST,username=?USER_NAME,password=?PASSWORD},case amqp_connection:start(Params) of{ok,ConnectionPid} ->{ok, Channel} = amqp_connection:open_channel(ConnectionPid),amqp_channel:call(Channel, #'queue.declare'{queue = <<"hello">>}),amqp_channel:cast(Channel, #'basic.publish'{ exchange = <<"">>, routing_key = <<"hello">>}, #amqp_msg{payload = <<"Hello World!">>}),io:format("Sent 'Hello World!'~n"),ok = amqp_channel:close(Channel),ok = amqp_connection:close(ConnectionPid),ok;{error,Reason} ->Reasonend.common头文件:
-include("amqp_client_internal.hrl").-define(USER_NAME , <<"test">>).-define(PASSWORD , <<"test">>).-define(HOST , "192.168.249.128").-define(PORT , 5672).
运行结果:
祝生活愉快!!!
0 0
- RabbitMQ之入门HelloWorld(Erlang)
- RabbitMQ之入门HelloWorld(Java)
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ (一) 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- Windows 10系统下如何设置计划任务?
- php下载功能
- ssh-keygen 跨服务器不要用户名,密码 详解
- python获取桌面路径
- DebugView 调试相关资料
- RabbitMQ之入门HelloWorld(Erlang)
- List 属性 设置
- 如何解决流程开发中SheetRadioButtonList页面取值问题
- MDwiki安装与配置
- 如何解决(网页)粘贴数据到excel数据变换问题
- Python 的 with 语句
- Android开发,我踩过的坑
- Padding Oracle Attack 笔记
- [Mapbox GL]改变地图语言