妙博客

主机评测 香港服务器 洛杉矶VPS测评

如何保证消费的幂等性

利用token机制服务器把客户端传过来的token进行验证,redis通过setnx命令,如果设置失败说明token已经存在,是一个重复请求。

MQ如何保证消息消费的顺序性

RocketMQ为例1.生产者把顺序消息添加到同一个队列。rocketMq在send方法可以自定义一个消息队列选择器,可根据传入的订单号,选择哪个队列。@Test public void orderlyProducer() throws Exception {     List<MsgModel> msgModels = new ArrayList()

MQ怎么保证消息不丢失和重复消费

防止消息丢失:生产者默认重试次数为2producer.setRetryTimesWhenSendFailed(3);消费者默认重试次数为无限次consumer.setMaxReconsumeTimes(5);防止重复消息:1.生产者发送的消息中,带一个业务唯一标识public void keyProducer() throws Exception{     DefaultMQProducer produc

mysql索引失效的场景

1.对索引使用左模糊匹配或者左右同时模糊匹配时(B+树(多路平衡查找树)的特性决定)2.对索引使用函数(因为索引保存的是索引字段的值,而不是经过函数计算后的值)3.对索引表达式进行计算(比如where id + 1 = 10,改成 where id = 10 - 1可以)4.对索引进行隐式类型转换(如果索引字段是字符串类型,但是条件是整型的话就会做全表扫描)5.联合搜索引没使用最左匹配原则假设(a,b,c)联合索引,如果条件是where a=1或者a=1 and b=2或者a=1 and b=2

redis怎么保证和mysql数据一致

方案一:基本思路:在写库前后都进行redis.del(key)操作1、先删除缓存2、再写数据库4、延迟一段时间再次删除缓存方案二:先更新数据库,再删除缓存。并配合消息队列来重试缓存的删除,或者用阿里 Canal 中间件订阅 MySQL binlog 删除缓存。

Spring MVC工作流程?

Spring MVC是一种基于(Model-View-Controller)模式的Web框架,它的工作流程主要包括以下几个步骤:  1.首先前端管理器DispatcherServlet接收到用户请求,将请求转发给对应的处理器映射HandlerMapping。 2.HandlerMapping根据URL调用对应的处理器适配类HandlerAdaptor从而找到具体的Controller。 3.Controller层接受到用户参数后,会把请求参数传递给Controller里面的方法。Con

linux设置时区为中国时区

timedatectl set-timezone Asia/Shanghai如果时间也错了,可以设置一下时间date -s "2022-01-01 12:00:00"

java线程同步的理解synchronized和Lock

1.synchronized是关键字,Lock是接口;2.synchronized是隐式的加锁,lock是显式的加锁;synchronized在退出代码块时自动解锁,lock却必须调用unlock方法进行手动释放3.synchronized可以作用于方法上,lock只能作用于方法块;4.synchronized底层采用的是objectMonitor,lock采用的AQS;5.synchronized是阻塞式加锁,lock是非阻塞式加锁支持可中断式加锁,支持超时时间的加锁;6.synchroniz

谈谈java中对JVM的理解

JVM也叫java虚拟机,特点是它的跨平台性,Java语言使用Java虚拟机屏蔽了与具体平台相关的信息。Java虚拟机在运行Java程序时,会管理着一块内存区域,JVM内存模型可分为五个部分:堆区、方法区、虚拟机栈、本地方法栈、程序计数器1.堆:该内存区域是jvm虚拟机管理的内存中最大的一块内存,它存放了对象实例及数组2.方法区:是各个线程共享的内存区域,用于已被虚拟机加载的类型信息、常量、静态变量、编译器代码缓存等3.虚拟机栈:它保存方法的局部变量、方法返回地址和一些额外的附加信息4.本地方法

Spring启动流程

1.加载Spring会扫描应用程序上下文中的所有类和配置文件,并通过Java的反射机制来加载它们。2.实例化在加载完成之后,Spring会将所有Bean实例化,并将它们放入Bean容器中,这个容器会负责管理这些Bean的生命周期和依赖关系。在实例化过程中,Spring会使用Java的反射机制来创建Bean的实例,并自动注入它们所需要的依赖关系。3.初始化Spring会调用所有Bean的初始化方法,这些方法可以在Bean的定义中通过init-method属性来指定4.后置处理后置处理可以在Bean

Copyright Your 142132.com Rights Reserved. 赣ICP备17010829号-2