自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记一次jvm crash 的崩溃分析

PS:除了“SIGSEGV(0xb)”以外,常见的描述还有“EXCEPTION_ACCESS_VIOLATION”,该描述表示jvm crash时正在执行jvm自身的代码,这往往是因为jvm的bug导致的crash;这里一个重要信息是“SIGSEGV (0xb)”表示jvm crash时正在执行jni代码,而不是在执行java或者jvm的代码,如果没有在应用程序里手动调用jni代码,那么很可能是JIT动态编译时导致的该错误。这段日志是Java虚拟机(JVM)在发生崩溃或异常时生成的线程堆栈跟踪信息。

2024-06-21 19:28:40 879 1

原创 关于kafka消费慢的一次记录

2、看消费端代码吧,由于数据多怕消费慢所以将消息poll了之后放入了队列中,队列大小设置的是10万,这个10万就是罪魁祸首!于是修改队列长度大小,服务器允许的话就无界,不允许的话就给个合理的。1、想到会不会是由于只有两个分区,生产者的key相同消息只分发到一个分区中导致积压呢?查看发送消息的代码发现key是处理过的不会相同,排除该猜测。原因很明显就是由于消费能力跟不上,导致了kafka消息积压,查看积压情况,十分严重。只是简单的判断和写文件,没有复杂的业务逻辑,不应该消费慢啊?

2024-01-23 18:41:55 504

原创 记一次kafka配置的坑

1、怀疑kafka配置auto.create.topics.enable=false,使程序无法自动创建topic,改为true,仍不行。扩容后新的路径:/xxxkafka/467624363/xxx-xxxkafka/brokers/topics。扩容前的topic可以,新的topic为什么不行呢?起初消息收发正常,进行下一步调试,期间同事进行了扩容,暂停几天后消息无法发送,报错如下。而使用扩容前的测试topic则是可以正常收发消息的。2、通过kafka控制平台手动创建topic,还是不可以。

2023-10-13 10:56:02 408

转载 多线程事务

1,最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败,则全部回滚。注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效,如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程修改的数据则不会回滚,导致数据错误。可以发现子线程组执行时,有一个线程执行失败,其他线程也会抛出异常,但是主线程中执行的删除操作,没有回滚,测试结果:抛出异常,

2023-03-31 10:29:04 1856 1

转载 转:new ArrayList导致的cpu飙升问题排查

问题排查

2023-02-21 09:42:36 207

原创 Method threw ‘java.lang.IllegalStateException‘ exception. Cannot evaluate org.apache.hadoop.mapreduc

在本地调试hadoop.mapreduc时断点看到这个信息,且程序执行不成功,以为是这个问题导致的,网上查了很久也没有解决办法,后来发现这个并不影响主要功能。如果不想看到它可以在idea进行配置。你也会发现调试过程中idea左下角有黄字体提示,(skiped breakpoint at xxx because it happened inside debugger。)取消到这个勾选就可以了。注意:这并不是解决那个exception的根本,且!那个显示不是影响你主功能的因素。可以试试大家所说的配置Hadoop

2022-07-07 15:37:43 5417

原创 SecureCRT配置

本地访问现场环境hbase web1、在本地hosts文件中加入远端服务器映射2、添加forwarding,自己定义端口号3、在浏览器进行设置4、在hbase服务器找到master端口号和访问名5、请求http://gzxxxplat12431:60010 即master的web页面regionServer......

2022-06-17 17:22:34 571

原创 IDEA总是出现Warning:java: 源值1.5已过时

Warning:java: 源值1.5已过时, 将在未来所有发行版中删除

2022-02-21 09:48:17 964

原创 ElasticSearch整理

ElasticSearchES:是一个基于Lucene框架的搜索引擎产品。 you know for search。提供了Restful风格的操作接口。ELK。Lucene:是一个非常高效的全文检索引擎框架。java jarES的一些核心概念:1、索引index :关系型数据库中的table2、文档document : row3、字段field text\keyword\byte: 列4、映射Mapping : Schema.5、查询方式DSL : SQL ES的新版本也支持SQL6、分片s

2022-02-14 18:07:14 738

原创 kafka

目录kafka架构简述kafka高性能高吞吐的原因kafka副本同步机制Kafka消息高可靠解决方案 简述kafka的rebalance机制 kafka架构简述Consumer Group:消费者组,消费者组内每个消费者负责消费不同分区的数据,提高消费能力。逻辑上的一个订阅者。 Toplc:可以理解为-个队列,Topic 将消息分类,生产者和消费者面向的是同一个Topic。 Partition:为了实现打展性,提高并发能力,一个Topi...

