
中间件
文章平均质量分 84
五敷有你
稳中求进,多平安
展开
-
Redis缓存的使用
当出现Redis查不到数据,数据库也查不到数据的情况,我们就把这个key保存到Redis中,设置value="null",并设置其过期时间极短,后面再出现查询这个key的请求的时候,直接返回null,就不需要再查询数据库了。两者各有优劣,第一种的缺点是维护大量缓存的key是比较麻烦的,第 二种的缺点就是每次用户请求过来都要判断缓存失效,逻辑相对比较复杂!除了缓存服务器自带的缓存失效策略之外(Redis默认的有6中策略可供选择),我们 还可以根据具体的业务需求进行自定义的缓存淘汰,原创 2024-06-12 23:05:29 · 3353 阅读 · 4 评论 -
Redis的持久化机制&过期策略&内存淘汰策略
假设 AOF 日志记录了自 Redis 实例创建以来所有的修改性指令序列,那么就可以通过对一个空的 Redis 实例顺序执行所有的指令,也就是「重放」,来恢复 Redis 当前实例的内存数据结构的状态。优点:删除操作只发生在从数据库取出key的时候发生,而且只删除当前key,所以对CPU时间的占用是比较少的,而且此时的删除是已经到了非做不可的地步(如果此时还不删除的话,我们就会获取到了已经过期的key了)我们都知道,Redis是key-value数据库,我们可以设置Redis中缓存的key的过期时间。原创 2024-06-12 22:32:20 · 882 阅读 · 0 评论 -
springboot使用kafka事务
如上:消费者没打印消息,说明消息没发送成功,并且前面会报错org.apache.kafka.common.KafkaException: Failing batch since transaction was aborted 的错误,说明事务生效了。kafka事务属性是指一系列的生产者生产消息和消费者提交偏移量的操作在一个事务,或者说是是一个原子操作),同时成功或者失败。配置开启事务后,使用大体有两种方式,先记录下第一种使用事务方式:使用 executeInTransaction 方法。原创 2024-06-11 18:30:09 · 883 阅读 · 62 评论 -
kafka如何保证消息不丢失
Kafka发送消息是异步发送的,所以我们不知道消息是否发送成功,所以会可能造成消息丢失。而且Kafka架构是由生产者-服务器端-消费者三种组成部分构成的。要保证消息不丢失,那么主要有三种解决方法。原创 2024-06-09 20:15:54 · 5896 阅读 · 57 评论 -
kafka生产消费流程
1.生产者先从zookeeper的"/brokers/topic/主题名/partitions/分区名/state"节点找到该partition的leader。比如,消费者可以重置到旧的偏移量,重新处理之前已经消费过的消息;或者直接跳到最近的位置,从当前的时刻开始消费。kafka采用拉取模型,由消费者自己记录消费状态,每个消费者相互独立的顺序拉取消息。leader接收到所有的ISR中的Replica的ACK中,并向生产者返回ACK。broker进程上的leader将消息写入到本地log中。原创 2024-06-09 19:59:57 · 1587 阅读 · 2 评论 -
kafka的leader和follower
在Linux中强制杀掉该Kafka的进程,然后观察leader的情况。kafka的leader负责读写,follower不能读写数据(确保每个消费者消费的数据是一致的),kafka一个topic有多个分区leader,一样可以实现负载均衡。如果kafka是居于ZK进行选举,ZK的压力比较大,例如某个节点崩溃,这个节点上不仅仅只有一个leader,是有不少的leader需要选举,通过ISR可以快速选举。kafka会再创建topic的时候尽量让分配分区的leader在不同的broker中,就是负载均衡。原创 2024-06-08 20:45:41 · 2102 阅读 · 22 评论 -
kafka的副本机制
副本的目的就是冗余备份,当某个Broker上的分区数据丢失时,依然可以保障数据可用。因为在其他的Broker上的副本是可用的。原创 2024-06-07 17:17:44 · 554 阅读 · 4 评论 -
Kafka入门
消息队列——用于存放消息的组件程序员可以将消息放入到队列中,也可以从消息队列中获取消息很多时候消息队列不是一个永久性的存储,是作为临时存储存在的(设定一个期限:设置消息在MQ中保存10天)消息队列中间件:消息队列的组件,例如:Kafka、Active MQ、RabbitMQ、RocketMQ、ZeroMQ。原创 2024-06-04 19:57:05 · 684 阅读 · 1 评论 -
【docker】Dockerfile自定义镜像
常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。原创 2024-04-01 15:21:47 · 1627 阅读 · 32 评论 -
【中间件】docker数据卷
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。原创 2024-03-25 18:04:30 · 4424 阅读 · 67 评论 -
【docker】docker的常用命令
自己的jar包打成镜像在docker中运行需要用到。不指定版本号就拉去lastest最新的。repository 镜像的仓库源。created 镜像创建时间。tag 镜像的标签。image id 镜像的id。size 镜像大小。根据镜像ID删除对应的镜像。原创 2024-03-15 18:06:19 · 872 阅读 · 7 评论 -
【中间件】RabbitMQ入门
AMQP,即Advanced Message Queuing Protocol ,是一个网络协议,是应用层协议的一个开发标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。原创 2024-03-05 20:08:27 · 1856 阅读 · 16 评论 -
【中间件】docker的安装
1.3 执行以下命令,重启 Docker 即可。示例命令以 CentOS 7 为例。切换至编辑模式,添加以下内容,并保存。我使用的腾讯云,用腾讯云,下面这篇文章。我这里是干净的虚拟机,不需要清理。最后,执行命令,安装Docker。1.1 执行以下命令,打开。首先要安装一个yum工具。原创 2024-03-03 19:13:33 · 934 阅读 · 9 评论