- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 Dubbo特性和优缺点
Dubbo是阿里开源的 ,基于Java开发的一款分布式服务框架,它拥有高性能和透明化的RPC远程服务调用方案以及SOA服务治理方案。Dubbo与Spring无缝集成,并且提供了远程通讯、集群容错、自定发现三大核心功能。提供了透明化的远程方法调用,只需要简单的配置,调用远程方法就像调用本地方法一样,没有任何API的侵入。同时它具备软负载均衡以及容错机制,在内网可直接替代F5等硬件设备实现负载均衡。还可以实现服务自动注册和发现,不需要写死服务提供着的IP地址,注册中心基于接口名查询服务提供着的IP地址,并且
2020-10-27 23:21:15
2788
1
原创 MySQL锁认识
锁锁是数据库系统区别于文件系统最大的关键特性;锁机制用于管理对共享资源的并发访问。锁的分类:共享锁(S Lock):允许事务读取一行数据排他锁(XLock):允许事务删除或者修改一行数据一致性非锁定读:一致性锁定读:自增长与锁:外键和锁:...
2020-10-27 19:38:07
190
原创 MySQL 索引认识
1、索引在Mysql中索引其实就是B+Tree索引,B+Tree索引的本质就是B+Tree在数据中的实现。B+Tree则是由B树+索引的顺序访问演化而来。B+Tree是专门为磁盘存储以及其他直接存取设备设计的一种平衡查找树。在B+Tree中,所有记录节点都是按照键值的大小顺序的存放在同一层级的叶子节点上,每个叶子之间通过指针进行连接。B+Tree具有高扇出的特性,所以数的高度不会很高,一般2 ~ 4 层,也就意味着查找一条记录最多只需要 2~4次的IO...
2020-10-27 19:29:17
151
原创 MySQL文件认识
参数文件Mysql中的参数分为两种,一种是动态,一种是静态日志文件错误日志错误日志主要记录的是Mysql在启动、运行、关闭的过程中出现的错误信息;可通过SHOW VARIABLES LIKE 'log_error'获取地址慢查询日志例如在Mysql启动时设置一个阈值,将运行时间超过该值的SQL全部记录到慢日志文件;从而帮助DBA定位可能存在的SQL问题;查询日志二进制日志...
2020-10-27 19:21:52
114
原创 MySQL体系结构和InnoDB存储引擎
MySQL体系结构连接池组件、管理服务和工具组件、SQL接口组件、查询分析器组件、优化器组件、缓冲组件、插件式存储引擎、物理文件;存储引擎是基于表的,而不是数据库InnoDB存储引擎支持事务,支持行锁、支持外键,支持非锁定读;设计的目的主要面向在线事务处理的应用(OLTP)数据放在逻辑表空间中,自行管理,通过使用多版本并发工具(MVCC)来获得高并发性...
2020-10-27 10:18:04
164
1
原创 SQL Server架构和认识
1、如何确定SQL Server 的版本验证SQL Server 版本:SELECT SERVERPROPERTY ('Edition');检查EngineEdition 的服务器属性SELECT SERVERPROPERTY ('EngineEdition');https://www.sqlserverinternals.com/trainings/2018/2/16/sql-server-int...
2020-06-02 10:41:02
519
原创 SQL Server 2008 R2 深入解析之内部工作原理
1、当SQL Server编译、扩展、压缩和移动数据库时,内部在进行什么操作?2、如何使用事件跟踪----从触发器到扩展事件引擎?3、为什么合适的索引能大大较少查询执行时间?4、 如何用新的存储能力超越正常的行数限制?5、 查询优化器是如何运行的?6、 为有问题的查询计划排除故障的多种技术?7、何时强制SQL Server重用或创建新的缓存查询计划?8、 运行DBCC时,SQL Serve的内部检查什么?9、 处理多个并发用户时,如何...
2020-06-01 15:39:58
299
原创 通过JDK jstack 定位问题
常用到的几个线程状态有:RUNNABLE,BLOCKED,WAITING,TIMED_WAITINGRUNNABLE从虚拟机的角度看,RUNNABLE状态代表线程正处于运行状态。一般情况下处于运行状态线程是会消耗CPU的,但不是所有的RUNNABLE都会消耗CPU,比如线程进行网络IO时,这时线程状态是挂起的,但由于挂起发生在本地代码,虚拟机并不感知,所以不会像显示调用Java的sleep()或者wait()等方法进入WAITING状态,只有等数据到来时才消耗一点CPU.TIMED_WAITIN
2020-05-15 09:41:56
634
原创 Https 的原理理解和认知
https是如何保证数据传输的安全:https实际就是在TCP层与http层之间加入了SSL/TLS来为上层的安全保驾护航,主要用到对称加密、非对称加密、证书,等技术进行客户端与服务器的数据加密传输,最终达到保证整个通信的安全性。点击这里弄懂 https 的 9 个问题。SSL/TLS协议作用:认证用户和服务器,确保数据发送到正确的客户机和服务器; 加密数据以防止数据中途被窃取;...
2020-05-06 22:34:54
526
原创 Web容器、Spring容器 和 SpringMVC容器的区别
容器:在spring整体框架的核心概念中,容器的核心思想是管理Bean的整个生命周期;Spring容器 和 SpringMVC容器最本质的区别:Spring容器是父容器,SpringMVC是其子容器;Tomcat(web容器)是管理servlet对象的地方,而Spring容器和SpringMVC容器是管理bean对象的地方,更进一步的讲,spring是管理service和dao的容器,sp...
2020-05-06 22:04:41
454
原创 理解MySQL 高可用的设计方案
MySQL 高可用架构设计方案:1、常见的MySQL高可用架构;2、分布式数据库高可用实践;3、基于keepalive的MySQL高可用改造;常见的MySQL高可用架构MySQL高可用主要涉及两个方面,一是客户端如何切换,如何自动failover,二是多个MySQL节点之间如何做数据同步;业界MySQL高可用的解决方案有以下几类:从客户端自动切换的角度来看主要有两类:一...
2020-05-06 15:25:27
386
原创 redis缓存系统的高可用理解
redis缓存系统的高可用理解1、通过RLU(临时缓存)提高高可用 Redis搭建主从,master禁用RDB和AOF,slave启用RDB; M/S切换使用哨兵。 master宕机:切换到从,丢失的数据重新预热即可。 slave宕机:换一个实例同步master即可。 master和slave同时宕机:可以用slave的RDB备份还原,丢失部分数据重新预热即可...
2020-04-29 15:35:01
213
原创 网络BIO、NIO、AIO理解
IO 阻塞传统的网络IO都是阻塞的,也就是说当一个线程去read或者write的时候,这个线程是阻塞的,并且在这期间此线程不能再做其他事情的。问题:再进行网络IO时,服务端必须给每个客户端创建一个单独的IO线程去处理,当服务端创建非常多的这种IO线程时,会严重的影响服务端的系统性能;NIO 非阻塞当NIO的线程从管道中读写数据时,如果管道中没有数据,那这个线程就会去执行其他的任务。...
2020-04-26 10:32:55
396
原创 Hashmap 1.7 和 1.8 区别
Hashmap 1.7JDK1.7的时候使用的是数组+ 单链表的数据结构 JDK1.7用的是头插法Hashmap 1.8数组+链表+红黑树的数据结构 JDK1.8及之后使用的都是尾插法
2020-04-24 21:52:02
227
原创 ConcurrentHashMap1.7 和 1.8的区别
一、ConcurrentHashMap 1.71、数据结构:Segment数组 + 多个HashEntry组成、Segment数组又是由多个Segment元素组成,每个Segment元素又是由一个HashEntry数组和链表组成;2、put操作第一次计算key的hash,找到Segment元素的位置; 判断当前Segment元素是否初始化,若没有初始化,则通过CAS进行初始化; ...
2020-04-24 20:27:53
4013
2
原创 分布式事务最终一致性描述及解决方案
分布式事务最终一致性描述及解决方案1、CAP2、BASE方案:1、单事务2、分布式事务3、事务性消息队列4、消息队列 + 补偿机制5、异步回调6、双检查机制...
2020-04-23 15:36:37
404
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人