消息的同步和异步接收:
消息的同步接收是指客户端主动去接收消息,客户端可以采用MessageConsumer的receive方法去接收下一个消息。
Message receive()
Message receive(long timeout)
Message receiveNoWait()
消息的异步接收是指当消息到达时,ActiveMQ主动通知客户端,可以通过注册一个实现MessageListener接口的对象到MessageConsumer。 MessageListener只有一个必须实现的方法—— onMessage,它只接收一个参数,即Message。在为每个发送到Destination的消息实现onMessage时,将调用该方法。
Message
JMS程序的最终目的是生产和消费的消息能被其他程序使用,JMS的Message是-一个既简单又
不乏灵活性的基本格式,允许创建不同平台上符合非JMS程序格式的消息。Message 由以下几部
分组成:消息头,属性和消息体。
BlobMessage createBlobMessage(File file)
BlobMessage createBlobMessage(InputStream in)
BlobMessage createBlobMessage(URL url)
BlobMessage createBlobMessage(URL url, boolean deletedByBroker)
BytesMessage createBytesMessage()
MapMessage createMapMessage()
Message createMessage()
ObjectMessage createObjectMessage()
ObjectMessage createObjectMessage(Serializable object)
TextMessage create TextMessage()
TextMessage create TextMessage(String text)
我们一-般会在接收端通过instanceof方法去区别数据类型。
Mq一般不要传大的数据,几M,十几m 是可以的,但是数据太大的话,1会降低效率2会产生各种问题
临时消息
ActiveMQ通过create TemporaryQueue和create Temporary Topic创建临时
目标,这些目标持续到创建它的Connection关闭。只有创建临时目标的
Connection所创建的客户端才可以从临时目标中接收消息,但是任何的生产
者都可以向临时目标中发送消息。如果关闭了创建此目标的Connection,那
么临时目标被关闭,内容也将消失。
TemporaryQueue create TemporaryQueue();
TemporaryTopic create TemporaryTopic();