Message Queue-消息中间件

Message Queue-消息中间件

  • 概念
    • ActiveMQ
    • RabbitMQ
      • Exchange
    • Kafka

概念

定义  	项目构建管理
本质 	异步处理技术	[节省服务响应时间,提高系统吞吐量]
应用程序:Application
消息:	Message
排队: 	Application通过Queue通信 [作用:除去接收和发送Application,同时执行的要求。]
消息队列:Application对Application通过读写出入队列的通信方法。
消息传递:Application之间通过Message发送数据通信,而不是直接调用来彼此通信。[ 直接调用: 诸如RPC ]

组成		[1]项目对象模型	Project Object Module		POM.xml
		[2]项目生命周期	Project Lifecycle
		[3]依赖管理系统	Dependency Management System
功能		[1]项目构建自动化:编译、测试、打包、部署、发布	Project Lifecycle
		[2]依赖管理统一化:坐标管理、仓库、归档文件		Dependency Management System	   
		应用程序  Application       消息队列Message Queue
通信
通信方式	[1]直接调用—建立连接	RPC
		[2]间接通知—不需连接	MQ		

区别:
 		[1]ActiveMQ	
 		[2]RabbitMQ	智能代理、弱智消费者 [ 向消费者提供一致的消息传递 ]
 		[3]Kafka	弱智代理、智能消费者 [ 高容量的发布-订阅消息和流设计 ]

ActiveMQ

定义  	
本质 	
组成		[1]
		[2]
		[3]
功能		[1]
		[2]

RabbitMQ

定义  	实现高级消息队列协议的消息中间件		AMQP
本质 	通用消息代理	[通信模式:点对点,请求-回复和发布-订阅]
功能		异步消息
		[1]多消息传递协议
		[2]消息队列
		[3]传递确认
		[4]灵活路由到队列
		[5]多种交换类型
角色
	Producer	消息生产者	[Application-Send-Message	应用投递消息	Sender发送方]
	Consumer	消息消费者	[Application-Receive-Message应用接受消息	Receiver接收方]
	Server  	服务端 [Broker]
	Client		客户端 [Producer、Consumer]
组件
	Broker	消息队列服务器	Broker:Vhost=1:N
	Vhost	虚拟主机			分离用户权限	
	Channel 消息通道			Channel:会话任务=1:1	
	Exchange消息交换机		指定消息规则,路由队列
	Queue	消息队列载体		Message:Queue=1:N
	Bind	绑定动作			依据路由规则,绑定Exchange与Queue
	Routing Key 路由关键字	Exchange根据Routing Key进行消息投递
流程
	第一步:Client—Producer
		[1]连接Broker,打开Channel
		[2]声明Exchange,设置属性
		[3]声明Queue,设置属性
		[4]使用RoutingKey,在Exchange与Queue之间Binding
		[5]投递Message至Exchange
	第二步:Server—Broker  	
	第三步:Client—Consumer

Exchange

分类Type
		[1]Fanout—广播模式
		[2]Worker—工作模式
		[3]Direct—转发模式	根据Key投递
		[4]Topic —主题模式	根据主题匹配 	abc.# \ abc.* \  [ 多#、*  ] 
持久化Durable 		
	条件:如果Exchange与Queue都是Durable,那么Binding也是Durable—保证一致性

Kafka

你可能感兴趣的:(Message Queue-消息中间件)