Spring集成Apache ActiveMQ配置实现

Apache ActiveMQ是目前比较流行的开源、多协议、基于Java的消息服务器之一。它支持行业标准协议,因此用户可以在各种语言平台上获得范围广泛而高效客户端。C、C++、Python、.NET等编程语言。使用无所不在的AMQP协议集成您的多平台应用程序。使用STOMP替换WebSockets在Web应用程序之间交换消息。使用MQTT协议管理物联网设备。支持你现有及其他的JMS基础架构。ActiveMQ提供了支持任何消息传递用例的能力和灵活性。

下载地址:http://activemq.apache.org/components/classic/download/

官方文档:http://activemq.apache.org/components/classic/documentation

FAQ帮助文档:http://activemq.apache.org/faq

1.配置连接工厂

@Bean
public ActiveMQConnectionFactory activeMQConnectionFactory(){
    ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
    //factory.setBrokerURL("mqtt://0.0.0.0:1883");
    factory.setBrokerURL("tcp://0.0.0.0:61616");
    return factory;
}

2.配置JmsTemplate(生产者)

@Bean
public JmsTemplate jmsTemplate(){
    JmsTemplate jmsTemplate = new JmsTemplate();
    jmsTemplate.setConnectionFactory(this.activeMQConnectionFactory());
    return jmsTemplate;
}

3.配置监听器(消费者)

/**
 * new an activeMQ queue.
 * @return
 */
@Bean
public ActiveMQQueue activeMQQueue(){
    ActiveMQQueue queue = new ActiveMQQueue("queue/default");
    return queue;
}

/**
 * new an activeMQ message listener.
 * @return
 */
@Bean
public ActiveMQMessageListener activeMQMessageListener(){
    return new ActiveMQMessageListener();
}

/**
 * default message listener container.
 * @return
 */
@Bean
public DefaultMessageListenerContainer defaultMessageListenerContainer(){
    DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
    container.setConnectionFactory(this.activeMQConnectionFactory());
    container.setDestination(this.activeMQQueue());
    container.setMessageListener(this.activeMQMessageListener());
    return container;
}

配置起来非常简单,那么使用起来呢,下面来看一个例子:

@Autowired
private JmsTemplate jmsTemplate;//注入JMS模板类(生产者)

@Autowired
private ActiveMQQueue queue;//注入消息队列

@RequestMapping(value = "/test", method = RequestMethod.GET)
public ResultResp<Void> test(HttpServletRequest request) {

    ResultResp<Void> resp = new ResultResp<>();
    ActiveMQMessagePojo mqMessagePojo = new ActiveMQMessagePojo("Test for demo..." + System.currentTimeMillis());
    jmsTemplate.send(queue, mqMessagePojo);

    return resp;
}

//ActiveMQMessagePojo实体类:
import org.springframework.jms.core.MessageCreator;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;

/**
 * MQ message
 * Created by alan on 2018/1/13.
 */
public class ActiveMQMessagePojo implements MessageCreator {

    private String msg;

    public ActiveMQMessagePojo(){

    }

    public ActiveMQMessagePojo(String msg){
        this.msg = msg;
    }

    @Override
    public Message createMessage(Session session) throws JMSException {
        return session.createTextMessage(msg);
    }

}

就是这样子简单。

 

apache下开启ssl访问

openssl Windows下已编译好的命令行程序:

http://downloads.sourceforge.net/gnuwin32/openssl-0.9.8h-1-bin.zip

一、lamp开启ssl

首先需要安装openssl和apache的ssl模块,执行:

yum install openssl mod_ssl -y

即可,接下来的配置方法和以下内容类似

一、wamp开启SSL

#修改conf文件。
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
把前面的#号去掉即可

Apache查看连接数和限制当前的连接数

在wamp环境下查看apche连接数和限制当前的连接数

httpd_mpm.conf文件在你apache安装上当的\\conf\\extra中,还在就是在要apache httpd.conf中把#Include conf/extra/httpd-mpm.conf前面的#号去了哦。

Apache在配置编译时可以自主的选择想要使用的MPM模块,使用./configure –with-mpm=MPM命令。我们主要了解prefork和worker这两种MPM模块。

APACHE限制带宽

下载模块: ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c
官方网址: http://www.cohprog.com/mod_bandwidth.html
安装方法
1、APACI 安装
cp mod_bandwidth.c /path/to/apache/source
./configure –add-module=mod_bandwidth.c –permute-module=BEGIN:bandwidth