activemq端口怎么调(activemq详解)

一、下载与安装 直接去官网(http://activemq.apache.org/)下载最新版本即可,由于这是免安装的,只需要解压就行了。安装完之后进入bin目录,双击activemq.bat文件(linux下在bin目录下执行activemqstart) 二、访问控制台 在浏览器输入:http://ip:8161/admin/,出现如下界面表示启动成功,默认的用户名密码都是admin 三、修改端…

一、下载与安裝

立即去官方网站(
http://activemq.apache.org/)下载最新版就可以,因为这也是免安装的,只必须缓解压力就可以了。安装完以后进入bin文件目录,双击鼠标 activemq.bat文件(linux下到bin文件目录下实行 activemq start)

二、浏览控制面板

在网页键入:http://ip:8161/admin/,发生如下所示页面表明运行取得成功,默认设置的用户名密码全是admin

Activemq的学习

三、修改端口号

61616为对外开放服务项目端口号

8161为控制板端口号

当端口号矛盾时,可以修改这两个端口号。cd conf ,修改activemq.xml 修改里边的61616端口号。修改jetty.xml,修改里边的8161端口号。

queue队列方式:

和rabbitmq简易队列方式一样,倘若有好几个顾客交易同一个队列中的信息得话,默认设置也是轮询体制的交易

实例编码:

public class Productor {
    public static final String BORKER_URL = \"tcp://127.0.0.1:61616\";
    public static final String QUEUE_NAME = \"queue1\";
    public static void main(String[] args) throws JMSException {
        //建立加工厂
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(BORKER_URL);
        //建立tcp连接
        Connection connection = factory.createConnection();
        //创建联接
        connection.start();
        /**
         * 建立对话,1.是不是打开事务管理,2.查收方式
         */
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        //建立队列(信息的终点)
        Queue queue = session.createQueue(QUEUE_NAME);

        //建立经营者
        MessageProducer producer = session.createProducer(queue);

        //信息非分布式锁
        producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

        //信息分布式锁 默认设置是分布式锁的
//        producer.setDeliveryMode(DeliveryMode.PERSISTENT);

        //建立信息
        TextMessage message = session.createTextMessage(\"你现在还好吗\");

        //推送信息
        producer.send(message);

        producer.close();
        session.close();
        connection.close();

        System.out.println(\"发送成功!\");

    }
}


public class Consumer {
    public static final String BORKER_URL = \"tcp://127.0.0.1:61616\";
    public static final String QUEUE_NAME = \"queue1\";
    public static void main(String[] args) throws JMSException {
        //建立加工厂
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(BORKER_URL);
        //建立tcp连接
        Connection connection = factory.createConnection();
        //创建联接
        connection.start();
        /**
         * 建立对话,1.是不是打开事务管理,2.查收方式
         */
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        //建立/申明队列(信息的终点)
        Queue queue = session.createQueue(QUEUE_NAME);

        //建立顾客
        MessageConsumer consumer = session.createConsumer(queue);

        /*while (true) {
            //receive会堵塞进程
            TextMessage message = (TextMessage)consumer.receive();
            System.out.println(\"接受到信息:\"   message.getText());
        }*/

        //监视的方法交易
        consumer.setMessageListener(message -> {
            TextMessage textMessage = (TextMessage)message;
            try {
                System.out.println(\"1号接受到信息:\"   textMessage.getText());
            } catch (JMSException e) {
                e.printStackTrace();
            }
        });
    }
}

topic队列方式:

称之为公布定阅方式,经营者把信息发给定阅给某一topic主题风格的顾客,是派发的方式,这类方式默认设置必须先运行顾客,要不然即使经营者公布了某一topic主题风格的信息,顾客也交易不了;除非是顾客提早定阅,而且进行了信息分布式锁的解决,那样后运行顾客才可以交易提早消息推送的信息。

编码:

public class Productor {
    public static final String BORKER_URL = \"tcp://127.0.0.1:61616\";
    public static final String TOPIC_NAME = \"topic1\";
    public static void main(String[] args) throws JMSException {
        //建立加工厂
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(BORKER_URL);

        //多线程递送
        factory.setUseAsyncSend(true);

        //建立tcp连接
        Connection connection = factory.createConnection();
        /**
         * 创建对话,1.是不是打开事务管理,2.查收方式
         */
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        //建立/申明topic(信息的终点)
        Topic topic = session.createTopic(TOPIC_NAME);

        //建立经营者
        ActiveMQMessageProducer producer = (ActiveMQMessageProducer)session.createProducer(topic);

        //分布式锁
        producer.setDeliveryMode(DeliveryMode.PERSISTENT);

        //创建联接
        connection.start();


        //建立信息
        TextMessage message = session.createTextMessage(\"你现在还好吗\");

        //推送信息,多线程推送调用函数
        producer.send(message, new AsyncCallback() {
            @Override
            public void onSuccess() {
                System.out.println(\"success\");
            }

            @Override
            public void onException(JMSException e) {
                System.out.println(\"fail\");
            }
        });

        producer.close();
        session.close();
        connection.close();

        System.out.println(\"发送成功!\");

    }
}

public class Consumer1 {
    public static final String BORKER_URL = \"tcp://127.0.0.1:61616\";
    public static final String TOPIC_NAME = \"topic1\";
    public static void main(String[] args) throws JMSException {
        //创建工厂
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(BORKER_URL);

        //创建tcp连接
        Connection connection = factory.createConnection();

        //制订clientId
        connection.setClientID(\"my\");

        /**
         * 创建对话,1.是不是打开事务管理,2.查收方式
         */
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        //创建/申明topic(消息的终点)
        Topic topic = session.createTopic(TOPIC_NAME);

        //定阅主题
        TopicSubscriber subscriber = session.createDurableSubscriber(topic, \"remark\");
        //创建联接
        connection.start();
        while (true) {
            //receive会阻塞进程
            //接收定阅的消息
            TextMessage message = (TextMessage) subscriber.receive();
            System.out.println(\"接收到消息:\"   message.getText());
        }

        /*//创建顾客
        MessageConsumer consumer = session.createConsumer(topic);

        //创建联接
        connection.start();

        *//*while (true) {
            //receive会阻塞进程
            TextMessage message = (TextMessage)consumer.receive();
            System.out.println(\"接收到消息:\"   message.getText());
        }*//*

        //监视的方法交易
        consumer.setMessageListener(message -> {
            TextMessage textMessage = (TextMessage)message;
            try {
                System.out.println(\"1号接收到消息:\"   textMessage.getText());
            } catch (JMSException e) {
                e.printStackTrace();
            }
        });*/
    }
}

怎样确保消息的稳定性

回应这个问题关键从分布式锁,事务管理,查收这一些层面下手

消息分布式锁的关键编码:

//queue方式的消息分布式锁 默认设置是分布式锁的
 producer.setDeliveryMode(DeliveryMode.PERSISTENT);
 /**
 * topic方式的分布式锁
 */
Topic topic = session.createTopic(TOPIC_NAME);
ActiveMQMessageProducer producer = (ActiveMQMessageProducer)session.createProducer(topic);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
connection.start();

事务管理的关键编码(偏经营者):

//基本参数成true
connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//事务管理递交
session.commit();

查收的关键编码(偏顾客):

//基本参数成手动式递交
connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
//消息查收
message.acknowledge();

留意:倘若既打开事务管理,又打开手动式查收,以事务管理为标准,只需事务管理被递交了也默认设置消息被查收了

性能增加:

1.运用nio的协议书比tcp的特性高,

  • 配备方法:在conf文件目录下activemq.xml对着下边配备
<broker>
  ...
  <transportConnectors>
    <transportConnector name=\"nio\" uri=\"nio://0.0.0.0:61616\"/>  
  </<transportConnectors>
  ...
</broker>
  • 第二步是编码浏览方法由tcp改成nio
//创建工厂
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(\"nio://127.0.0.1:61616\");

2.jdbc Journaling提升仅有jdbc分布式锁的特性,它在做分布式锁入数据库查询以前,会先将信息存放到Journaling文件中,以后才渐渐地同歩到数据库系统中,相当于正中间加了一层缓存层。

  • 把数据库查询mysql的驱动包放进lib文件目录下
  • 配备方法:在conf文件目录下activemq.xml对着下边配备,在其中有一个createTablesOnStartup特性,初始值是true,表明每一次运行后去数据库查询全自动建表

<persistenceAdapter>
  <kahaDB directory=\"${activemq.data}/kahadb\"/>
 </persistenceAdapter>
 //上边是默认设置配备寻找改为下边的配备
<persistenceAdapter> 
  <journalPersistenceAdapterFactory journalLogFiles=\"5\" dataDirectory=\"${basedir}/activemq-data\" dataSource=\"#mysql-ds\"/>
</persistenceAdapter> 

//下边的编码写在<beans>连接点中
<bean id=\"mysql-ds\" class=\"org.apache.commons.dbcp.BasicDataSource\" destroy-method=\"close\">
  <property name=\"driverClassName\" value=\"com.mysql.jdbc.Driver\"/>
  <property name=\"url\" value=\"jdbc:mysql://localhost/activemq?relaxAutoCommit=true\"/>
  <property name=\"username\" value=\"activemq\"/>
  <property name=\"password\" value=\"activemq\"/>
  <property name=\"poolPreparedStatements\" value=\"true\"/>
</bean>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月6日 下午2:11
下一篇 2022年5月6日 下午2:13

相关推荐

  • u盘损坏了还能恢复吗,优盘损坏数据恢复技巧

    U盘是存储数据的主要工具之一,U盘损坏打不开,无法读取里面的数据是一件让人非常着急的事情。 U盘损坏常见的主要原因有: 使用不当,没有安全删除吧。严重摔坏或者进水。格式化时突然断电。买到黑心扩容盘 坏都坏了,修吧! 情况一: 首先,大家通常遇到的第一个问题就是,把U盘插进电脑提示:“无法识别USB设备”。 解决方法: 1.点击“开始”菜单,选择“运行”命令,在打开的框内输入“regedit”命令…

    2022年7月11日
    490
  • 三洋滚筒洗衣机怎么样(深度评测其质量与清洗能力)

    滚筒跟波轮是现在人们见到的两种洗衣机的类型,也是很多人买洗衣机的时候主要纠结的对象,有些人觉得滚筒洗衣机不同,只是不清楚滚筒洗衣机优缺点有哪些?在洗衣机品牌中,三洋表现的非常优秀,三洋洗衣机怎么样? 一、滚筒洗衣机优缺点有哪些 滚筒洗衣机的优点: 1、衣服洗好后不会出现超绕等情况,对衣服也能够好好保护。 2、滚筒洗衣机有些有烘干功能,对于这南方潮湿天和北方的雾霾天气来说,特别需要这种功能。 3、滚…

    2022年9月27日
    610
  • 公司三证是哪三证,营业执照三证合一图片

    一个企业最基本的资质是什么呢? 企业资质主要包括三证,主要为营业执照、税务登记证和组织机构代码证,如果是更加正规的企业还会有质量认证体系证书,如果有代理还会有代理证书和其他从事专业项目的证书。 税务登记证、营业执照、组织机构代码证,就是俗称的三证。 下面工装联盟小编给大家简单的说说这三证都是什么。 1、营业执照 营业执照是工商行政管理机关发给工商企业、个体经营者的准许从事某项生产经营活动的凭证。其…

    2022年8月31日
    540
  • 网络营销特点主要有哪些,网络营销六大特点介绍

    随着互联网的日益普及,为了通过互联网推广自身的产品或者服务,越来越多的企业建立了网站。然而,建立网站并不意味着企业就能通过互联网向潜在客户推广自身的产品或服务。网站只是企业展示产品、介绍服务的重要平台之一,相对于一家商店,而网站里的页面就是商店里存放商品的货架。想让顾客购买你的产品,首先也是最重要的就是要吸引顾客走进这个商店,即访问你的网站,这就涉及网络营销的问题。 网络营销是什么 网络营销是一种…

    2022年7月11日
    520
  • pdf怎么编辑文字内容,修改pdf文档内容技巧

    总是有很多人一直在网上提问:PDF文件怎么修改文字、PDF文件如何编辑图片等问题。之所以不能编辑,那是因为大家一直都习惯于用PDF阅读器来打开PDF文件,而它并没有编辑PDF文件的权限。想要编辑PDF文件,还得用拥有编辑权限的PDF编辑器。下面跟着小编一起来看下PDF编辑器怎么编辑PDF里的文字与图片。 迅捷PDF编辑器下载:http://www.duote.com/soft/54939.html…

    2022年6月17日
    990
  • 网上创业平台有哪些,正规的网上创业平台推荐

    今年的淘宝可不是一般的难做啊,不刷一单没有,刷吧,马云封店。就是刷单,那成本不少啊,现在至少18元吧。一般店铺真刷不起,开直通车500元,一会烧没,一个波浪都不起,辛酸都是泪啊。 淘宝同质化严重,压价格,拼爆款,看好评,殊不知爆款是刷出来的,好评都是买来的,已经没参考价值,可是很多买家不明就里,只看交易量和好评,让我们的有品质的好货卖不动,而次品横行。 除了淘宝,我们个人还能有哪些平台开店。这是一…

    2022年7月21日
    770
  • 电视盒子什么品牌好(5款超好用性价比又高的电视盒子)

    电视盒子品牌多又杂,各大品牌还推出不同型号不同功能的盒子,让新手用户看的眼花缭乱,对于电视盒子什么牌子更好,耐心看完这篇文章,相信每个人都心里有数了。 1.盒子品牌挑知名大牌子。 电视盒子什么牌子好,挑大牌的肯定错不了。大品牌一般技术成熟,售后服务和质量都更加有保障。而山寨杂牌盒子很多为了快速上市挣钱,均无成熟技术支持,更没有专业售后服务,盒子买回去隐患无穷。 2.操作系统很重要,安卓还是阿里云呢…

    2022年9月10日
    440
  • 机场行李托运怎么收费,最新飞机行李托运流程及领取流程

    外出旅游或者工作我们正常都会携带一些行李,但坐飞机很多时候行李都是需要托运的,对于行李托运,飞机行李托运的要求要比做火车和坐汽车要多很多,很多人对于飞机行李托运规定不是非常的了解,今天小编就给大家来说一说飞机托运行李规定2020,飞机托运行李怎么收费以及飞机托运行李箱尺寸等相关问题。 一、飞机托运行李规定2020 大家应该都知道,对于飞机托运行李是有很严格的规定的,很多人对此都不是非常了解,今天小…

    2022年9月20日
    560
  • 微信图片清理了怎么恢复,微信图片过期还原技巧

    最近看有网友问:“微信图片删除了还能找回来吗?怎样才能找回来呢?”其实微信图片如果删除了,正常情况下是无法找回来的,但是也不是没有希望了,我们可以借助工具的帮助,将之前删掉的微信聊天记录找寻回来,这样自然能看到微信图片啦!这时候又有网友说那怎样才能找回误删的微信聊天记录呢?什么工具比较好用呢? 这就不得不提极速恢复精灵了,极速恢复精灵特别好用!极速恢复精灵是针对苹果手机推出的优秀的数据恢复工具,一…

    2022年6月10日
    640
  • 百度推广后台怎么登陆,手把手教你个人如何做百度推广

    做百度推广肯定是离不开关键词这个东西的,很多时候流量不够了,钱花费不出去了,近期效果波动大了,都有可能是因为关键词更新频次不够,关键词添加不够,那么我们有哪些可以免费拓展关键词的工具或者方式呢? 1、百度自身工具 常见也是我们使用最多的,百度推广里面是有一个关键词规划师的,里面放进去一个词根之后会拓展相对应的词,这里面注意地域以及已有关键词去重的开关状态。还有就是百度推广助手,点击关键词也可以通过…

    2022年5月19日
    650

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信