![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 64
lisin-lee-cooper
这个作者很懒,什么都没留下…
展开
-
RocketMQ原理及解析
1 如何保证消息的可靠性传输生产者丢失数据:生产者设置同步提交消息,并且手动提交,将消息同步刷盘到从节点后在返回成功,broker :主从复制,同步刷盘消费端:消费重试,只有返回consume_success 才算消费完成,保证消息的可靠性,最终还是消费16次还是失败的会进死信队列2.如何保证消息不被重复消费消费端消费消息的幂等1 服务端代码根据messageId 设置分布式锁,获取锁再做业务操作2 更新数据库时校验业务的状态3 或者设置唯一索引3.如何保证消息的顺序性...原创 2022-04-07 16:46:55 · 3068 阅读 · 0 评论 -
接口幂等实现方案
一.接口未做幂等带来的问题1.1 填写某些form表单时,保存快速点了两次,数据库中新增两条相同的数据;1.2 微服务调用超时重试1.3 mq消费时读取到重复消息接口幂等性是指用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用,以上操作未做接口幂等的话都可能产生重复数据二.主要实现方式2.1 悲观锁select * from oder where order id = #{orderId} for update;对需要修改的数据加锁处理,判断业务是否已执原创 2022-03-16 10:40:03 · 457 阅读 · 0 评论 -
Synchronized 锁升级过程
一.Synchronized作用修饰静态方法:锁住当前 class,作用于该 class 的所有实例修饰非静态方法:只会锁住当前 class 的实例修饰代码块:该方法接受一个对象作为参数,锁住的即该对象二.Java对象结构2.1对象头mark Word:主要用于存储自身运行时数据,主要表示当前Java对象的线程锁状态(无锁,偏向锁,轻量级锁,重量级锁)以及GC的标志;Class Pointer:是指针,指向方法区中该 class 的对象,JVM 通过此字段来判断当前对象是哪个类的实例;数组长原创 2022-03-15 22:55:19 · 243 阅读 · 0 评论 -
JAVA多线程面试知识点
一.JAVA线程创建方式1.1 继承Thread 类Therad 类是实现了Runnable接口的一个实例,代标一个线程的实例,启动线程的唯一方法是通过Thread 类的start() 实例方法,是一个native方法,将启动一个新线程,执行run()方法。public class MyThread extends Thread { public void run() { System.out.println("MyThread.run()"); } } MyThread myThre原创 2022-02-12 16:00:37 · 581 阅读 · 0 评论 -
JVM面试知识点
一.基本概念1.1 JVM是可运行Java代码的假象机器,包括一套字节码指令集,一套寄存器,一个栈,一个垃圾回收,堆,和一个方法存储域,运行在操作系统上,与硬件没有直接交互。运行过程:① Java 源文件—->编译器—->字节码文件② 字节码文件—->JVM—->机器码1.2 运行时数据区程序计数器(线程私有):当前线程所执行的字节码的行号指示器,执行java方法的话,计数器记录的是虚拟机字节码指令的地址,如是Native方法,则为空。虚拟机栈(线程私有):描述jav原创 2022-01-28 17:51:14 · 1943 阅读 · 0 评论 -
JAVA集合面试知识点
线程安全: Vector、HashTable线程不安全:HashMap、TreeMap、HashSet、ArrayList、LinkedList2、 Arraylist与 LinkedList 异同Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向循环链表数据结构;ArrayList 查询 O(1),插入 O(n);LinkedList 查询 O(n),插入 O(1);ArrayList的空 间浪费主要体现在在list列表的结尾会预留一定的容量空间,而Li.原创 2022-03-03 15:36:01 · 442 阅读 · 0 评论 -
JAVA学习路线
原创 2022-03-03 13:52:52 · 184 阅读 · 0 评论 -
Jmeter 进行压力测试
一.Test Plan 和 Thread Group 参数解析1.Test Plan1.1Test Plan:(测试计划名称:被压测得功能或接口名称)1.2.用户定义的变量:用户添加的变量,相当于全局变量,所有线程组都共用,一般添加一些系统常用的配置,也可以使用用户定义得变量来替代,如下图:1.3.独立运行每个线程组: (例如在一个组运行结束后启动下一个)默认:不勾选,默认各线程组并行、随机执行作用:勾选后,用于控制测试计划中的多个线程组的执行顺序,保证顺序执行各线程组1.4.函数测试原创 2021-05-17 17:05:05 · 1022 阅读 · 0 评论 -
Jmeter 察看结果树响应数据乱码
一.问题描述Jmeter 在执行请求后,察看结果树乱码,因为jmeterm默认编码是ISO-8859-1 的编码格式进行解析的二.解决方案1.在jmeter配置文件中修改配置文件找到文件目录 D:\apache-jmeter-5.4.1\bin 下的 jmeter.properties 文件编辑文件将 sampleresult.default.encoding设置为utf-8即 sampleresult.default.encoding=utf-82.添加后置处理器右键 TestPlan原创 2021-05-17 11:39:38 · 1687 阅读 · 0 评论 -
JMeter 压测工具安装配置
一.Jmeter介绍Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期原创 2021-05-15 16:38:08 · 133 阅读 · 0 评论 -
手写Mybatis
一.工程目录1.Configuration 主要是mybatis的配置@Datapublic class Configuration { protected Connection connection; protected Map<String, String> dataSource; protected Map<String, XNode> mapperElement;}2.SqlSessionFactory 构建SqlSession的工厂原创 2021-04-22 19:32:09 · 97 阅读 · 0 评论 -
idea将java项目转maven项目
1.右键项目选择 add Framework Support,滑到最下面选择maven2.添加相对于的依赖原创 2021-04-14 11:24:56 · 185 阅读 · 0 评论