淘宝:消息中间件——notify

为什么会使用消息中间件?

消息中间件产生的背景?

用户在银行的网关付钱后,银行需要通知到支付宝

但银行的系统不一定能发出通知;

如果通知发出了,不一定能通知到;

如果通知到了,不一定不重复通知一遍;

消息中间件的实际应用

例如,拍下一件商品,在交易管理系统中完成时,它需要

通知商品管理系统减少库存,

通知旺旺服务系统发送旺旺提醒,

通知物流系统上门取货,

通知SNS系统分享订单,

通知公安局的系统这是骗子……

用户的一次请求,在底层系统可能产生10次的消息通知


Notify是一个分布式的消息中间件系统,支持消息的订阅、发送和消费

NotifyServer在ConfigServer上面注册消息服务,

消息的客户端通过ConfigServer订阅消息服务。

某个客户端调用NotifyServer发送一条消息,NotifyServer负责把消息发送到所有订阅这个消息的客户端

为了保证消息一定能发出,且对方一定能接受到,消息数据本身需要记录到数据库中

应用系统通过Notify可以实现分布式事务——BASE(基本可用(basically available)、软状态(soft state)、最终一致性(eventually consistent)