消息中间件MQ之ActiveMQ学习总结(中)

举报
赵KK日常技术记录 发表于 2023/06/24 01:55:02 2023/06/24
【摘要】 昨天简单总结了看资料了解的MQ基本知识点,实际操作以后,会有地方与预想不一致,多次试验后解决,为了加强记忆,需要根据官网文档继续整理,并尽可能实践,没有什么特殊平台要求,不要跟我说直接读官网吗,读源码,你咋那能呢?专业名词那么多,语义表达逻辑又不一样,你要说你专业级口语畅通交谈,我自闭了!        MQ在Linux中主要为了搭配后期的服务高可用,现在的技术部跟高可用,持久化,分布式,集...
昨天简单总结了看资料了解的MQ基本知识点,实际操作以后,会有地方与预想不一致,多次试验后解决,为了加强记忆,需要根据官网文档继续整理,并尽可能实践,没有什么特殊平台要求,不要跟我说直接读官网吗,读源码,你咋那能呢?专业名词那么多,语义表达逻辑又不一样,你要说你专业级口语畅通交谈,我自闭了!

        MQ在Linux中主要为了搭配后期的服务高可用,现在的技术部跟高可用,持久化,分布式,集群沾点边,都不好意思在这泱泱子民的华夏露面了,总的来说你就发现用法不一样,但逻辑,理念一个样。

        呼!根据刷面试题总结实践来看,动不动是手写Spring框架,手写Tomcat,手写MQ的,看把你能的,什么网易云课堂,腾讯享学课堂我都跟着刷过,你咋不手写了Java呢,能离开基本理念算我输!


        不废话,还得手把手把MQ的整合,特性等测试完,但家里现在电脑没有Linux,只能多写理论知识了,回头周末再补。


        MQ的发布模式主要为Queue,Topic,简单理解一下-

        Queue:就相当于synchronize,串行,一对一,这种理念,你发给我一条消息,先传到腾讯服务器,再转发给我,我手机关机,消息也不会丢失。   


        Topic:翻译是主题,但是在官网中可以看到,点击Subscribers(订阅)

![请在此添加图片描述](https://ask.qcloudimg.com/http-save/yehe-6026903/vg231vox6i.jpeg?qc_blockWidth=738&qc_blockHeight=530)

才显示细节消息,相当于,并发,一对多,微信公众号,你在未订阅之前的消息,是不被接收的,当你订阅后,我一个人发布消息到公众号,到服务器,订阅者为多人,那么这些订阅者都会收到消息。

        JMS的组成结构:消息服务,可理解为Http请求,你发布消息,和发送请求,关注的除了消息本身,更多关注的是消息头,消息体,消息属性等;

       角色分为消息的提供者(Procvider)----MQ服务器


                               生产者( Producer)----发布消息客户端


                                消费者(consumer)----消费消息


                                  消息(message)        

![请在此添加图片描述](https://ask.qcloudimg.com/http-save/yehe-6026903/b5si155ujj.png?qc_blockWidth=913&qc_blockHeight=491)

        虽然英文专业名词不行,但是我会翻译啊!

![请在此添加图片描述](https://ask.qcloudimg.com/http-save/yehe-6026903/xzpckk0nf5.png?qc_blockWidth=64&qc_blockHeight=64)

        但是你看看

![请在此添加图片描述](https://ask.qcloudimg.com/http-save/yehe-6026903/yb2cbygv0k.jpeg?qc_blockWidth=1080&qc_blockHeight=570)

    好好的broker应为MQ的实例,结果给翻译成3个结果,你说看官网文挡,哪能简单就理解么!

 消息先订阅  再发布   订阅后取关的再关注 历史消息还会推送

    消息重复消费

    消费者事务为true   但是未提交

    session.commit()提交后,正常

  **MQ的持久化**


 说到持久化,第一个想起的就是redis的持久化特性,RDB,AOF


![请在此添加图片描述](https://ask.qcloudimg.com/http-save/yehe-6026903/cmdaaz6fn1.jpeg?qc_blockWidth=1070&qc_blockHeight=612)

        把消息放入数据库,物理内存的方式最为有效,但是频繁读写的就影响IO,说道IO就得说什么哦空间复杂度!!!


        割!

----

        1.0:mq的持久化


                ①:AMQ


                ②:KahaDb(默认)事务日志+索引


                ③:JDBC :MQ+MySql


                ④:LevelDB(开启5G时代)


                ⑤:JDBCPlus(Journal)先访问journal,在访问JDBC,避免频繁读写


        2.0:高可用 redis+zookeeper 主从集群


        今天到此为止,早上起的有点早,天气现在有热,有没有Linux环境,这么干巴巴的写也没意思,剩丢丢知识点明天刷完
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。