windows下Rocketmq部署server
来源:互联网 发布:手机淘宝怎样申请换货 编辑:程序博客网 时间:2024/05/20 22:29
1、首先网上下载对应的jar包 alibaba-rocketmq-3.2.6.tar.gz http://pan.baidu.com/s/1i4XrXEP直接解压就行
2、在bin目录下启动mqnamesrv.exe 和 mqbroker.exe 按顺序启动
出现如上图的例子即是启动成功
3、下载一个管理工具,看着直观一些,rocketmq console http://pan.baidu.com/s/1o8yml1S 直接解压 到目录incubator-rocketmq-externals-master\rocketmq-console下
运行cmd 执行mvn package 打成jar包 。 创建文件rocketmq-console-ng.bat,编辑内容为:@echo off
java -jar rocketmq-console-ng-1.0.0.jar --server.port=1103 --rocketmq.config.namesrvAddr=127.0.0.1:9876
@pause
这里注意需要设置两个参数:--server.port为运行的这个web应用的端口,如果不设置的话默认为8080;--rocketmq.config.namesrvAddr为RocketMQ命名服务地址,如果不设置的话默认为“”。
ok,直接把jar包和rocketmq-console-ng.bat 放到同一个文件夹下 ,双击rocketmq-console-ng.bat文件运行
如上图 启动成功
访问地址:http://localhost:1103/
4、程序中测试,网上有很多类似代码,我把自己用的贴一下吧:
生产者:
package com.hivescm.test.action.rocketmq;
import com.alibaba.rocketmq.client.exception.MQBrokerException;
import com.alibaba.rocketmq.client.exception.MQClientException;
import com.alibaba.rocketmq.client.producer.DefaultMQProducer;
import com.alibaba.rocketmq.client.producer.SendResult;
import com.alibaba.rocketmq.common.message.Message;
import com.alibaba.rocketmq.remoting.exception.RemotingException;
public class ProducerMqAction {
public static void main(String[] args) throws MQClientException, InterruptedException {
/**
* 一个应用创建一个Producer,由应用来维护此对象,可以设置为全局对象或者单例<br>
* 注意:ProducerGroupName需要由应用来保证唯一<br>
* ProducerGroup这个概念发送普通的消息时,作用不大,但是发送分布式事务消息时,比较关键,
* 因为服务器会回查这个Group下的任意一个Producer
*/
DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");
producer.setNamesrvAddr("127.0.0.1:9876");
producer.setInstanceName("Producer");
//producer.setVipChannelEnabled(false);
/**
* Producer对象在使用之前必须要调用start初始化,初始化一次即可<br>
* 注意:切记不可以在每次发送消息时,都调用start方法
*/
producer.start();
Message msg = new Message("TopicTest007", // topic
"TagOne", // tag
"TestID001", // key
("Hello Moto").getBytes());// body
SendResult sendResult;
try {
sendResult = producer.send(msg);
System.out.println(sendResult);
} catch (RemotingException | MQBrokerException e) {
e.printStackTrace();
}finally {
producer.shutdown();
}
/**
* 应用退出时,要调用shutdown来清理资源,关闭网络连接,从MetaQ服务器上注销自己
* 注意:我们建议应用在JBOSS、Tomcat等容器的退出钩子里调用shutdown方法
*/
}
}
消费者:
package com.hivescm.test.action.rocketmq;
import java.util.List;
import com.alibaba.rocketmq.client.consumer.DefaultMQPushConsumer;
import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import com.alibaba.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import com.alibaba.rocketmq.client.exception.MQClientException;
import com.alibaba.rocketmq.common.message.MessageExt;
public class PushConsumerAction {
/**
* 当前例子是PushConsumer用法,使用方式给用户感觉是消息从RocketMQ服务器推到了应用客户端。<br>
* 但是实际PushConsumer内部是使用长轮询Pull方式从MetaQ服务器拉消息,然后再回调用户Listener方法<br>
*/
public static void main(String[] args) throws InterruptedException,
MQClientException {
/**
* 一个应用创建一个Consumer,由应用来维护此对象,可以设置为全局对象或者单例<br>
* 注意:ConsumerGroupName需要由应用来保证唯一
*/
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(
"ConsumerGroupName");
consumer.setNamesrvAddr("127.0.0.1:9876");
consumer.setInstanceName("Consumber");
// consumer.setVipChannelEnabled(false);
/**
* 订阅指定topic下tags分别等于TagA或TagC或TagD
*/
consumer.subscribe("TopicTest007", "TagOne");
/**
* 订阅指定topic下所有消息<br>
* 注意:一个consumer对象可以订阅多个topic
*/
consumer.subscribe("TopicTest2", "*");
consumer.registerMessageListener(new MessageListenerConcurrently() {
/**
* 默认msgs里只有一条消息,可以通过设置consumeMessageBatchMaxSize参数来批量接收消息
*/
public ConsumeConcurrentlyStatus consumeMessage(
List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
System.out.println(Thread.currentThread().getName()
+ " Receive New Messages: " + msgs.size());
MessageExt msg = msgs.get(0);
if (msg.getTopic().equals("TopicTest007")) {
// 执行TopicTest1的消费逻辑
if (msg.getTags() != null && msg.getTags().equals("TagOne")) {
// 执行TagA的消费
System.out.println(new String(msg.getBody()));
} else if (msg.getTags() != null
&& msg.getTags().equals("TagC")) {
// 执行TagC的消费
} else if (msg.getTags() != null
&& msg.getTags().equals("TagD")) {
// 执行TagD的消费
}
} else if (msg.getTopic().equals("TopicTest2")) {
System.out.println(new String(msg.getBody()));
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
/**
* Consumer对象在使用之前必须要调用start初始化,初始化一次即可<br>
*/
consumer.start();
System.out.println("Consumer Started.");
}
}
ok, 这些代码直接执行就好了 rocketmq console 中也可以通过topic去查询producer 和 consumer
最后pom中rocketmq的配置:
<dependency>
<groupId>com.alibaba.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>3.2.6</version>
</dependency>
- windows下Rocketmq部署server
- SVN Server Windows 下部署
- 在windows下搭建RocketMQ
- 在Windows下搭建RocketMQ
- RocketMQ笔记(1)_Linux下编译部署
- RocketMQ在Windows平台下环境搭建
- 【中间件1】在Windows下搭建RocketMQ
- 【中间件1】在Windows下搭建RocketMQ
- 在 Windows 2003/XP with SQL Server下部署 Snort
- .net1.1程序在windows server 2008下部署
- Windows Server 2003 环境下安装部署 SharePoint 2007
- Vmware ESX5i 环境下部署Windows Storage Server 2008 R2
- windows server 2008R2下 TOMCAT 应用程序部署
- windows server 2008r2 服务器下的项目部署
- 一、cas4.0server在windows tomcat下部署
- Windows下(Windows 10 & Windows Server 2012)部署Tomcat(不定时更新)
- RocketMQ 入门部署
- rocketMQ集群部署
- 童话故事之卖火柴的程序员 祝码农六一快乐!
- iOS 指纹识别
- live555 获取不到ip地址,为0.0.0.0
- 提示出错 cannot load flash programming algorithm !
- Visual Studio 新建C项目
- windows下Rocketmq部署server
- CSS预处理器
- 狱吏问题--数学建模的使用
- Numpy模块的方法
- 实现图片上传预览和取消文件上传功能
- React渲染动态HTML——dangerouslySetInnerHTML
- iOS 引导页以及启动页 点击按钮进入首页 Window根视图窗口的切换
- Python 封装使用日志处理类
- 订单系统部署到阿里云服务器上