自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java线程池相关

线程的生命周期新建,就绪,运行,阻塞,死亡线程池newCahedThreadPoll:线程的复用 ,非核心线程数缺点:会无线创建线程,c占用cpu资源newsingleThreadPoll,newfixedThreadPoll占用内存 所以不推荐默认的创建线程池的方法。提交的优先级:核心线程—》工作线程-----》非核心新城执行优先级:核心线程—》非核心新城—》工作线程...

2020-09-20 22:04:30 156

原创 dubbo之服务导出原理

1. dubbo.properties文件,你可以建立这个文件,dubbo会去读取这个文件的内容作为服务的参数,Dubob的源码中叫做PropertiesConfiguration2. 配置中心,dubbo在2.7版本后就支持了分布式配置中心,你可以在Dubbo-Admin中去操作配置中心,分布式配置中心就相当于一个远程的dubbo.properties文件,你可以在Dubbo-Admin中去修改这个dubbo.properties文件,当然配置中心支持按应用进行配置,也可以按全局进行配置两种,在Dubb

2020-09-16 23:34:59 327

原创 redis持久化之AOF原理

AOF持久化实现与rdb持久化保存数据库中的键值对不同,aof持久化是保存redis服务器所执行的写命令来记录数据库的持久化分为三个步骤:追加,文件写入和文件同步追加当aof持久化功能打开时候,服务器在执行完一个命令后,会将aop命令追加到aop缓存区的末尾,如下图写入和同步redis服务器进行就是一个事件循环,文件事件负责接收客户端的请求。事件事件则都是运行函数,如servercron。servercron每次在一个事件事件里面都会调用flushAppendOnlyFile函数,而flush

2020-09-15 23:46:42 471

原创 redis持久化之rdb底层原理

RDB持久化rdb持久化可分为手动执行,也就是save操作,也可以服务器进行定期执行。rdb持久化后的文件是一个经过压缩的二进制文件。save命令:会阻塞服务器进程,知道rdb文件创建完毕,服务器不能接受任何命令请求。bgsave:会派生出一个子进程,由子进程创建rdb文件,服务器进程继续处理命令。save和bgsave都会调用rdb.c/rdbSave函数进行持久化操作。RDB文件的载入流程如下图,服务器在载入的时候也会一直阻塞,知道载入完成自动间隔性保存原理服务器会设置默认的save

2020-09-15 23:16:50 414

原创 volatile 底层原理解析

并发和并行并发:逻辑架构 交替跑,时间片上,会发生上下文切换并行:物理架构 多cpu

2020-09-15 22:23:02 210

转载 redis数据库及过期删除策略

select 命令实现原理通过修改redisClient.db指针,让它指向服务器中不同的数据库,从而实现切换数据库的功能、实现如下图数据库键空间概念因为数据库本身是一个字典, 所以对数据库的操作基本上都是对字典的操作, 加上以下一些维护操作:更新键的命中率和不命中率,这个值可以用 INFO 命令查看;更新键的 LRU 时间,这个值可以用 OBJECT 命令来查看;删除过期键(稍后会详细说明);如果键被修改了的话,那么将键设为脏(用于事务监视),并将服务器设为脏(等待 RDB 保存);

2020-09-14 23:51:29 356

原创 Dubbo整合spring源码解析

总体流程@service注解流程当spring启动时候,扫描到@service注解的时,会生成两个bean,一个是普通的bean,一个是serviceBean,其中serviceBean有一个属性ref指向普通bean的引用,servicebean实现ApplicationListener接口,在spring服务启动完成后,会触发相应的监听,执行export方法进行服务的导出。@EnableDubbo注解@enableDubboconfig@enableDubboconfig 会加载dub

2020-09-14 22:10:08 336

原创 redis事件类型解析

redis服务器是一个事件驱动程序,服务器总体来说可以分为两种事件:文件事件和时间事件,下面根据这两种事件分别进行介绍文件事件上图:可以看到,文件事件处理器由四部分组成:分别是套接字,io多路复用程序,多路复用分派器和各种不同的事件处理器组成。套接字可以理解为不同的客户端请求io多路复用程序redis统一封装了常见的io多路复用函数,譬如select,epoll,evport,和kqueue,并且提供了相同的api(多态?策略设计模式?),导致redis程序会在编译时候自动选择系统中性能最

2020-09-09 23:15:24 182

原创 redis 慢查询日志原理解析

参考自redis设计与实现一书,有兴趣的同学可以阅读书籍获取更多的实现细节

2020-09-07 21:12:19 473

原创 hive入门及相关概念

1.1 什么是HiveHive:由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质是:将HQL转化成MapReduce程序1)Hive处理的数据存储在HDFS2)Hive分析数据底层的实现是MapReduce3)执行程序运行在Yarn上1.2 Hive的优缺点1.2.1 优点1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。2)避免了去写MapRedu

2020-09-05 14:43:54 78

原创 Sharding JDBC 分库分表实战

简介Sharding-JDBC是一个开源的分布式数据库中间件解决方案。它在Java的JDBC层以对业务应用零侵入的方式额外提供数据分片,读写分离,柔性事务和分布式治理能力。并在其基础上提供封装了MySQL协议的服务端版本,用于完成对异构语言的支持。基于JDBC的客户端版本定位为轻量级Java框架,使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。封装了MySQL协议的服务端版本定位为透明化的MySQL代理端,可以使用任何兼

2020-09-05 00:55:00 592

空空如也

空空如也

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

TA关注的人

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