ActiveMQ入门案例-yellowcong
来源:互联网 发布:python post本地文件 编辑:程序博客网 时间:2024/05/17 19:18
消息中间件 ,ActiveMQ,RabbitMQ,Kafaka这三个框架,现在是用得比较多的,先来个ActiveMq的入门案例,老爽了,通过ActiveMq可以简单的完成消息的传递.
下载地址
#官网下载地址http://activemq.apache.org/#这是官网的5.11.1版本wget http://archive.apache.org/dist/activemq/5.11.1/apache-activemq-5.11.1-bin.tar.gz#本人七牛云的下载地址http://yellowcong.qiniudn.com/apache-activemq-5.11.1-bin.tar.gz
客户端安装
#下载wget http://yellowcong.qiniudn.com/apache-activemq-5.11.1-bin.tar.gz#解压tar -zxvf apache-activemq-5.11.1-bin.tar.gz#启动服务器./apache-activemq-5.11.1/bin/activemq-admin start#停止服务器./apache-activemq-5.11.1/bin/activemq-admin stop
启动的时候,设定activemq的环境
目录结构
web访问地址
管控台,直接是依赖于jetty的,内嵌jetty服务器
#访问activeMq的管控台http://192.168.66.100:8161/admin/
管控台情况
端口设定
#修改jetty.xml配置vim /usr/local/activemq/apache-activemq-5.11.1/conf/jetty.xml#找到103行左右,可以修改默认端口号8161 <property name="port" value="8161"/>
conf目录下面的jetty.xml配置文件
管控台用户修改
用户名和密码是默认admin的
#修改jetty-realm.propertiesvim /usr/local/activemq/apache-activemq-5.11.1/conf/jetty-realm.properties#用户名:密码,角色username:password ,admin
里面的配置
端口配置
#端口默认配置即可,tcp默认tcp://0.0.0.0:61616 vim activemq.xml <transportConnectors> <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> </transportConnectors>
案例-生产者
package com.yellowcong.provider;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.DeliveryMode;import javax.jms.Destination;import javax.jms.Message;import javax.jms.MessageProducer;import javax.jms.Session;import org.apache.activemq.ActiveMQConnectionFactory;import org.apache.activemq.command.ActiveMQTextMessage;/** * * 作者:yellowcong <br/> * 日期:2017/12/08 <br/> * 時間:15:10:39 <br/> * 描述: */public class DemoProvider { private static final String ACTIVEMQ_HOST = "tcp://192.168.66.100:61616"; public static void main(String[] args) throws Exception { //1.建立ConnectionFactory ConnectionFactory fs= new ActiveMQConnectionFactory( ActiveMQConnectionFactory.DEFAULT_USER, //默认用户名 null ActiveMQConnectionFactory.DEFAULT_PASSWORD, //默认密码 null ACTIVEMQ_HOST) ; //连接地址 //2.创建连接 Connection conn = fs.createConnection(); //开启连接 conn.start(); //3.创建session //paramBoolean 是否启用事物 Boolean 对象 //paramInt 接收模式 4种模式 //Session.AUTO_ACKNOWLEDGE = 1; //自动签收 //Session.CLIENT_ACKNOWLEDGE = 2; //客户端,手动签收,通过 执行 TextMessage.acknowledge(); 来表示签收 //Session.DUPS_OK_ACKNOWLEDGE = 3;//不必确保用户是否签收 //Session.SESSION_TRANSACTED = 0;//事物 Session session = conn.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); //4.通过session来创建Destination Destination dest = session.createQueue("demo"); //队列的名称 //5.创建发送和接收对象 MessageProducer produc = session.createProducer(dest); //非持久化的方式 produc.setDeliveryMode(DeliveryMode.NON_PERSISTENT); //6.发送5条数据 for(int i=0;i<5;i++) { //创建Message Message msg = new ActiveMQTextMessage(); msg.setStringProperty("username", "你是yellowcong"+i+"号"); //发送Message produc.send(msg); } //关闭连接 conn.close(); }}
产生的数据
案例-消费者
package com.yellowcong.provider;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.MessageConsumer;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;/** * * 作者:yellowcong <br/> * 日期:2017/12/08 <br/> * 時間:15:39:22 <br/> * 描述: */public class DemoCustomer { //ActiveMq的主机地址 private static final String ACTIVEMQ_HOST = "tcp://192.168.66.100:61616"; public static void main(String[] args) throws Exception { //1、创建连接的ConnectionFactory ConnectionFactory fs = new ActiveMQConnectionFactory( ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, ACTIVEMQ_HOST); //2.获取连接 Connection conn = fs.createConnection(); conn.start(); //3.获取session Session session = conn.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); //4.获取目的地 Destination desc = session.createQueue("demo"); //5.获取消费者 MessageConsumer cus = session.createConsumer(desc); //6.获取所有数据 while(true) { //1 receive():Message //获取下一个消息。这个调用将导致无限期的阻塞,直到有新的消息产生。 //2 receive(long timeout):Message //获取下一个消息。这个调用可能导致一段时间的阻塞,直到超时或者有新的消息产生。超时则返回null。 //3 receiveNoWait():Message //获取下一个消息。这个调用不会导致阻塞,如果没有下一个消息,直接返回null。 TextMessage msg = (TextMessage) cus.receive(); if(msg == null) break; System.out.println(msg.getText()); } //7 关闭连接 conn.close(); }}
管控台的数据处理结果
目录结构
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>yellowcong</groupId> <artifactId>day12_08</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>day12_08</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.11.1</version> </dependency> </dependencies></project>
参考
https://www.cnblogs.com/luxiaoxun/p/3918054.html
阅读全文
0 0
- ActiveMQ入门案例-yellowcong
- Dubbo之入门案例-yellowcong
- SpringMvc之入门案例-yellowcong
- Lucene之入门案例-yellowcong
- Solr之入门案例-yellowcong
- SeaSar2之S2Dao入门案例-yellowcong
- SeaSar之框架搭建和入门案例-yellowcong
- Java网络编程之Netty入门案例-yellowcong
- Ajax框架之DWR学习(简单入门案例)-yellowcong
- ActiveMQ入门案例-生产者代码实现
- ActiveMQ(一):ActiveMQ入门案例 发送消息和接收消息
- ActiveMq之消息过滤-yellowcong
- activemq案例
- ActiveMQ的入门案例以及整合Spring的简单使用
- ActiveMq之消息发送(MessageProducer)-yellowcong
- ActiveMq之消息的优先级-yellowcong
- ActiveMQ之集群(主从)搭建-yellowcong
- ActiveMQ : ActiveMQ入门介绍
- Entity Framework(1)基础类接口
- 二分查找算法,斐波那契数列的递归及非递归。(分析时间复杂度及空间复杂度)
- BigDecimal类型比较数字大小,invalue方法数值大于9位变成负数
- 脚本无法挂载软链接的问题
- 日志-php-fpm慢日志查询
- ActiveMQ入门案例-yellowcong
- Unity中打包发布Apk时版本更新产生的问题
- Android四种事件处理方式
- Windows下安装Docker
- Oracle修改SGA_TARGET后启动失败
- ]性能优化调整--调整缓冲区高速缓存
- SQL中的cast()函数
- Python-faker的函数效果一览
- LOJ6122 「网络流 24 题