中间件
文章平均质量分 90
中间件
柚几哥哥
用科技让复杂的世界更简单
展开
-
Redis
Redis学习笔记https://download.csdn.net/download/Zyw907155124/394922212.2 Spring Boot整合Redis(1)添加Redis依赖包在项目的pom.xml中添加如下: <!-- redis依赖包 --> <dependency> <groupId>org.springframework.boot</groupId> <art原创 2021-11-10 10:58:17 · 917 阅读 · 2 评论 -
Redis+LUA脚本结合AOP实现限流
1、通过lua脚本来实现动态的创建redis缓存2、基于Guava cache缓存存储实现限流切面3、自定义限流异常和限流key类型枚举原创 2023-05-20 10:39:18 · 1632 阅读 · 3 评论 -
Redis面试题 (2023最新版)
一、Redis为什么快?二、Redis合适的应用场景 三、Redis为什么6.0之前不支持多线程 四、Redis为什么6.0之后引入多线程 五、Redis有哪些高级功能 六、为什么需要使用Redis 七、Redis的事务 八、Redis的过期策略以及内存淘汰机制 九、什么是缓存穿透?如何避免? 十、什么是缓存雪崩?如何避免? 十一、Redis如何设计分布式锁 十二、什么是bigkey?会有什么影响? 十三、Redis如何解决key冲突 十四、怎么提高换成命中率 十五、Redis持久化方式有哪些方式?原创 2023-03-29 10:09:24 · 23793 阅读 · 6 评论 -
Redis 大厂面试题总结(2023最新版)
一、Redis为什么快?二、Redis合适的应用场景 三、Redis为什么6.0之前不支持多线程 四、Redis为什么6.0之后引入多线程 五、Redis有哪些高级功能 六、为什么需要使用Redis 七、Redis的事务 八、Redis的过期策略以及内存淘汰机制 九、什么是缓存穿透?如何避免? 十、什么是缓存雪崩?如何避免? 十一、Redis如何设计分布式锁 十二、什么是bigkey?会有什么影响? 十三、Redis如何解决key冲突 十四、怎么提高换成命中率 十五、Redis持久化方式有哪些方式?原创 2023-03-17 11:49:52 · 1352 阅读 · 0 评论 -
Redis 持久化
Redis 持久化配置 :RDB、AOF、混合持久化RDB:save、bgsaveAOF:自动触发AOF重写、AOF重写机制Redis 4.0 混合持久化:混合持久化配置Redis持久化关闭未生效:不同版本Redis关闭RDB的坑原创 2024-01-05 11:02:23 · 2069 阅读 · 4 评论 -
MQ高频面试题(2023最新版)
1、什么是消息队列?2、消息队列有哪些使用场景?(为什么使用消息队列)3、消息队列如何解决消息丢失问题?4、消息队列如何保证消息的顺序性?5、如何避免消息重复消费?6、如何解决幂等性问题?7、如何处理消息队列消息积压问题?8、MQ技术选型9、如何保证数据一致性,事务消息如何实现?10、RabbitMQ的消息可靠传输如何保证?11、RabbitMQ的消息如何实现路由?原创 2023-10-21 00:09:16 · 355 阅读 · 1 评论 -
Redis高频面试题(2023最新版)
哨兵模式基于主从模式,可以自动切换主从,可用性高,但是每个节点存储的数据是一样的,浪费内存,还难以扩容,因此redis 3.0 之后加入了 Redis Cluster 集群(切片集群),也就是说每台redis服务器上存储的内容都不同,解决了扩容问题,它还可以保存大量数据,还提供了复制和故障转移功能。AOF这种追加指令的方式,会造成AOF文件越来越大,因此redis提供了AOF文件重写机制,当AOF文件的大小超过所设定的阈值的时候,redis就会对AOF的文件进行压缩,只保留可以恢复数据的最小指令集。原创 2023-10-23 00:10:36 · 240 阅读 · 0 评论 -
Java实现对象存储的4种方式(本地对象存储、MINIO、阿里云OSS、FastDFS)
对象存储(Object Storage)是一种数据存储架构,它以对象(Object)为基本单位管理数据,区别于传统的文件存储(按目录层级组织)和块存储(主要用于磁盘和卷)。在对象存储中,每个对象包含数据本身、可变数量的元数据(描述数据的信息)和一个全局唯一的标识符(通常是对象的名称或键)。这种存储模型非常适合处理非结构化数据,如图片、视频、文档等。2、本地对象存储3、MINIO4、阿里云OSS5、FastDFS原创 2024-05-29 18:00:39 · 2152 阅读 · 1 评论 -
RabbitMQ解决消息丢失以及重复消费问题
RabbitMQ如何解决消息丢失问题:生产者确认机制、持久化消息、消费者ACK确认机制、集群部署、预拉取策略调整、监控与告警基于Spring AMQP框架整合ACK/NACK机制RabbitMQ 如何实现幂等性设计:业务层幂等处理、确认模式选择、死信队列与重试策略、幂等服务设计、事务与补偿机制幂等服务设计思路:通过雪花算法生成分布式唯一ID、通过枚举类,设计Message消费状态我们可以给每一个消息绑定一个分布式唯一ID,在通过Redis记录该消息的消费状态,保证每条消息只能被消费一次原创 2024-01-09 16:28:12 · 4059 阅读 · 3 评论 -
Canal实现Mysql数据同步至Redis、Elasticsearch
1.Canal简介;1.1 MySQL主备复制原理;1.2 canal工作原理;2.开启MySQL Binlog;3.安装Canal;4.SpringCloud集成Canal;4.3 canal配置多个数据同步的目的地;4.5 监听配置;4.8 canal整合异常问题排查思路;4.8.2 使用canal监听数据 启动成功了 没有报错 不过一直监听不到消息原创 2023-09-20 21:16:56 · 1283 阅读 · 1 评论 -
Mysql和ES、Redis数据同步方案汇总
1. 同步双写是最简单的同步方式,能最大程度保证数据同步写入的实时性,最大的问题是代码侵入性太强。2. 异步双写引入了消息中间件,由于MQ都是异步消费模型,所以可能出现数据同步延迟的问题。好处是在大规模消息同步时吞吐量更、高性能更好,便于接入更多的数据源,且各个数据源数据消费写入相互隔离互不影响。3. 基于Mysql表定时扫描同步 ,原理是通过定时器定时扫描表中的增量数据进行数据同步,不会产生代码侵入,但由于是定时扫描同步,所以也会存在数据同步延迟问题,典型实现是采用 Logstash 实现增量同步。原创 2023-09-20 16:16:30 · 1506 阅读 · 0 评论 -
RabbitMQ快速上手以及RabbitMQ交换机的四种模式
2、配置application.yml3、编写配置类RabbitMQConfig.java4、编写发送者MQSender.java5、编写接收者MQReceiver.java6、编写测试接口UserController.java7、结果2、MQSender.java3、MQReceiver.java4、UserController.java5、测试调用 mq/direct01 接口,消息经由交换机转发到绑定该交换机原创 2022-12-06 11:28:42 · 1273 阅读 · 1 评论 -
Linux下载安装 RabbitMQ
官网地址:Downloads - Erlang/OTP 官网:Messaging that just works — RabbitMQgithub地址:https://github.com/rabbitmq下载地址:Downloading and Installing RabbitMQ — RabbitMQ 选择我们所需要的版本查询erl语言和RabbitMQ版本对应关系可以查看RabbitMQ Erlang Version Requirements — RabbitMQrpm -ivh erlang原创 2022-12-06 10:38:06 · 1701 阅读 · 0 评论 -
win10下安装 RabbitMQ
RabbitMQ 下载地址 https://www.rabbitmq.com/install-windows.html 安装需要注意要以管理员权限下载安装包,然后就是傻瓜式安装下一步下一步就行,如果大家自定义安装路径的话,一定要保证你的安装路径没有中文,没有空格,然后等待两个都安装成功后,我们需要配置下 Erlang 的环境变量 7、首先可以在 RabbitMQ 的目录下执行 rabbitmqctl status 查看当前服务是否启动,也可以在win10的服务页面来查看 RabbitMQ 服务是否启原创 2022-12-06 09:58:08 · 673 阅读 · 0 评论 -
RabbitMQ
一.RabbitMQ安装1.1 为什么使用RabbitMQ1.降低耦合度2.RabbitMQ速度快,微秒级别3.学习成本低4.支持多种语言1.2 什么是RabbitMQ RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue 高级消息队列协议)的开源实现 能够实现异步消息处理 1.3 安装RabbitMQ#在线安装docker pull rabbitmq:management#使用官方定义的端口号启动原创 2021-12-28 16:31:02 · 2128 阅读 · 1 评论 -
ElasticSearch
1.ElasticSearch简介Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本 身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实 现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得 简单。1.1ElasticSearch的使用案例 2013年初,GitHub抛弃了Solr,采取Elasti原创 2021-12-29 19:35:57 · 527 阅读 · 5 评论 -
Nginx
1、Nginx简介Nginx是一个轻量级、高性能、稳定性高、并发性强的HTTP和反向代理服务器。目前在互联网企业中应用非常广泛,如:百度、京东、新浪、网易、腾讯、淘宝等。1.1 Nginx能做什么Nginx的作用主要有: http服务器 Nginx一般用于部署静态资源,和部署动态资源的服务器(如:Tomcat) 分开部署,实现动静分离,达到服务器性能的最大化。 反向代理 代理后台服务器,通过配置实现灵活的路由 负载均衡 将大量的用户请求,均衡的分配给多台服务原创 2021-12-29 19:36:53 · 186 阅读 · 0 评论 -
Sharding-JDBC
1. 概述1.1. 分库分表是什么小明是一家初创电商平台的开发人员,他负责卖家模块的功能开发,其中涉及了店铺、商品的相关业务,设计如下 数据库:通过以下SQL能够获取到商品相关的店铺信息、地理区域信息SELECT p.*,r.[地理区域名称],s.[店铺名称],s.[信誉] FROM [商品信息] pLEFT JOIN [地理区域] r ON p.[产地] = r.[地理区域编码] LEFT JOIN [店铺信息] s ON p.id = s.[所属店铺]WHERE p.id = ?原创 2021-12-30 19:08:21 · 3355 阅读 · 2 评论