【中间件】消息中间件学习总结

幂等:在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()和setTrue()”函数就是一个幂等函数.更复杂的操作幂等保证是利用唯一交易号(流水号)实现.

1. 为何使用Notify: 核心应用场景:异步+解耦

2. Topic, MessageType, Group

group是某 个集群的意思,是一组机器的意思,这对集群扩容很方便,只需要将某台机器的group设置成跟某个集群写成一样,就可以扩容

3. 无 序和重复(重复是指的Notify接收到一条消息可能接收多次,同样,转发一条消息也可能转发多次,所以不能保证消息不重复)

4. 无序问题如何解决:保证一个正向状态机,只能从1->2->3->4,保证这种正向状态,业务规避

5. 重复问题:去重表或使用业务规避(保证等幂性)

6. 消息的事务:A先发一个pre的消息到notify,这个pre的消息notify不会立刻把消息转出去;A处理完相应请示之后,A再发一个commit的消息到notify,此时notify就会将消息发出去;如果A没有处理完成,则A发一个rollback的消息到notify;还有一种情况,如果A在发完commit之后,挂了,notify一直未收到commit或rollback消息,notify就不知道该怎么办,这个时候notify会发一个请示到A,如果A一直不应答,那就标记这个消息为可疑消息,notify会一直发起询问(其他类似配置的机器)

7. 消息堆积:内存处理速度:硬盘处理速度-1:1000,方法1:读取和写入都在磁盘,对磁盘要求很高,很稳定,方法2:让99%的请示都在内存

    1. care消息是否可用,可以删除相应的消息
    2. 已经堆消息了,赶紧把应用恢复
posted @ 2020-08-21 11:50  我是小菜鸟  阅读(283)  评论(0编辑  收藏  举报