前言

前面一章中介绍了activemq,并且呢安装了。

这一章就来看一下实例吧。

正文

我使用队列举例。

是这样子,队列是一对一的关系,比如说我生产了一条消息,那么只要有一个消费者消费完毕那么就算消费完了。

这里贴一个思路图:

简单介绍一下什么意思:

1.通过connectFactory 建立连接,然后形成tcp会话。

2.将他们实例化消费者和生产者,这个其实就是库帮我们把生产和消费的api分开,不同的实例调用不同种类的api。

3.这样就可以将消息发送到目的地或者从目的地取消息。

生产者:

static void Main(string[] args)
{
Uri connecturl = new Uri("activemq:tcp://106.15.250.57:61616");
IConnectionFactory factory = new ConnectionFactory(connecturl);
using (IConnection connection = factory.CreateConnection())
{
using (ISession session = connection.CreateSession())
{
IDestination destination = SessionUtil.GetDestination(session, "queue://test");
using (IMessageProducer producer = session.CreateProducer(destination))
{
producer.DeliveryMode = MsgDeliveryMode.Persistent;
producer.RequestTimeout = TimeSpan.FromSeconds(2);
ITextMessage request = session.CreateTextMessage("oh,my frient");
producer.Send(request);
}
}
}
}

运行后:

看一下上图中这几个参数的意义:

1.name 名字 我上面定义了test

2.number of pending message 未处理的消息

3.number of consumers 消费者数量

4.Messages Enqueued 消息队列中的数量

5.Messages Dequeued 出列的数量

好的,那么我们来消费一下,看下有什么变化。

设置消费者:

class Program
{
static void Main(string[] args)
{
Uri connecturl = new Uri("activemq:tcp://106.15.250.57:61616");
IConnectionFactory factory = new ConnectionFactory(connecturl);
using (IConnection connection = factory.CreateConnection())
{
using (ISession session = connection.CreateSession())
{
IDestination destination = SessionUtil.GetDestination(session, "queue://test");
using (IMessageConsumer consumer=session.CreateConsumer(destination))
{
connection.Start();
consumer.Listener += new MessageListener(onMessage);
Console.ReadKey();
}
}
}
} protected static void onMessage(IMessage receivedMsg)
{
ITextMessage message = receivedMsg as ITextMessage;
if (message != null)
{
//查询出消息
Console.WriteLine(message.Text);
}
}
}

上面显示了3个哈,因为我生产了3次。

那么看下视图变化:

好吧,就到这里。

后续深入一下,比如说事务、持久化等等等。

ActiveMQ c# 系列——实例(二)的更多相关文章

  1. ActiveMQ学习系列(二)----生产者客户端(java)

    上文主要简单地将activeMq搭建了起来,并且可以用web console去登录查看相关的后台功能. 本文将学习如何用java语言实现一个生产者客户端,主要参考了以下链接: http://activ ...

  2. ActiveMQ入门系列二:入门代码实例(点对点模式)

    在上一篇<ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)>中,大致介绍了ActiveMQ和一些概念,并下载.安装.启动他,还访问了他的控制台页面. 这篇,就用代 ...

  3. ActiveMQ入门系列三:发布/订阅模式

    在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点 ...

  4. 当我们说线程安全时,到底在说什么——Java进阶系列(二)

    原创文章,同步发自作者个人博客,转载请以超链接形式在文章开头处注明出处http://www.jasongj.com/java/thread_safe/ 多线程编程中的三个核心概念 原子性 这一点,跟数 ...

  5. FPGA Verilog HDL 系列实例--------步进电机驱动控制

    [连载] FPGA Verilog HDL 系列实例 Verilog HDL 之 步进电机驱动控制 步进电机的用途还是非常广泛的,目前打印机,绘图仪,机器人等等设备都以步进电机为动力核心.那么,下面我 ...

  6. Sql Server来龙去脉系列之二 框架和配置

    本节主要讲维持数据的元数据,以及数据库框架结构.内存管理.系统配置等.这些技术点在我们使用数据库时很少接触到,但如果要深入学习Sql Server这一章节也是不得不看.本人能力有限不能把所有核心的知识 ...

  7. 不容易系列之二[HDU2042]

    不容易系列之二 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  8. 【转】Tomcat总体结构(Tomcat源代码阅读系列之二)

    本文是Tomcat源代码阅读系列的第二篇文章,我们在本系列的第一篇文章:在IntelliJ IDEA 和 Eclipse运行tomcat 7源代码一文中介绍了如何在intelliJ IDEA 和 Ec ...

  9. HDU 2042 不容易系列之二 [补6.24] 分类: ACM 2015-06-26 20:40 9人阅读 评论(0) 收藏

    不容易系列之二 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  10. 深入浅出ECharts系列 (二) 折线图

    深入浅出ECharts系列(二) 目标 本次教程的目标是实现“折线图堆叠”折线,实现结果如图: 2. 准备工作 a)         首先下载ECharts插件,你可以根据自己的实际需求选择你想要下载 ...

