面试基础
摘要:synchronized关键字的底层原理: synchronized关键字与JVM的monitor有关,monitor里面有个计数器,一开始计数器为0。如果一个线程要获取monitor锁,就看看他的计数器是不是0,如果是0的话, 那么就说明没有人加锁,他就可以获取锁,然后对计数器加1.加锁,一般来说
阅读全文
posted @
2022-08-13 18:31
网恋被骗两千八
阅读(21)
推荐(0) 编辑
redis缓存雪崩和缓存穿透
摘要:什么是缓存雪崩? 在使用缓存时,通常会对缓存设置过期时间,一方面目的是保持缓存与数据库数据的一致性,另一方面是减少冷缓存占用过多的内存空间。 但当缓存中大量热点缓存采用了相同的实效时间,就会导致缓存在某一个时刻同时实效,请求全部转发到数据库,从而导致数据库压力骤增,甚至宕机。从而形成一系列的连锁反应
阅读全文
posted @
2022-08-10 23:13
网恋被骗两千八
阅读(27)
推荐(0) 编辑
面试---redis基础数据类型以及过期策略
摘要:redis都有哪些数据类型?分别在哪些场景下使用比较合适? String:最基本的类型,做简单的kv缓存 hash:类似于map的一种结构,一般是将结构化的数据缓存在redis中 list:有序列表 set:无序集合,自动去重 sorted set :排序的set,去重但是可以排序;排行榜 zadd
阅读全文
posted @
2022-08-09 18:49
网恋被骗两千八
阅读(74)
推荐(0) 编辑
面试---缓存
摘要:redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis要比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发?) redis支持服务器端的数据操作; 由于redis只使用单核,而memcached可以使用多核,所以平均每一个
阅读全文
posted @
2022-08-09 17:35
网恋被骗两千八
阅读(18)
推荐(0) 编辑
面试---缓存
摘要:在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果? 项目中缓存是如何使用的? 为啥要用缓存?=>用缓存主要有俩用途,高性能和高并发 1)高性能: 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作mysql,半天查出来一个结果,耗时600ms。但是这个结果可能接下来几个小时
阅读全文
posted @
2022-08-08 22:34
网恋被骗两千八
阅读(21)
推荐(0) 编辑
关于分布式搜索引擎的四个连环炮
摘要:es:elasticsearch 首先得了解lucene和elasticsearch的区别并且着手写相关的demo程序 1)es分布式架构原理能说一下吗?(es是如何实现分布式的) 2)es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊? 3)es在数据量很大的情况下(数十亿级别)如何提
阅读全文
posted @
2022-08-08 22:09
网恋被骗两千八
阅读(18)
推荐(0) 编辑
如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路
摘要:如果说要设计一个消息队列,主要从以下角度考虑: 1)首先得考虑mq的可伸缩性,也就是需要的时候可以支持快速扩容,就可以增加吞吐量和容量,怎么搞? 设计个分布式系统,参考Kafka设计理念,broker->topic->partition,每个partition放一个机器旧村一部分数据。 如果现在资源
阅读全文
posted @
2022-08-08 22:00
网恋被骗两千八
阅读(105)
推荐(0) 编辑
消息队列七炮
摘要:为什么使用消息队列?消息队列有哪些优缺点?Kafka、activeMQ,rabbitMQ、rocketMQ都什么区别以及适合哪些场景? 如何保证消息队列的高可用啊? 如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)? 如何保证消息的可靠性传输(如何处理消息丢失的问题)? 如何保证消息的顺序性
阅读全文
posted @
2022-08-08 21:47
网恋被骗两千八
阅读(32)
推荐(0) 编辑
出现生产事故导致几百上千万消息在消息队列中积压几小时怎么办?
摘要:一般情况下,只能操作紧急临时扩容了。具体操作步骤和思路如下: 1)先修复consumer的问题,确保其恢复消费速度,然后将现有的consumer都停掉 2)新建一个topic,partition是原来的10倍,临时建好原先10倍或20倍的queue数量 3)然后写一个临时的分发数据的consumer
阅读全文
posted @
2022-08-08 21:32
网恋被骗两千八
阅读(46)
推荐(0) 编辑
如何保证MQ消息的顺序性?
摘要:1)RabbitMQ:拆分成多个queue,每个queue对应一个customer;或者就一个queue对应一个customer,但是这个customer内部用内存队列,然后分发给底层不同的worker来处理 2)Kafka: 生产者写入一个partition中的数据一定是有顺序性的; 生产者在写数
阅读全文
posted @
2022-08-08 20:59
网恋被骗两千八
阅读(632)
推荐(0) 编辑
如何保证消息的可靠性传输(如何处理消息丢失的问题?)
摘要:丢数据的情况分两种: 1.mq自己弄丢的 2.消费者消费的时候弄丢的 以rabbitMQ为例: rabbitMQ可能存在消息丢失的问题: 1.生产者往MQ写消息的时候,消息没到MQ,在网络传输过程中丢了或者是消息到了MQ但是MQ内部出错导致没有保存下来 选择使用的rabbitMQ的事务功能,就是生产
阅读全文
posted @
2022-08-08 20:17
网恋被骗两千八
阅读(141)
推荐(0) 编辑
如何保证MQ重复消费的幂等性
摘要:添加一个中间件,取名为内存set,消费者每次消费到了MQ的一条消息的时候,想内存set中插入消费记录,如果消费者消费的消息存在于内存set中,则这条消息被过滤 基于数据库的唯一键,保证重复数据不会被插入多条
阅读全文
posted @
2022-08-08 15:55
网恋被骗两千八
阅读(30)
推荐(0) 编辑
kafka,rabbitMQ,activeMQ,rocketMQ都有什么优点和缺点?
摘要:特性 ActiveMQ RabbitMQ RocketMQ Kafka 单机吞吐量 万级,吞吐量比RocketMQ 和Kafka要低一个数量级 万级,吞吐量比RocketMQ 和Kafka要低一个数量级 10万级,RocketMQ也是 可以支撑高吞吐的一个MQ 10万级,这是kafka最大的优点 就
阅读全文
posted @
2022-08-07 22:42
网恋被骗两千八
阅读(89)
推荐(0) 编辑
JDK安装
摘要:第一步:下载JDK,版本随意,我这里是jdk-8u311-windows-x64 地址链接: 链接:https://pan.baidu.com/s/1ypg7KL5wwcYv6b6UOiczFQ 提取码:bpf1 第二步:安装全部点默认就行了 第三步:配置环境变量 1.右键我的电脑,选择属性 2.找
阅读全文
posted @
2022-08-07 14:41
网恋被骗两千八
阅读(57)
推荐(0) 编辑
springboot整合kafka
摘要:SpringBoot整合: 环境准备: 安装docker。 zookeeper:docker pull zookeeper docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtim
阅读全文
posted @
2022-08-05 19:23
网恋被骗两千八
阅读(69)
推荐(0) 编辑
SpringBoot整合rabbitMQ
摘要:生产者: 1.创建生产者SpringBoot工程 2.引入依赖坐标 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </depende
阅读全文
posted @
2022-08-05 12:25
网恋被骗两千八
阅读(44)
推荐(0) 编辑
Docker安装rabbitMQ
摘要:如果你还没有安装docker 1.进入Developers - Docker选择你要安装的docker容器 2.安装完了docker容器后docker启动的时候会报错WLS2,这个时候点击提示中的链接,跟着页面上的内容走就好了。 3.准备安装rabbitMQ: 方法一: 进入hub.docker.c
阅读全文
posted @
2022-08-04 22:31
网恋被骗两千八
阅读(1404)
推荐(1) 编辑
MQ
摘要:MQ全程Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。即:存储消息的中间件。 分布式系统通信有两种:直接远程调用和借助第三方完成间接通信。 发送方称为生产者,接收方称为消费者 MQ的优势: ·应用解耦 系统耦合性越高,容错率就越低,可维护性
阅读全文
posted @
2022-08-04 00:10
网恋被骗两千八
阅读(42)
推荐(0) 编辑
认识微服务
摘要:原有开发模式: 单体架构: 将业务的所有功能集成在一个项目中开发,打成一个包部署。 优点: ·架构简单 ·部署成本低 缺点: ·耦合度高 分布式架构: 根据业务功能对系统进行拆分,每个业务模块作为作为独立项目开发,称为一个服务。 优点: ·降低服务耦合 ·有利于服务升级拓展 服务治理: 分布式架构要
阅读全文
posted @
2022-08-02 11:56
网恋被骗两千八
阅读(19)
推荐(0) 编辑
隔离和降级
摘要:隔离和降级: 虽然限流可以避免因高并发引起的服务故障,但服务还会因为其他原因而故障。而要将这些故障控制在一定范围,避免雪崩,就要靠线程隔离(船舱模式)和熔断降级手段了。 不管时线程隔离还是熔断降级,都是对客户端(调用方)的保护。 Feign整合sentinel: SpringCloud中,微服务调用
阅读全文
posted @
2022-08-01 22:18
网恋被骗两千八
阅读(60)
推荐(0) 编辑