RocketMQ-c#代码
导入包:
https://github.com/gaufung/rocketmq-client-dotnet/tree/master
using org.apache.rocketmq.client.consumer.listener;
using org.apache.rocketmq.client.producer;
using System;
using System.Text;
using java.util;
using System.Windows.Forms;
using org.apache.rocketmq.client.consumer;
using org.apache.rocketmq.common.consumer;
using System.Threading;
using System.Collections.Generic; namespace wf_RMQ3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
try
{
DefaultMQProducer p = new DefaultMQProducer("PG01");
p.setNamesrvAddr("172.20.168.210:9876");
p.setInstanceName("PER01");
//p.setProducerGroup("myproducer");
p.start();
var data = Encoding.UTF8.GetBytes(textBox1.Text.ToString());
org.apache.rocketmq.common.message.Message m = new org.apache.rocketmq.common.message.Message("TP01", data);
p.send(m);
p.shutdown();
textBox1.Text = "";
}
catch (Exception ex)
{
throw ex;
}
} private void button2_Click(object sender, EventArgs e)
{
try
{
//DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");
////consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
//consumer.setNamesrvAddr("172.20.168.210:9876");
//consumer.subscribe("jinwei01", "*");
//consumer.registerMessageListener(new TestListener()); //consumer.start(); //启动推送型消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("CG01");
consumer.setNamesrvAddr("172.20.168.210:9876");
consumer.subscribe("TP01", "*"); consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
consumer.setConsumeTimestamp("");
consumer.setInstanceName("CER01");
//consumer.setConsumerGroup("myconsumer01");
//设置消费者端口,官方没有该功能。适用端口有安全限制的服务器
//if (port > 0) consumer.setClientPort(port);
//注册推送事件 consumer.registerMessageListener(new ChainwayMessageListener());
//启动消费者
consumer.start(); }
catch (Exception ex)
{
throw ex;
} } } public class ChainwayMessageListener : MessageListenerConcurrently
{ public ConsumeConcurrentlyStatus consumeMessage(List list, ConsumeConcurrentlyContext ccc) { for (int i = ; i < list.size(); i++)
{
var msg = list.get(i) as org.apache.rocketmq.common.message.Message;
byte[] body = msg.getBody();
var str = Encoding.UTF8.GetString(body); MessageBox.Show(str);
Console.Write(str);
continue; }
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
}
}
参考资料
https://www.cnblogs.com/gmq-sh/p/5972569.html
RocketMQ-c#代码的更多相关文章
- rocketmq生产者代码分析
rocketmq生产者代码分析 环境安装 参考http://rocketmq.apache.org/docs/quick-start/ ,配置环境变量 export NAMESRV_ADDR=loca ...
- rocketmq番外篇(一):开发命令行
匠心零度 转载请注明原创出处,谢谢! 说在前面 虽然是以rocketmq引出的开发命令行,但是任何java应用如果需要都可以借鉴引用,也是通用技术. 主题 rocketmq使用例子 Apache Co ...
- RocketMQ学习 -> NameServer路由中心
RocketMQ项目代码核心目录说明 broker:broker启动进程 client:消息客户端,包含消息生产者,消息消费者相关类 common:公共包 dev:开发者信息(非源代码) distri ...
- RocketMQ 消息丢失场景分析及如何解决
生产者产生消息发送给RocketMQ RocketMQ接收到了消息之后,必然需要存到磁盘中,否则断电或宕机之后会造成数据的丢失 消费者从RocketMQ中获取消息消费,消费成功之后,整个流程结束 1. ...
- C#分布式消息队列 EQueue 2.0 发布啦
前言 最近花了我几个月的业余时间,对EQueue做了一个重大的改造,消息持久化采用本地写文件的方式.到现在为止,总算完成了,所以第一时间写文章分享给大家这段时间我所积累的一些成果. EQueue开源地 ...
- 了解MQ
一.了解RocketMQ? rocketMQ是阿里开源的一款十分优秀的消息队列,rocketMQ具有很多其他消息队列不具有的特性,更重要的是rocketMQ是用java开发的学习成本较低,并且经历了双 ...
- Rocket MQ 问题排查命令
修改rocketmq官方代码测试: package com.alibaba.middleware.race.rocketmq; import java.util.Scanner; import com ...
- JAVA代码之RocketMQ生产和消费数据
一.启动RocketMQ [root@master ~]# cat /etc/hosts # Do not remove the following line, or various programs ...
- RocketMQ 可视化环境搭建和基础代码使用
RocketMQ 是一款分布式消息中间件,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求, 在 2016 年底捐赠给 Apache 开源基金会成为孵化项目,经过不 ...
- Spring boot实战项目整合阿里云RocketMQ (非开源版)消息队列实现发送普通消息,延时消息 --附代码
一.为什么选择RocketMQ消息队列? 首先RocketMQ是阿里巴巴自研出来的,也已开源.其性能和稳定性从双11就能看出来,借用阿里的一句官方介绍:历年双 11 购物狂欢节零点千万级 TPS.万亿 ...
随机推荐
- java.lang.ClassNotFoundException: com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect
添加这个依赖 <dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystr ...
- Java技术体系 JDK与JRE
从广义上讲,Clojure.JRuby.Groovy等运行于Java虚拟机上的语言及其相关的程序都属于Java技术体系中的一员.如果仅从传统意义上来看,Sun官方所定义的Java技术体系包括以下几个组 ...
- golang中defer的正确使用方式(源自深入解析go)
3.4 defer关键字 defer和go一样都是Go语言提供的关键字.defer用于资源的释放,会在函数返回之前进行调用.一般采用如下模式: f,err := os.Open(filename) i ...
- Zabbix使用第三方API短信报警
之前试过邮件告警,微信告警.但是,对于一些企业的重要业务服务器,可能是存放在隔离的内网中的,无法正常连接外网.这个时候,就有必要考虑一下使用短信告警.以下这个其实还是需要服务器能够连接到外网的,但是我 ...
- react-native-cli 安装
react-native-cli 安装 1.按照依赖https://reactnative.cn/docs/getting-started.html 2.查看设备是否连接adb devices 3.运 ...
- massif 图例
19.63^ ### | # | # :: | # : ::: | :::::::::# : : :: | : # : : : :: | : # : : : : ::: | : # : : : : : ...
- activiti学习2:示例工程activiti-explorer.war的使用
目录 activiti学习2:示例工程activiti-explorer.war的使用 一.搭建开发环境 二.运行示例工程 三.示例工程功能演示 1. 创建流程图 2. 部署流程图 3. 启动流程 4 ...
- CentOS7-Docker 安装 Gitlab
官方教程 https://docs.gitlab.com/omnibus/docker/ 搜索镜像 [root@master ~]# docker search gitlab 拉取镜像 [root@m ...
- C语言的变参列表 va_list
1. va_list的基本原理和用法 #include<stdio.h> #include<stdarg.h> void func(int i,char *ch,...){ / ...
- 通过对比ASCII编码来理解Unicode编码
Unicode是个规范,可以理解为一个索引表,世界上所有字符基本上在这个索引表中都能找到唯一一个数码与之对应,就像ASCII码表一样,也是一个规范,也可以看成是一个索引表,所有的英文字符都可以在这个索 ...