![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java高级开发
文章平均质量分 91
至尊vv
这个作者很懒,什么都没留下…
展开
-
MySQL高阶之性能优化篇
这里写目录标题性能优化的思路慢查询日志分析慢日志的工具==EXPLAIN 工具==LIMIT优化:索引优化:其他查询优化:show profile分析语句运维和服务器层面优化性能优化的思路首先需要使用【慢查询日志】功能,去获取所有查询时间比较长的SQL语句查看执行计划,查看有问题的SQL的执行计划针对查询慢的SQL语句进行优化使用【show profile[s]】 查看有问题的SQL的性能使用情况调整操作系统参数优化升级服务器硬件慢查询日志sql> show variables原创 2021-08-18 11:08:33 · 249 阅读 · 0 评论 -
MySQL高阶之锁原理篇
MySQL高阶之锁原理篇update流程图Mysql锁的分类三级目录update流程图update t set c=‘曹操’ where id = 1;主键等值更新速度最快 加行锁主键范围更新需要加间隙锁 防止出现幻读如果不应用索引需要加全表锁+间隙锁Mysql锁的分类1.锁的粒度全局锁:锁住整个mysql实例 此时只能读表级锁:锁定某一个表行级锁:对某一行数据加锁。只有InnoDB引擎支持2.锁的功能X锁(写锁):排它锁S锁(读锁):共享锁3.锁的详解全局锁:锁住:flu原创 2021-08-18 10:46:27 · 337 阅读 · 0 评论 -
MySQL高阶之索引篇
MySQL高阶之索引篇select语句流程索引定义优缺点:分类索引的数据结构hash:二叉排序树(二叉查找树)平衡二叉查找树b-tree(b树 多叉平衡树)B+treeMySql索引的存储形式MyIsam引擎InnoDB引擎索引使用口诀:组合索引的创建原则覆盖索引索引条件下推ICP.索引优化建议:select语句流程索引定义一句话理解 高效获取数据的一种数据结构。优缺点:优点:效率高缺点:索引会占据磁盘空间。索引太多会导致降低更新表的效率 索引也会随着数据的改变而改变分类主键索引(原创 2021-08-17 11:10:30 · 218 阅读 · 0 评论 -
MySQL高阶之事务原理篇以及InnoDB的MVCC原理
MySQL高阶之事务原理篇insert语句流程图(InnoDB引擎)MySQL四大特性ACID隔离级别详解读未提交-脏读(一个事务读到另一个事务没有提交的数据)读已提交-不可重复读(两次读到的结果可能是不同的)-可用的隔离级别可重复读-经常用到的隔离级别(Mysql默认隔离级别)串行化事务带来的几个问题问题1 丢失更新问题问题2 丢失更新问题问题3 数据读取异常解决方案 针对问题3InnoDB的MVCC实现undo_log(数据回滚 逆转)read view(可读视图版本链)READ COMMITTED隔离原创 2021-08-17 10:07:02 · 188 阅读 · 0 评论 -
MySQL高阶之架构篇以及redolog落盘机制
这里写目录标题MySQL逻辑架构图Mysql查看系统参数文件分类Sql语句执行流程Innodb架构图磁盘结构(右边)用户表空间的存储格式内存结构Innodb数据更新流程内存数据落盘分析脏页落盘CheckPoint重做日志落盘双写落盘流程图前言:Mysql成为java程序员每天都要交互的东西 但是大多数人只停留在会使用mysql的层面 比如写写sql查询满足业务需求 但是mysql真的那么容易吗?他的内部有哪些机制支撑着mysql 探索一下他的内部架构MySQL逻辑架构图Mysql Server:原创 2021-08-16 15:36:47 · 1198 阅读 · 0 评论 -
玩一玩神奇的分布式追踪神奇skyWalking
玩一玩神奇的分布式追踪神奇skyWalkingskyWalking简介安装使用服务搭建skyWalking简介随着分布式系统规模的越来越大,各微服务间的调用关系也变得越来越复杂。一般情况下,一个由客户端发起的请求在后端系统中会经过许多不同的微服务调用才能完成最终处理,而这些调用过程形成了一个复杂的分布式服务调用链路。那么也就带来一系列问题:怎么样快速发现并定位问题?怎么样判断故障影响范围?各部分调用链路性能是怎样的?skyWalking闪亮登场 国人开发 其是通过在被监视应用中插入探针,以无原创 2021-08-05 14:43:53 · 185 阅读 · 0 评论 -
不要再说你不懂分布式事务了 seata
分布式事务seata事务概述数据库事务分布式事务seataseata术语分布式事物的几种模式XA模式AT模式2PCSaga模式seata-server配置和启动验证事务概述数据库事务A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。C(Consistency):一致性,在事务执行前后,数据库的一致性约束没有被破坏。比如:张三向李四转 100 元,转账前和转账后的数据是正确状态这叫一致性,如果出现张三转出 100 元,李四账原创 2021-08-03 17:32:24 · 210 阅读 · 0 评论 -
什么?你没用过Sentinel?
什么?你没用过Sentinel?安装下载简介官方介绍安装Sentinel整合springboot工程服务降级sentinel方法级别降级使用sentinel类级别降级使用Feign式类级别降级服务熔断熔断器熔断策略慢调用比例异常比异常数服务流控基于qps的流控策略基于并发线程数流控流控的三种模式直接关联链路流控效果分类快速失败Warm up排队等待来源流控黑白名单流控热点参数限流系统自适应限流网关限流动态规则扩展安装下载简介一句话 牛逼 可以随时随地配置各种各样的限流规则到你的系统中 针对方法级别 接原创 2021-07-28 17:36:52 · 305 阅读 · 0 评论 -
一文带你吃透微服务守门神SpringCloud-GateWay
一文带你吃透微服务守门神SpringCloud-GateWayGateWay简单介绍Gateway和Zuul的对比:gateWay的几个核心概念入门案例网关层负载均衡gateWay 工作原理三大组件:高级工作原理图(左) 粗工作流程:网关路由断言工厂(路由规则)path路由规则:After路由规则:其他路由规则网关过滤器分类PrefixPath 过滤器(局部)去除前缀过滤器(局部)自定义过滤器(重要)自定义全局过滤器过滤器优先级网关降级网关限流令牌桶:网关令牌桶限流(使用redis实现)GateWay简单原创 2021-07-27 18:41:22 · 457 阅读 · 0 评论 -
带你玩转OpenFeign 从入门到精通
带你玩转OpenFeign 从入门到精通Feign是啥玩意?使用Feign使用完后的问题Feign超时配置Feign配置负载均衡怎么实现的使用更改负载均衡策略自定义负载均衡器ribbon其他的内置的负载均衡策略负载均衡器 LoadBalancer缘由使用Feign和熔断器Feign日志Feign原理回顾以下 springmvc的内容对象创建的方式源码目标Feign源码入口总结Feign是啥玩意?一句话:Feign-伪装就像调用业务层一样优雅 同时又是基于rest风格的请求方式以前通过http调用其他原创 2021-07-22 10:18:46 · 441 阅读 · 0 评论 -
Nacos高级特性Raft算法以及原理和源码分析
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-07-16 14:02:20 · 2260 阅读 · 3 评论 -
Spring-Cloud-Alibaba-Nacos入门以及功能特性
Spring-Cloud-Alibaba-Nacosspringcloudspringcloud生态springcloud-alibaba版本兼容Nacos简介传统跨服务访问思考问题:Nacos 安装java代码整合nacos的注册服务与发现Nacos的数据存储在哪里?Nacos集群部署java代码整合nacos的配置中心依赖热加载(实时更新)配置中心多环境服务连接配置中心集群与注册中心集群springcloudspringcloud生态springcloud 为开发人员提供了在分布式系统中快速构建一原创 2021-07-07 10:04:22 · 263 阅读 · 0 评论 -
Java并发编程之各种锁的类型、JUC并发工具包、阻塞队列
这里写目录标题线程八锁:锁的类型公平锁/非公平锁:买票的例子锁配对可重入锁/递归锁自旋锁读写锁==ReetranLock 算法====读写锁算法==JUC并发工具类CountDownLatch 计时器CyclicBarrier篱栅==Semaphore信号量==阻塞队列常用阻塞队列APISynchronousQueue 的api生产消费者模式传统模式==思考==新版(使用ReentrantLock )为什么需要使用Lock的condition对象? 精准唤醒 条件锁题目:红灯5秒-黄灯3秒-绿灯7秒 顺序执原创 2021-07-05 15:58:12 · 203 阅读 · 0 评论 -
Java并发编程之可见性、原子性、指令重排
Java并发编程之可见性、原子性、指令重排JUC并发工具包JUC简介JMM Java内存模型可见性和原子性可见性问题暴露执行结果问题源头解决执行结果原理原子性原子性问题暴露执行结果剖析i++操作问题的根源解决i++原子性之Synchronized结果解决i++原子性之AtomicInteger(juc并发工具包)结果:指令重排(有序性)问题暴露思考解决例子为什么Volatile关键字可以禁止指令重排优化哪些地方使用到了VolatileCASJUC并发工具包JUC简介java.util.concurre原创 2021-07-01 17:22:04 · 250 阅读 · 0 评论 -
JVM之方法执行和方法调用
JVM之方法执行和方法调用Java虚拟机栈二级目录三级目录Java虚拟机栈二级目录三级目录原创 2021-06-24 14:01:01 · 286 阅读 · 0 评论 -
JVM之对象内存详解
对象内存分配JVM中对象创建流程User user = new User();1. new指令2. 常量池检查:检查这个指令是否能在常量池中定位到一个类的符号引用3. 此时判断是否加载过该类User如果没有或者检查不通过则触发类的加载4. 分配内存空间 1.指针碰撞 2.分配器加锁(空闲列表)指针碰撞 分配器加锁(空闲列表)接下来详讲6. 内存空间初始化为零值7. 必要信息设置(不是set方法而是JVM内部需要做的 比如该类是否有资格进入老年代 对象头相关的信息)8. init方法调用原创 2021-06-21 13:54:13 · 288 阅读 · 0 评论 -
JVM运行时数据区
JVM运行时数据区概述分配JVM内存空间分配堆的大小分配方法区的大小分配线程空间的大小运行时数据区剖析方法区方法区存储什么数据永久代和元空间的区别是什么?方法区OOM**类加载太多导致的OOM****字符串常量池OOM**字符串常量池(重点)三大常量池``字符串常量池面试题``概述JVM由三部分组成 1.类加载机制 2.运行时数据区 3.执行引擎按照职责划分线程独享区域(程序执行) 1.不需要垃圾回收 2.虚拟机栈、本地方法栈、程序计数器线程共享(存储) 1.方法区 2.堆 3.需要垃圾原创 2021-06-16 11:35:58 · 208 阅读 · 0 评论 -
Java之class常量池与类加载机制
Java之class常量池与类加载机制Java和JVMclass常量池类加载机制Java和JVM为什么要学习JVM?1.生产环境调优时可以大展身手2.搞懂JVM有助于写出好代码3.面试重灾区-体现你价值的时候到了JVM是什么计算机只识别0和1。Java是⾼级语⾔。⾼级语⾔编写的程序要想被计算机执⾏,需要变成⼆进制形式的本地机器码。能直接变成机器码的语义是C++,它的缺点是不同操作系统,需要准备多份。Java需要先变成Java字节码(class⽂件)。然后再变成机器码。JVM可以原创 2021-06-09 16:55:42 · 245 阅读 · 0 评论