
架构
HelloNBA
Java/大数据/云原生 架构师
展开
-
2021计划
好久没有发表了,新版本为什么不支持上传xmind功能原创 2021-03-31 23:46:05 · 211 阅读 · 0 评论 -
系统性能问题定位分析思路
系统性能问题定位分析思路可以从代码相关、cpu、内存、磁盘I/O网络I/O、GC等分析CPU相关CPU 利用率高&&平均负载高排查高 CPU 占用的一般思路:通过 jstack 多次(> 5次)打印线程栈,一般可以定位到消耗 CPU 较多的线程堆栈。或者通过 Profiling 的方式(基于事件采样或者埋点),得到应用在一段时间内的 on-CPU 火焰图,也能较快...原创 2019-12-03 23:10:24 · 1064 阅读 · 0 评论 -
MySQL行锁、表锁特点应用场景
Mysql不同的存储引擎支持的不同的锁。MyISAM和Memory存储引擎采用的是表级锁(table-level locking)。InnoDB存储引擎及支持行级锁(row-level locking)也支持表级锁。默认情况下是行级锁行锁和表锁行锁:访问数据库时锁定整个行数据,防止并发错误。表锁:访问数据库时锁定整个表数据,防止并发错误。区别:行锁:锁力度小,开销...原创 2019-11-11 17:16:56 · 2600 阅读 · 0 评论 -
tomcat调优
首先了解下tomcat的3种运行模式:bio:默认的模式,性能非常低下,没有经过任何优化处理和支持.nio:nio(new I/O),是JavaSE 1.4及后续版本提供的一种新的I/O操作方式(即Java.nio包及其子包)。javanio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操...原创 2019-11-05 15:39:17 · 255 阅读 · 0 评论 -
查看线程栈信息
输入jps,获得进程号。top -Hp pid 获取本进程中所有线程的CPU耗时性能jstack pid命令查看当前java进程的堆栈状态或者 jstack -l > /tmp/output.txt 把堆栈信息打到一个txt文件。可以使用fastthread 堆栈定位...原创 2019-10-10 21:03:16 · 354 阅读 · 0 评论 -
四种事务的隔离级别引起的问题及设置
1)Read Uncommitted(读未提交)一个事务在执行过程中,既可以访问其他事务未提交的新插入的数据,又可以访问未提交的修改数据。如果一个事务已经开始写数据,则另外一个事务不允许同时进行写操作,但允许其他事务读此行数据。此隔离级别可防止丢失更新。2)Read Committed(读已提交)一个事务在执行过程中,既可以访问其他事务成功提交的新插入的数据,又可以访问成功修改的数据。...原创 2019-10-10 21:38:06 · 779 阅读 · 0 评论 -
案例实战:每日上亿请求量的电商系统,JVM年轻代垃圾回收参数如何优化?
目录: 案例背景引入 特殊的电商大促场景 抗住大促的瞬时压力需要几台机器? 大促高峰期订单系统的内存使用模型估算 内存到底该如何分配? 新生代垃圾回收优化之一:Survivor空间够不够 新生代对象躲过多少次垃圾回收后进入老年代? 多大的对象直接进入老年代? 别忘了指定垃圾回收器 今日思考题 ...转载 2019-10-10 21:45:41 · 198 阅读 · 0 评论 -
redis分布式锁实现和坑点及zookpeer分布式锁实现和坑点
redis分布式锁基于setnx实现的坑点:redis基于redission实现原理:原创 2019-07-29 23:23:45 · 318 阅读 · 0 评论 -
记一次所用到的开源框架
分布式配置中心框架:A、Apollo配置中心 项目开源地址:https://github.com/ctripcorp/apollo Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,具备规范的权限、流程治理等特性。B、spring-cloud/spring-cloud-config 项目开源地址:https://github.com/spring-c...原创 2019-05-27 11:37:16 · 257 阅读 · 0 评论 -
缓存击穿,缓存穿透,缓存雪崩
缓存击穿:某个key在某个时间刚好失效。解决缓存击穿思路:首先加锁,限制所有的请求怼到数据库,(加分布式锁)JVM里的锁机制去实现。限流:hystrix 、nginx做分布式锁的解决方案:redis、redission、zookeeper缓存穿透:大量的访问缓存当中不存在的key如何解决缓存穿透:海量数据场景中,如何判断缓存中的key是否存在?场景一...原创 2019-04-18 22:08:52 · 373 阅读 · 0 评论 -
Mycat
Mycat官网:http://www.mycat.io/mycat踩过的坑:1.垮库join,2个表以上不支持2.垮库join和排序,导致oom数据量不大3.不支持高级语法4.jdbc跨异构库不稳定5.心跳不稳定6.主从读写分离,有时路由不准确,应该路由到从表7.读写分离,主从偶尔心跳检测不稳定...原创 2018-08-27 14:17:57 · 297 阅读 · 0 评论 -
分库分表
拆分后出现的问题1.事务一致性2.跨节点的关联查询join问题全局表字段冗余ER分片数据组装3.跨节点的分页、排序、函数问题count sum4.全局主键的问题UUID用数据库来维护主键开源的全局主键生成系统 snowflake分库分表方案一 Mycat配置文件server.xml 主要是连接信息详情可以访问 :https://b...原创 2018-08-27 14:27:38 · 196 阅读 · 0 评论 -
SpringCloud微服务----Eureka
springcloud中文网:https://springcloud.cc/创建Eureka服务一 、创建一个基础的Spring Boot工程,并在pom.xml中引入需要的依赖内容 <parent> <groupId>org.springframework.boot</groupId> <artifactId>...原创 2018-08-27 15:12:36 · 613 阅读 · 1 评论 -
Java必须熟悉的几个重要框架源码的底层研究
mybatis 、spring、tomcat、netty、springboot、springclude等原创 2018-08-27 17:06:44 · 1029 阅读 · 2 评论 -
分布式调用链系统
一、Google Dapper二、淘宝:鹰眼三、京东:Hydra (开源没办法应用)四、Twitter:zipkin五、skywalking (github开源项目已经加入Apache项目)原创 2018-08-20 22:08:09 · 463 阅读 · 0 评论 -
全面解析JAVA内存模型
java内存区域与java内存模型的区别(1)Java内存区域 方法区:类、常量、static变量 堆:JVM启动的时候,存放Java实例对象VM stack :Java的方法内存模型 程序计数器:线程的私有数据,用来记载下一条指令的地址本地方法栈:Native Java内存模型Java Memeory model(JMM)抽象的概念,规则a从主存中复制数据到...原创 2018-09-26 16:55:19 · 198 阅读 · 0 评论 -
jvm调试方法
一、本地环境:1.eclipse-Main方法 JVM参数设置步骤1::右键选择项目,在弹出的菜单进行选择步骤2:Debug Configurations面板,左侧的type filter text下面选择Java Application步骤3:Debug Configurations面板选择Arguments,在VM arguments下面输入启动参数即可 -verbose:...原创 2018-11-08 09:55:06 · 1037 阅读 · 0 评论