![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA知识点复习-消息队列
__Forever__
Coder;
算法爱好者;
数学建模爱好者;
研究生期间软件硬件都做,-_-||
热爱交朋友,探讨程序世界的美妙;
目前工作从事C,C++,Linux;
邮箱:Fugangli@foxmail.com,欢迎骚扰!
展开
-
消息队列(一)
1.为什么要使用消息队列1.异步(减少响应所需要的时间);2.降低耦合性3.削峰;1.1通过异步处理提高系统性能在不使用消息队列服务器的时候,用户的请求数据直接写入数据库,在高并发的情况下数据库压力剧增,使得响应速度变慢。但是在使用消息队列之后,用户的请求数据发送给消息队列之后立即返回,再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库。由于消息队列服务器处理速度快于数...原创 2019-08-21 09:27:45 · 224 阅读 · 0 评论 -
分布式搜索引擎入门(四)es在数据量很大的情况下(数十亿级别)如何提高查询效率?
前言:本文章来着中华石杉老师视频,老师真滴棒!es在数据量很大的情况下(数十亿级别)如何提高查询效率?背景: es说白了其实性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下5秒-10秒,坑爹了。第一次搜索的时候,是5~10秒,后面反而就快了,可能就几百毫秒。说实话,es性能优化是没有什么银弹的,啥意思呢?就是不要期待着随手调一个参...原创 2019-08-30 11:00:24 · 819 阅读 · 0 评论 -
分布式搜索引擎入门(三)es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊?
前言:本文章来着中华石杉老师视频,老师真滴棒!背景:用es无非就是写入数据,搜索数据。你要是不明白你发起一个写入和搜索请求的时候,es在干什么,那你真的就是。。。。对es基本就是个黑盒,你还能干啥?你唯一能干的就是用es的api读写数据了。。。要是出点什么问题,你啥都不知道,那还能指望你什么呢?是不是。。(1)es写数据过程1)客户端选择一个node发送请求过去,这个node就是coo...原创 2019-08-29 10:28:55 · 311 阅读 · 0 评论 -
分布式搜索引擎入门(二)es的分布式架构原理能说一下么(es是如何实现分布式的啊)?
前言:本文章来着中华石杉老师视频,老师真滴棒!es的分布式架构原理能说一下么(es是如何实现分布式的啊)?现在分布式搜索基本已经成为大部分互联网行业的java系统的标配,其中尤为流行的就是es(elasticsearch),前几年es没火的时候,大家一般用solr。但是这两年基本大部分企业和项目都开始转向es了。es的分布式架构设计能介绍一下么?1.elasticsearch设计的理念就是...原创 2019-08-28 21:25:01 · 239 阅读 · 0 评论 -
如何保证消息队列的高可用?(三)
前言:本文档参考中华石杉老师视频,老师真滴棒!MQ的高可用性怎么保证?(1)RabbitMQ的高可用性RabbitMQ是比较有代表性的,因为是基于主从做高可用性的。rabbitmq有三种模式:单机模式,普通集群模式,镜像集群模式。单机模式就是demo级别的,一般就是你本地启动了玩玩儿的,没人生产用单机模式普通集群模式意思就是在多台机器上启动多个rabbitmq实例,每个机器...原创 2019-08-21 09:28:12 · 100 阅读 · 0 评论 -
分布式搜索引擎入门(一)
Lucene介绍与入门使用我们生活中的数据总体分为两种:结构化数据和非结构化数据。(1)结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。(2)非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等磁盘上的文件。1.结构化数据查询方法:数据库中的搜索很容易实现,通常都是使用sql语句进行查询,而且能很快的得到查询结果。为什么数据库搜索很容易?因为数据库中...原创 2019-08-21 11:04:58 · 210 阅读 · 0 评论 -
kafka、activemq、rabbitmq、rocketmq都有什么优点和缺点啊?(二)
前言:本博客整理来自于中华石杉老师的视频,老师真心棒!1.单机吞吐量ActiveMQ:万级,吞吐量比RocketMQ和Kafka要低一个数量级。RabbitMQ:万级,吞吐量比RocketMQ和Kafka要低一个数量级。RocketMQ:10万级,RocketMQ也是可以支撑高吞吐的一种MQ。Kafka:10万级,这是Kafka最大的优点,就是吞吐量高;一般配合大数据类的系统来进行实时...原创 2019-08-21 09:28:06 · 553 阅读 · 0 评论 -
总结一下MQ面试问题?
(1)你们为什么使用消息队列啊?面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处先说一下消息队列的常见使用场景吧,其实场景有很多,但是比较核心的有3个:解耦、异步、削峰解耦:现场画个图来说明一下,A系统发送个数据到BCD三个系统,接口调用发送,那如果E系统也要这个数据呢?那如...原创 2019-08-21 09:28:31 · 165 阅读 · 0 评论 -
如果写一个消息队列,该如何进行架构设计?(七)
前言:本文章来着中华石杉老师视频,老师真滴棒!如果写一个消息队列,该如何进行架构设计?首先这个mq得支持可伸缩性吧,就是需要的时候快速扩容,就可以增加吞吐量和容量,那怎么搞?设计个分布式的系统呗,参照一下kafka的设计理念,broker -> topic -> partition,每个partition放一个机器,就存一部分数据。如果现在资源不够了,简单啊,给topic增加pa...原创 2019-08-21 09:28:19 · 113 阅读 · 0 评论 -
如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?(七)
前言:本文章来着中华石杉老师视频,老师真滴棒!问题1. 如何解决消息队列的延时以及过期失效问题?2. 消息队列满了以后该怎么处理?3. 有几百万消息持续积压几小时,说说怎么解决?背景:可能你的消费端出了问题,不消费了,或者消费的极其极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?或者是整个这就积压了几个小时,你这个时候怎么办?或者是你积压的时间太...原创 2019-08-20 21:05:19 · 1019 阅读 · 0 评论 -
如何保证消息的顺序性?(六)
前言:本文章来着中华石杉老师视频,老师真滴棒!如何保证消息的顺序性?背景:在mysql里增删改一条数据,对应出来了增删改3条binlog,接着这三条binlog发送到MQ里面,到消费出来依次执行,起码得保证人家是按照顺序来的吧?不然本来是:增加、修改、删除;你楞是换了顺序给执行成删除、修改、增加,不全错了么。RabbitMQ(1)rabbitmq:一个queue,多个consumer,这不...原创 2019-08-20 20:35:50 · 1159 阅读 · 0 评论 -
消息队列一附录
1、面试题为什么使用消息队列啊?消息队列有什么优点和缺点啊?kafka、activemq、rabbitmq、rocketmq都有什么区别以及适合哪些场景?2、面试官心理分析其实面试官主要是想看看:(1)第一,你知道不知道你们系统里为什么要用消息队列这个东西?我之前面试就见过大量的候选人,说自己项目里用了redis、mq,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用...原创 2019-08-21 09:27:58 · 80 阅读 · 0 评论 -
如何保证消息的可靠性传输(如何处理消息丢失的问题)?(五)
前言:本文档参考中华石杉老师视频,老师真滴棒!如何保证消息的可靠性传输(如何处理消息丢失的问题)?用mq有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是刚才说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。这个丢数据,mq一般分为两种,要么是mq自己弄丢了,要么是我们消费的时候弄丢了。(1)Rabbitmq1)生产者弄丢了数据生产者将数据发送到rabbitmq的时候...原创 2019-08-19 14:38:03 · 165 阅读 · 0 评论 -
如何保证消息不被重复消费(如何保证消息消费时的幂等性)?(四)
关键:本文档参考中华石杉老师视频,老师真滴棒!1.前言比如Rabbitmq、Rocketmq、Kafka,都有可能会出现重复消费的问题,正常。因为这问题通常不是mq自己保证的,是给你保证的。然后我们挑kafka来举个例。kafka实际上有个offset的概念,就是每个消息写进去,都有一个offset,代表他的序号,然后consumer消费了数据之后,每隔一段时间,会把自己消费过的消息的...原创 2019-08-19 13:30:40 · 165 阅读 · 0 评论 -
分布式缓存(一)缓存是如何使用的?缓存如果使用不当会造成什么后果?
前言:本文章来着中华石杉老师视频,老师真滴棒!缓存是如何使用的?缓存如果使用不当会造成什么后果?1.为啥在项目里要用缓存呢?用缓存,主要是俩用途,高性能和高并发1)高性能假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作mysql,半天查出来一个结果,耗时600ms。但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户。那么此时咋办?缓存啊,折...原创 2019-09-01 14:39:30 · 149 阅读 · 0 评论