自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 (ROOT)KAFKA详解

在RecordAccumulator中的batchs队列中的每个元素就是ProducerBatch,第一次发送消息的时候会消息所在分区的ProducerBatch队列,并创建ProducerBatch将该条消息追加在ProducerBatch,然后有新的消息发送时,就会追加消息到对应TopicPartition的ProducerBatch队列里面最后一个ProducerBatch中,如果ProducerBatch空间满了,会再创建一个新的ProducerBatch来存放消息;

2024-03-18 14:26:04 1016

原创 (SUB)常见JVM参数

Hotspot 遍历所有对象时,按照年龄从小到大对其所占用的大小进行累积,当累积的某个年龄大小超过了 survivor 区的 50% 时(默认值及最大值是 50%,可以通过 -XX:TargetSurvivorRatio=percent 来设置 ),取这个年龄和 MaxTenuringThreshold (默认为 15(因为对象头中4字节所以15 CMS 6),CMS默认值为6 岁,可以通过参数 -XX:MaxTenuringThreshold 来设置)中更小的一个值,作为新的晋升年龄阈值”。

2024-03-18 08:12:47 414

原创 (SUB)app性能测试

activity 显示所有的activities的信息。account 显示accounts信息。window 显示键盘,窗口和它们的关系。cpuinfo 显示CPU信息。meminfo 显示内存信息。wifi 显示wifi信息。

2024-03-08 14:55:18 877

原创 (SUB)测开情景问题

如果抖音一个地区的许多用户无法下载视频,可能的原因如下:服务器故障:抖音服务器出现故障或宕机,导致部分用户无法下载视频。安全防护:抖音增加了一些安全防护措施,如IP封锁、验证码等,部分用户未能通过验证,无法下载视频。网络问题:该地区的网络连接存在问题,导致部分用户无法连接到抖音服务器进行下载。地域限制:因为政策、版权等原因,某些地区的用户可能会受到下载限制,无法下载视频。针对这些情况,我们可以采取以下措施:联系技术支持:如果是服务器故障等技术问题,可以联系抖音技术支持,及时解决问题。

2024-03-04 17:20:18 1025

原创 (SUB)测开网络

一般认为POST在传输数据时更加的安全,因为GET传输时将在URL中显示参数,而POST的数据则放在了请求体(body),所以更安全。然而安全性的说法存在着两个问题:抓包后POST请求也是能看到请求体(body)中的数据HTTP规范并未规定说 GET 就不能在请求体(body)中传输数据浏览器由于规范问题不会在GET的请求体中添加数据,但是可以通过例如Fiddler的Composer来添加数据到GET的请求体种。常见的GET和POST区别还有GET传输的数据比较少,POST传输数据多;

2024-03-04 16:57:18 39

原创 (sub)三次握手四次挥手

序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。确认ACK:占1位,仅当ACK=1时,确认号字段才有效。

2024-03-04 16:34:34 735

原创 (SUB)常用linux命令

useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1:创建一个属于 "admin" 用户组的用户。-C或–context=或- 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。awk [-F|-f|-v] 大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value。在 top 命令页面下,按 f ,出现如下图的字段调节页面,上面有 * 标识的代表为显示的字段。

2024-03-02 21:35:02 907

原创 (SUB)黑盒测试方法

1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。2.与等价划分的区别 1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。3.边界值分析方法的考虑: 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。

2024-02-29 19:35:37 996

原创 (SUB)测试思维案例

