消息服务器

消息服务器,是一种功能单一的用来接受、传递、转发消息的服务器。

消息服务器作为网络的节点,专门用来存储、转发网络上的数据、信息(例如:聊天信息)。做一个形象的比喻:消息服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话;同样如此,我们利用个人电脑,PDA,手机等,发送消息,也必须经过消息服务器,因此也可以说是消息服务器在“组织”和“领导”这些接收消息设备。

它是网络上一种为客户端计算机提供各种消息服务的高性能的计算机。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。

消息服务器之activeMQ

什么是activeMQ?

它是一种消息服务器,由开源组织apache提供。我们把它简单理解为一个装东西的容器,可以往里面装东西,又可以取出装的这些东西,就像存钱罐,我们可以往里面存钱,又可以取钱。服务器嘛,就是拥有存数据和取数据的功能嘛,比如我们百度网盘,我们既可以往里面存文件,又可以取文件,只不过这个服务器装的是消息罢了,所以叫消息服务器。

activeMQ默认配置下启动会启动8161和61616两个端口,其中8161是mq自带的管理后台的端口,61616是mq服务默认端口 。8161是后台管理系统,61616是给java用的tcp端口。

对于它来说,有队列和主题两种消息模式。

对于它来说,有发送消息方和接收消息方,其实说来就是往服务器中装消息和取出消息而已。

对于它来说,它能够接收的消息类型有:

只要这个消息服务器中装了数据,我们就可以去这个消息服务器中去获取这些数据。

队列和主题两种消息模式的区别

队列是点对点的模式,什么意思呢?就是说我们向队列中装了数据(我说的消息就是数据,数据就是消息呵)之后,我们接收方想去把里面的数据取出来,那么一次只能有一个接受方去取这些信息,如果有多个接收者去取,那么它们就去抢这个权利,哪个抢到了那就获得本次的接收权。一个队列中有非常多的数据,比如里面装了200个对象数据,而每次只能取出其中一条数据,所以接收方就会一直去抢这个权利,都是概率问题,直到把里面的数据取完,每条数据被取走后,消息服务器中就不存在这条数据了,所以每个接收者取出的信息都只是部分数据。它的数据如果没有接受者去取出来,会一直存在于消息队列中,直到被取走。

主题订阅模式什么意思呢?它类似于我们的广播,发送方只管发布消息(数据),到底是谁来接受我不管,反正只要有接收者来接收这些发布的消息,每个接收者都能获得这些全部的消息,不存在抢的问题。它默认的是,发布者往主题中添加数据过程中,如果没有接受者来接受这些数据,那么这些消息也会消失。就像我们听广播,广播在播放过程中,你没有听到这个广播,那么之前广播播放的内容你也就错过了,就是这个道理。但是这个也可以调整数据销毁时间: