时间单位为毫秒: 1.使用setTimeToLive方法为所有的消息设置过期时间; 2.使用send方法为每一条消息设置

时间:2021-12-24 07:33:36

标签:

4.1 开发JSM的法式

广义上说,一个JMS 应用是几个JMS 客户端交换动静,开发JMS 客户端应用由以下几步组成: 
    用JNDI 得到ConnectionFactory 东西; 
    用ConnectionFactory 创建Connection 东西; 
    用Connection 东西创建一个或多个JMS Session;

用JNDI 得到方针行列队伍或主题东西,即Destination 东西;
    用Session 和Destination 创建MessageProducer 和MessageConsumer; 
    通知Connection 开始传送动静。

4.2 编程模版 4.2.1 ConnectionFactory

要初始化JMS,则需要使用连接工厂。客户端通过创建ConnectionFactory成立到ActveMQ的连接,一个连接工厂封装了一组连接配置参数,这组参数在配置ActiveMQ时已经界说,例如brokerURL参数,此参数传入的是ActiveMQ处事地点和端口,撑持openwire协议的默认连接为tcp://localhost:61616,撑持stomp协议的默认连接为tcp://localhost:61613。

注:由于C++客户端暂时仅撑持stomp协议,所以需要使用tcp://localhost:61613。

ConnectionFactory撑持并发。

Java客户端:

ActiveMQConnectionFactory结构要领:

ActiveMQConnectionFactory();

ActiveMQConnectionFactory(String brokerURL);

ActiveMQConnectionFactory(String userName, String password, String brokerURL) ;      

ActiveMQConnectionFactory(String userName, String password, URI brokerURL) ;

ActiveMQConnectionFactory(URI brokerURL);

此中brokerURL为ActiveMQ处事地点和端口。

例如:

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.0.135:61616");

或者

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();

connectionFactory. setBrokerURL("tcp://192.168.0.135:61616");

4.2.2 Connection

在告成创建正确的ConnectionFactory后,下一步将是创建一个连接,它是JMS界说的一个接口。ConnectionFactory卖力返回可以与底层动静通报系统进行通信的Connection实现。凡是客户端只使用单一连接。按照JMS文档,Connection的目的是“操作JMS供给者封装开放的连接”,以及暗示“客户端与供给者处事例程之间的开放TCP/IP套接字”。该文档还指出Connection应该是进行客户端身份验证的处所,除了其他一些事项外,客户端还可以指定惟一标识表记标帜符。

当一个Connection被创建时,它的传输默认是*的,必需使用start要领开启。

一个Connection可以成立一个或多个的Session。
    当一个措施执行完成后,必需*之前创建的Connection,否则ActiveMQ不能释放资源,*一个Connection同样也*了Session,MessageProducer和MessageConsumer。

Connection撑持并发。

4.2.2.1 创建Connection
Java客户端:

ActiveMQConnectionFactory要领:

Connection createConnection();

Connection createConnection(String userName, String password);

例如:

Connection connection = connectionFactory.createConnection();

4.2.2.2 开启Connection
Java客户端:

ActiveMQConnection要领:

void start();

例如:

Connection.start();

4.2.2.3  *Connection
Java客户端:

ActiveMQConnection要领:

void close();

例如:

Connection.close();

4.2.3 Session

一旦从ConnectionFactory中获得一个Connection,就必需从Connection中创建一个或者多个Session。Session是一个发送或接收动静的线程,可以使用Session创建MessageProducer,MessageConsumer和Message。

Session可以被事务化,也可以不被事务化,凡是,可以通过向Connection上的适当创建要领通报一个布尔参数对此进行设置。

Java客户端:

ActiveMQConnection要领:

Session createSession(boolean transacted, int acknowledgeMode);

此中transacted为使用事务标识,acknowledgeMode为签收模式。

例如:

Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

4.2.4 Destination