2021-12-02 16:12:58 1298

原创 zookeeper整理

简述ZAB协议 ZAB协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议,实现分布式数据一致性 。所有客户端的请求都是写入到Leader进程中,然后,由Leader同步到其他节点,称为Follower。在集群数据同 步的过程中,如果出现Follower节点崩溃或者Leader进程崩溃时,都会通过Zab协议来保证数据一致性。ZAB协议包括两种基本的模式:崩溃恢复和消息广播。 消息广播: 集群中所有的事务请求都由Leader节点来处理,其他服务器为F...

2021-12-02 13:55:10 1247

原创 RabbitMQ

适用场景不需要实时性的,可达到效果:解耦、异步化、限流削峰解耦:商品管理(静态页面+搜索信息)如果是同步状态下时间消耗长并且比较耦合,一个系统步骤有问题或者新增系统,就有可能影响到整体。不符合OCP的设计原则(开闭原则:对修改关闭对多扩展 新增开放);异步:基础服务,采用异步方式为其他系统服务(短信、邮件、积分等)削峰:就是前后两个交互的系统处理的速度不匹配,为了保护处理慢的系统,从而引入消息中间件。来实现削峰限流处理。 比如异步写的方案,保护数据库,缓解瞬间写的压力再比如秒...

2021-12-02 11:26:06 164

原创 分布式缓存及Redis

redis常见问题整理

2021-11-09 16:14:47 390

原创 CAP理论和Base理论等概念