随机推荐

  1. 云计算 - 内容分发网络CDN技术与应用全解

    在这篇全面解析CDN的技术文章中,我们深入探讨了CDN的基础概念.核心架构.多样化产品和在不同行业中的应用案例.文章揭示了CDN技术如何优化内容分发,提升用户体验,并展望了CDN面临的挑战和未来发展趋 ...

  2. 基于STM32F407MAC与DP83848实现以太网通讯三(STM32F407MAC配置以及数据收发)

    本章实现了基于STM32F407MAC的数据收发功能,通过开发板的RJ45接口连接网线到电脑,电脑使用Wiershark工具抓包验证,工程源码.资料和软件见文末. 参考文档: DP83848IV英文 ...

  3. nest.sh 脚本 发布服务

    每次发布后端nest 直接执行一个脚本即可 给脚本赋值权限 chomd 777 nest.sh nest.sh 脚本 #!/bin/bash cd /root/gateway-study git pu ...

  4. Performance Improvements in .NET 8 & 7 & 6 -- String【翻译】

    原文:https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/#strings-arrays-and-spans ...

  5. Mysql中数据类型括号中的数字代表的含义

    相信大家不管是看别人的代码,还是自己的代码总会在定义表的数据类型时,会需要在数据类型后面加一个括号,里面写一个参数,例如int(3),smallint(5),char(5)等,但是括号里面的数字到底是 ...

  6. 建筑、工程和施工产业中的3D可视化

    3D视觉效果是传达想法,概念或设计的强大工具,它也用于在概念阶段推销该想法. AEC行业的可视化已经走了很长一段路,从将设计提交给客户进行批准,现在用于项目的每个阶段,从项目投标,获得客户和理事会的批 ...

  7. 反射改变TabLayout属性

    目录介绍 01.遇到的实际需求分析 02.原生TabLayout局限 03.TabLayout源码解析 3.1 Tab选项卡如何实现 3.2 滑动切换Tab选项卡 3.3 Tab选项卡指示线宽度 04 ...

  8. 三维模型3DTile格式轻量化在网络传输中的重要性分析

    三维模型3DTile格式轻量化在网络传输中的重要性分析 三维模型3DTile格式轻量化在网络传输中扮演了至关重要的角色.随着数字化和虚拟化技术的发展,越来越多的应用需要通过网络来获取和分享大规模三维地 ...

  9. WPF命令绑定

    在WPF中有时候不想将命令写在List中,但是却要在前端绑定的List中写入命令 暂时知道两种解决方法 1. Command="{Binding DataContext.NavicateCo ...

  10. 记录-new Date() 我忍你很久了!

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 大家平时在开发的时候有没被new Date()折磨过?就是它的诸多怪异的设定让你每每用的时候,都可能不小心踩坑.造成程序意外出错,却一下子 ...