Scala和java开发的消息中间件
线程之间数据交互
每个线程都有自己的栈内存,但是所有线程共用堆内存。只要把需要共享的数据放到堆内存就可以实现数据交互。在java并发工具包中java.util.concurrent,可以实现线程之间数据共享。
进程之间数据交互
一般通过socket
消息队列的两种模式
点对点模式
消费者主动拉数据,消息收到后清除消息。
producer ----生产---->message queue ----消费---->comsumer---->确认----mq---->mq删除已经消费的消息
发布订阅模式
- 可以有多个topic主题(浏览,点赞,收藏,评论等)
- 消费者消费数据之后,不删除数据
- 每个消费者互相独立,都可以消费到数据
producers----消息---->topic----推送---->comsumers