CAPC: 一致性(consistency): 每一次的请求得到的数据是一样的,每个节点保存的数据是- -致的 如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果 返回失败,那么所有读操作都不能读到这个数据,对调用者而言数据具有强一致性(strong consistency) A:可用性(availbilty) : 每一次的请求都可以在一定时间内得到正确的响应,但是数据不一定是最新的 ,可终止,不会一直等待。P:分区容错性(parti...

2021-11-04 17:51:57 1155

原创 微服务及分布式简单整理

服务注册与发现--zk

2021-11-04 16:43:18 1240 1

原创 mysql数据库知识整理

索引的基本原理索引用来快速地寻找那些具有特定值的记录。如果没有索引,-般来说执行查询时遍历整张表。 索引的原理:就是把无序的数据变成有序的查询 1.把创建了索引的列的内容进行排序 2.对排序结果生成倒排表 3.在倒排表内容上拼上数据地址链 4.在查询的时候,先拿到倒排表内容,再取出数据地址链,从而拿到具体数据...

2021-10-29 21:44:48 357 2

原创 MyBatis常问整理

mybatis的优缺点 优点: 1、基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解 除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态 SQL语句,并可重用。 2、与JDBC相比,减少了50%6以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接; 3、很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。 ...

2021-10-27 17:40:02 113

原创 Spring知识点整理

spring知识点整理

2021-10-21 17:48:33 2627

原创 Maven本地仓库有jar包却无法导入项目

本地的maven仓库有jar包,setting文件配置没问题,仓库路径没问题,但是无法导入到项目中,任务中总是显示在下载,从网上找了各种方法,其中一个:将本地仓库中的所有“_remote.repositories”文件删除,解决了问题。记录一下...

2021-10-13 13:49:33 1874

原创 JVM及性能调优

3个部分运行时数据区最重要数据存放:栈(虚拟机栈、线程栈):局部变量,方法的局部变量只在方法的运行作用域范围之内有效 。java虚拟机,只要线程开始运行,当执行到方法的时候,就会给这个方法在线程栈分配一块自己专属的内存区域,这一小块内存空间就叫栈帧内存空间,用来存放方法自己的局部变量。这个栈遵循先进后出(FILO),跟方法的嵌套、调用顺序相符合,有压栈弹栈。程序计数器:是一个记录着当前线程所执行的字节码的行号指示器。在JVM中,通过程序计数器来记录某个线程的字节码执行.

2021-09-30 16:38:16 144 1

原创 Java知识点整理

java1.7到1.8HashMap发生的变化1、1.7中是数组+链表,1.8中是数组+链表+红黑树,加红黑树的目的是为了提高HashMap查询和插入的效率以及防止哈希碰撞攻击(输入不同的数据项得到了相同的哈希值)。2、1.7中链表的插入是头插法,1.8是尾插法,因为1.8中插入key和value时需要判断链表元素的个数,所以就在遍历的时候直接进行尾插法插入。(当链表长度到8时,将链表转为红黑树也是尾插法的一个原因)3、1.7中的哈希算法比较复杂有各种右移和异或运算(哈希算法越复杂hashcod

2021-09-28 18:58:00 400 1

原创 实现一个秒杀系统

一、秒杀特征1、高并发二、要解决的问题前端突然增加的网络及服务器带宽 动静分离,静态资源放到CDN(ip就近原则)服务器(js/css/img实现压缩减少带宽传输、静态资源放到第三方资源服务器如OSS等);商品详情页面使用Nginx+Lua+OpenResty优化; 用户的重复提交 提交后按钮置灰 将商品详情页缓存到redis,配置Nginx通过URL直接访问到。如果商品详情发生变化可以在URL地址上加时间戳等。---------------------------------.

2021-09-07 09:18:11 101

原创 关于联合索引

联合索引:https://blog.csdn.net/weixin_39849762/article/details/113166628看了一些关于联合索引的讨论,感觉下面这位大神的很有道理mysql联合索引,abc的争议实践原因:在一次和同事讨论mysql联合索引的面试题时出现了争议。主要问题是:a、b、c三个字段作为联合索引,b、c;和a、c情况到底会不会命中索引?网上查阅相关博客发现很多答案不一样,于是我干脆亲手操作实验一下 ,我使用的mysql版本是5.6一:创建表为了更直

2021-09-03 14:47:52 522

原创 JVM问答

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。2.Java内存结构?方法区和对是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。J..

2021-09-03 11:15:23 184 1

原创 RabbitMQ解决数据丢失

生产者丢失数据(confirm模式)如果要确保说写 RabbitMQ 的消息别丢,可以开启 confirm 模式,在生产者那里设置开启 confirm 模式之后,每次写的消息都会分配一个唯一的 id,然后如果写入了 RabbitMQ 中,RabbitMQ 会回传一个 ack 消息,说明这个消息 ok 了。如果 RabbitMQ 没能处理这个消息,会回调一个 nack 接口,说明这个消息接收失败,生产者可以重试。而且可以结合这个机制自己在内存里维护每个消息 id 的状态,如果超过一定时间还没接收到这个消息

2021-08-30 10:31:50 544

原创 分布式的登录如何实现的

1、单机登录user在server上输入用户名密码等,完成用户信息校验并将对应的信息写入server的session中2、分布式框架的登录方案使用redis,即通过key-value的方式,在server1完成登录后,将用户信息以value的形式,保存在redis中。同时将key发送到客户端的cookie中。客户端下次发送请求时,Negix分发到的server,通过cookie中获取key,进而从redis中获取对应的用户信息。如果在cookie中设置了“httponly”属性,那么通过Ja

2021-08-27 15:17:58 1479

原创 Dubbo相关整理

是基于java的高性能RPC(远程调用)分布式服务框架,内部使用了Netty、Zookeeper保证了高性能。使用Dubbo可以将核心业务抽取出来做为独立服务。一、Uubbo和SpringCloud的区别1、dubbo使用RPC通信,SpringCloud是HTTP restFul方式2、dubbo的服务注册中心是Zookeerper,监控中心为dubbo-monitor,无消息总线服务跟踪批量任务等组件。cloud的服务注册中心为springcloud netflix enruka,监控中心为

2021-08-27 14:21:50 600

原创 GitHub技巧

常用词watch:会持续收到该项目的动态fork:复制其个项目到自己的Github仓库中star,可以理解为点赞clone,将项目下载至本地follow,关注你感兴趣的作者,会收到他们的动态in关键词限制搜索范围:公式 :xxx(关键词) in:name或description或readmexxx in:name 项目名包含xxx的 xxx in:description 项目描述包含xxx的 xxx in:readme 项目的readme文件中包含xxx的组合使用.

2021-07-23 13:47:25 68

原创 Linux 个别命令

top 命令查看整机性能load average表示系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。三个系统平均负载值。如果三个值相加 除以3 *100% 高于60%那么系统的压力负担较重uptime 查看整机性能精简版...

2021-07-23 11:03:34 126

原创 GC垃圾收集相关

GC算法(引用计数、复制、标记清除、标记压缩整理)是内存回收的方法论,垃圾收集器就是方法论的落地实现因为目前为止只是针对具体应用最合适的收集器,进行分代收集4种主要垃圾收集器* Serial 串行垃圾回收器:它为单线程环境设计且值使用一个线程进行垃圾收集,会暂停所有的用户线程,只有当垃圾回收完成时,才会重新唤醒主线程继续执行。所以不适合服务器环境* Parallel 并行: 多个垃圾收集线程并行工作,此时用户线程也是阻塞的,适用于科学计算 / 大数据处理等弱交互场景,也就是说Serial 和.

2021-07-22 16:46:57 100

空空如也

空空如也

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

TA关注的人

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