- 博客(12)
- 收藏
- 关注
原创 log4j2日志无法在idea控制台打印问题解决
log4j2日志无法在idea控制台打印问题解决项目所使用的日志工具情况遇到的问题解决过程项目所使用的日志工具情况项目使用的springboot构建,已排除logback相关日志依赖,使用sl4j+log4j2进行日志打印遇到的问题日志无法打印在idea的控制台中解决过程获取Logger实例的方式如下:private static Logger logger = LoggerFact...
2019-09-19 18:04:31
4976
原创 Redis主从复制
redis主从复制是为了打造高性能、高可用的redis必不可少的一个功能,当主节点挂掉时可以通过把从节点切换成主节点来继续为客户端提供服务达到高可用;也可以通过读写分离达到高性能redis。一、建立复制与断开复制1、可以用过slaveof配置项在从节点redis上配置其所属的主节点2、客户端在从节点上通过slaveof命令动态设置当前redis所属的主节点3、在从节点使用slaveof no on...
2018-04-15 19:16:37
365
原创 redis持久化优化
1、生成RDB快照和AOF重写都会fork子线程来执行,但是fork子线程时会阻塞主线程,fork的实现与内存中的数据直接相关,redis内存中的数据越多则fork阻塞的时间就越长。2、redis的fork操作采用写时复制技术,虽然不用全量拷贝主线程内存中的数据,但是会复制主线程的空间内存也表,10GB大约需要20MB的内存页表。3、优化主要从cpu、内存、磁盘这几个方面着手:cpu:1、redi...
2018-04-14 21:12:16
772
原创 redis持久化机制之AOF
通过设置配置项appendonly yes即可开启AOF持久化,默认不开启AOF的工作流程:命令写入aof buffer-->同步到文件-->文件重写-->启动时加载AOF文件。如下图可以通过参数appendfsync参数来控制缓冲区同步文件策略,参数及其说明如下表可配置值说明always每次命令写入aof_buffer后都会调用fsync同步到aof文件,fsync完成后线程才...
2018-04-14 11:36:03
1067
原创 redis持久化机制之RDB
redis之所以能支持10W/s的读写操作主要是依靠1、所有数据都在内存。2、单线程架构,避免了多线程可能产生的竞争为题。3、使用c语言实现,距离操作系统更近。4、redis的代码经过作者精打细磨及优雅与一身。5、epoll模型io多路复用,将连接、读写、关闭都转换为事件,不在网络IO上浪费过多的时间但是所有数据都存放在内存中,就带来一个问题,如果服务器突然宕机,那么内存中的数据会都丢失,所以需要...
2018-04-07 23:20:30
313
原创 redis常用数据类型
redis常见数据类型有:字符串、哈希、列表、集合、有序集合。字符串: 内部编码: 1、int:8个字节的长整型。 2、 embstr:小于等于39个字节的字符串。 3、raw:大于39个字节的字符串。使用场景:缓存各种信息、计数、session共享、手机验证码发送频率限制等等。----------------------------------...
2018-04-01 22:08:32
205
原创 kafka丢失消息,消息乱序(重试)常见处理
消息的完整性和系统的吞吐量是互斥的,为了确保消息不丢失就必然会损失系统的吞吐量producer:1、ack设置-12、设置副本同步成功的最小同步个数为副本数-13、加大重试次数4、同步发送5、对于单条数据过大,要设置可接收的单条数据的大小6、对于异步发送,通过回调函数来感知丢消息7、配置不允许非ISR集合中的副本当leader8、客户端缓冲区满了也可能会丢消息;或者异步情况下消息在客户端缓冲区还未...
2018-03-22 21:39:25
6793
1
原创 mysql聚集索引,辅助索引,联合索引,覆盖索引
聚簇索引:一张表只能有一个聚簇索引,通常是主键列,在innodb存储引擎中由聚簇索引构成的b+tree其的节点中key就是主键id,叶子节点上存储的就是一行记录的所有字段。非聚簇索引:一个表中可以有多个,叶子节点存放的不是一整行数据,而是主键,所以无法命中覆盖索引时会需要通过叶子结点中的主键去聚簇索引的b+tree中再次寻找,也就是常说的非聚簇索引无法命中覆盖索引时会造成两次b+tre...
2018-03-22 21:06:00
3675
2
原创 InnoDB存储引擎---体系架构
体系架构图:InnoDB是多线程模型的,后台线程负责刷新数据等操作,内存池则用来缓存数据。后台线程分为如下几个主要线程:1、Master Thread:非常核心的线程,用来异步刷新内存中的数据到磁盘上,保证数据一致性,包括脏页的刷新,合并插入缓冲,UNDO页的回收等。2、IO Thread:使用AIO来处理IO请求,提高数据库的性能。主要负责IO请求的回调处理。分为write read inser...
2018-03-20 21:48:00
266
原创 mysql常见存储引擎
1、InnoDB:支持事物,特点是行锁设计,默认读操作不会产生锁。隔离机制默认为‘’可重复读‘’;采用‘’聚集‘’的方式存储数据,因此每张表都是按主键的顺序进行存放的。1.2版本开始支持全文索引2、MyISAM:不支持事物和表锁,但是支持全文索引。3、NDB:一个集群存储引擎,特点是数据全部放在内存中(5.1版本开始可以把非索引数据放在磁盘),因此通过主键查找速度极快。此存储引擎的连接操作是在数据...
2018-03-20 21:02:43
205
原创 ArrayList源码学习
ArrayList:一个由数组实现的集合对象,默认容量为10。特点:1、随机查找快(因为数组是连续的内存空间可以使用索引直接定位数组内的元素)。2、随机插入慢(因为会移动数组)。方法:add(): public boolean add(E e) { ensureCapacityInternal(size + 1); // 根据需要判断是否需要扩容
2017-06-13 20:39:26
208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人