兼容性测试:屏幕分辨率 /网络状态,状态切换 /android版本 /安装卸载升级等 /权限设置 /与其他APP兼容性 (①安装卸载测试:测试App在指定终端上是否可正常安装、正常卸载,准确定位错误原因。④UI适配测试:测试App的UI与目标终端的屏幕是否适配,记录是否存在渲染失败、错位、黑边框、黑白屏等现象。性能测试:CPU占用/内存占用 /耗电测试 /流量消耗测试 /安装包大小 /加载时间测试 /核心功能相应时间 (①启动时间检测:检测App在终端上首次启动时间。(如果有,有无报警功能(保密报警))

2024-02-27 16:08:36 895

原创 (ROOT)测开常见题

覆盖有效等价类的测试用例:a b c 覆盖等价类号码。

2024-02-27 11:57:02 715

原创 环境搭建1111

1.配置网络改为静态ip,参考https://blog.csdn.net/m0_37750065/article/details/124392293前半部分编辑hosts文件# 插入如下内容 ip地址:节点名 此处节点名可以自己修改安装xsync配置免密配置密钥,免密传输。

2024-01-07 16:04:26 811

原创 分布式事务

分布式事务( 图解 + 秒懂 + 超级全 ) - 知乎 (zhihu.com)

2023-11-28 12:16:32 382

转载 (ROOT)Mysql总结

mysql事务原理-锁机制_mysql行锁是自动加的吗-CSDN博客mysql(八)事务隔离级别及加锁流程详解-CSDN博客

2023-11-27 17:47:19 68

原创 (ROOT)zookeeper

特点安装搭建分布式锁。

2023-09-28 20:01:21 128

原创 (SUB)redis作为缓存的常见问题(三大问题+缓存一致性)

另一个改良方案是在数组的每个位置上挂上多个座位(类似数组+链表),这样即使两个元素被 hash 在了同一个位置,也不必立即「鸠占鹊巢」,因为这里有多个座位,你可以随意坐一个。这种方案的空间利用率只有 85%左右,但是查询效率会很高,同一个位置上的多个座位在内存空间上是连续的,可以有效利用 CPU 高速缓存。实际上是需要的,但是布谷鸟过滤器强制数组的长度必须是 2 的指数,所以对数组的长度取模等价于取 hash 值的最后 n 位。问题:如果获得锁的进程挂了,没人来释放锁了,后面的就死锁了。

2023-09-28 15:57:29 96

原创 (SUB)redis数据结构和数据类型及应用

struct __attribute__ ((__packed__)) sdshdr5 { // 对应的字符串长度小于 1

2023-09-27 20:27:31 37

原创 (ROOT)redis学习笔记

它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。

2023-09-27 15:46:17 30

原创 (ROOT)dubbo站在前人肩膀

Apache dubbo 是一款高性能、 轻量级的开源 java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

2023-09-20 16:40:41 21

原创 (ROOT)spring/springboot/springcloud

Spring如何自定义注解_spring自定义注解_weixin_38681369的博客-CSDN博客spring事务_weixin_38681369的博客-CSDN博客spring循环依赖_protected void beforeprototypecreation(string bean_weixin_38681369的博客-CSDN博客

2023-09-15 18:45:33 105

原创 (ROOT)java基础

泛型代理设计模式深拷贝浅拷贝。

2023-09-15 18:40:06 22

原创 (ROOT)网络与IO(TCP/IP)

在 Linux 中:文件打开的时候有一个inode号,读到pagecache页缓存中。。磁盘文件、摄像头、打印机,都被看做是文件,基于文件的这种抽象,就可以应用到IO流了。那么如何区分这些不同的文件?我们引入文件类型:两个变量名指向了同一个物理位置无论是硬链接还是软连接,如果修改任意一方,另外一个文件也会看到这个变化。如果删掉了其中一个文件,另外一方还能找到这个文件。相当于只是删除了一个引用。

2023-09-15 18:35:34 23

原创 (ROOT)并发编程5-线程池

ExcutorService,加入了shutdown,submit,invokeAll(),invokeAny等方法。Callable submit方法返回future对象。返回值可由future的get方法得到,该方法是阻塞的。submit是异步的,交给线程池后主线程该干嘛干嘛。Future -> 存储执行的将来才会发生的结果。Excutor ,只有excute方法。

2023-09-14 23:24:56 58

原创 (ROOT)并发编程4-并发容器

Queue和List的区别是什么?提供了很多在多线程访问下比较友好的APIBlockingQueue的特点是什么?BlockingQueue的优势在于,增加了更多API,比如put,take或者阻塞,或者指定时间等待实现生产者-消费者模型,也是多线程里面最重要的一个模型,也是MQ的基础——MQ的本质,就是一个大型的生产者、消费者模型。

2023-09-14 17:17:13 15

原创 (ROOT)并发编程3-ThreadLocal

把connection放在当先线程的ThreadLocal里面,以后拿的时候从ThreadLocal直接拿,不去线池里面拿。connection在连接池里,不同的connection之间怎么形成完整的事务?ThreadLocalMap是当前Thread的一个成员变量。222行的this是当前的ThreadLocal对象。ThreadLocal 修饰的变量,是线程独有的。Spring的声明式事务在一个线程里。ThreadLocal是怎么做到的?Spring的声明式事务会用到。

2023-09-14 17:04:53 22

原创 (SUB)java运行时数据区

因为你看下面的第一条指令,我们知道,刚new出来对象是半初始化的对象,只是赋一个默认值,而involespecial才是调用构造方法,给变量赋初始值,而这两条指令之间是可能会发生指令重排的。动态链接:指向运行时常量池里面的符号链接,看有没有解析,如果没有解析,就动态解析,如果已经解析了,就拿过来使用。在1.8之前有一个巨大的bug,就是你在里面产生了很多对象,但是Perm Space在FGC的时候是不会回收的。匿名内部类每次都是动态产生的。自带多态:new 的是哪个对象,调用的就是哪个对象的方法。

2023-09-14 10:53:17 23

原创 (SUB)class文件详解

3. 加密自定义类加载器_每天都要进步一点点的博客-CSDN博客。

2023-09-14 10:30:47 28

原创 (SUB)JVM-JMM相关

原子指令,如x86上的”lock …b. 该变量超过一个缓存行的大小,缓存一致性协议是针对单个缓存行进行加锁,此时,缓存一致性协议无法再对该变量进行加锁,只能改用总线加锁的方式。CPU为了提高效率,会在一条指令执行过程中(比如去内存读数据,慢100倍),去同时执行另一条指令。MESI协议只对汇编指令中执行加锁操作的变量有效,表现到java中为使用voliate关键字定义变量或使用加锁操作。缓存读写不是一次缓存一个数据,而是一次缓存一行,缓存行多为64字节、通过缓存行对齐后,效率提升了。

2023-09-14 10:09:55 25

原创 (ROOT)并发编程2-锁详解

对变量值加了 volitile 之后,一个线程中的改变,在另一个线程中可以立刻看到。懒汉式双重检查为了防止并发,volitale为了防止重排序导致的拿到未初始化的对象。

2023-09-13 14:40:08 67

原创 (ROOT)并发编程1-进程线程纤程与*interrupt*

进程:进程 是。一个进程对应一个端口号, OS 会为每一个进程 独立分配一部分资源。通常我们每运行一次程序,都会产生一个进程。线程:是 CPU 执行。一个进程包含多个线程,线程共享进程的内存空间,它没有独立的内存空间。纤程(fiber):JVM 运行在用户空间,当它 new 一个 Thread 时,会对应在 OS 中起一个线程(内核空间),所以这叫重量级线程。而纤程则是在用户态有多条。

2023-09-13 12:45:47 77

原创 (ROOT)jvm与垃圾回收总结

3. 加密自定义类加载器_每天都要进步一点点的博客-CSDN博客(简单做法)

2023-09-12 10:29:32 57

原创 (ROOT)kafka&rocketmq详解-站在前人的肩膀上拼命总结

kafka消息队列总结

2023-09-06 09:29:42 49

原创 (SUB)redis集群搭建

redis集群搭建配置

2023-01-09 15:44:54 85

原创 (SUB)Spring如何自定义注解

什么是注解_Annontation_是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annotation是一种应用于类、方法、参数、变量、构造器及包声明中的特殊修饰符。它是一种由JSR-175标准选择用来描述元数据的一种工具。用途1、生成文档。这是最常见

2021-10-08 12:49:33 8153

原创 (SUB)对象头及sync锁升级详解

MarkWordbiased_lock:对象是否启用偏向锁标记,只占1个二进制位。为1时表示对象启用偏向锁,为0时表示对象没有偏向锁。lock和biased_lock共同表示对象处于什么锁状态。lock:2位的锁状态标记位,由于希望用尽可能少的二进制位表示尽可能多的信息,所以设置了lock标记。该标记的值不同,整个Mark Word表示的含义不同。biased_lock和lock一起,表达锁状态age:4位的Java对象年龄。在GC中,如果对象在Survivor区复制一次,年龄增...

2021-09-08 19:42:36 1059

原创 (SUB)LOCK与AQS详解

AQSAQS和Lock接口的关系Lock接口定义了锁的实现规范,锁类通过聚合AQS来实现锁,然后通过集成Lock接口来实现锁的更多的功能。通过Lock接口和AQS实现了独占锁,共享锁,可重入锁,可重入读写锁,公平锁和非公平锁。LockSupport,和Conditoin实现了一个等待队列,类似于同步锁中的wait和notify方法。这些锁与同步锁不同的是**,首先这些是显示的释放锁和显示的获取锁,不像同步锁是隐式的,这样操作要灵活一点,然后同步锁升级为重量级锁后一旦没抢占到就要进入阻塞状态,而这些.

2021-09-08 19:40:28 203

原创 (SUB)CAS详解(compare and swap)

什么是CAS

2021-08-17 23:22:16 688

原创 (SUB)volatile详解与MESI

1

2021-08-17 11:34:26 148

原创 (ROOT)网络模型详解

2.(第二次挥手)服务器端收到客户端的释放连接的报文段后会执行被动关闭,它要对客户端的数据报进行确认,服务器端会发送一个确认的数据报,确认比特ACK设置为1,确认号为u+1,自身的序号seq为v(假设上一个发的数据序号是v-1)。TCP协议采用的是出错重传,也就是会生成重复的报文,并且根据路由器的选择,这些重复的报文可能在连接终止后才到达,如果客户端/服务器端收到这个老的报文会把它误认为一个同一连接的新的报文,然后对这个报文进行处理,这样就会出现错误。等待服务器的确认,这里需要注意,因为TCP是。

2021-08-05 21:58:45 427

原创 (SUB)数据结构基本概念详解

分类标准:1.线性结构:是一个有序数据元素的集合。它应该满足下面的特征:集合中必存在唯一的一个“第一个元素” 集合中必存在唯一的一个“最后的元素” 除最后一元素之外,其它数据元素均有唯一的“后继 除第一个元素之外,其它数据元素均有唯一的“前驱”我们知道符合条件的数据结构就有栈、队列和其它。2.非线性结构:其逻辑特征是一个节点元素可以有多个直接前驱或多个直接后继。那么,符合条件的数据结构就有图、树和其它。数组概念优点:  1、存储多个元素,比较常用  2、访问

2021-08-02 11:46:40 1016

转载 Go-令牌池

转载:https://www.jianshu.com/p/8288250e5e7a抓数据的网站限定1秒只能有10次请求,因此设计了一个令牌管理机制来控制请求数量。设计思路如下:发请求前需要先获取令牌 限定某时间段内的发放的令牌数量 任务执行完成后不能归还令牌,只能使用定时器不断重置令牌 如果当前goroutine数量过多时也不重置令牌package mainimport ( "errors" "fmt" "sync" "sync/atomic" "time")//节

2021-07-14 17:09:31 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除