为什么会使用消息中间件?
消息中间件产生的背景?
用户在银行的网关付钱后,银行需要通知到支付宝
但银行的系统不一定能发出通知;
如果通知发出了,不一定能通知到;
如果通知到了,不一定不重复通知一遍;
消息中间件的实际应用
例如,拍下一件商品,在交易管理系统中完成时,它需要
通知商品管理系统减少库存,
通知旺旺服务系统发送旺旺提醒,
通知物流系统上门取货,
通知SNS系统分享订单,
通知公安局的系统这是骗子……
用户的一次请求,在底层系统可能产生10次的消息通知
Notify是一个分布式的消息中间件系统,支持消息的订阅、发送和消费
NotifyServer在ConfigServer上面注册消息服务,
消息的客户端通过ConfigServer订阅消息服务。
某个客户端调用NotifyServer发送一条消息,NotifyServer负责把消息发送到所有订阅这个消息的客户端
为了保证消息一定能发出,且对方一定能接受到,消息数据本身需要记录到数据库中
应用系统通过Notify可以实现分布式事务——BASE(基本可用(basically available)、软状态(soft state)、最终一致性(eventually consistent)