自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 MyBatis分页插件实例

MyBatis分页插件实例1、确定需要拦截的签名1.1、确定需要拦截的对象1.2、拦截方法和参数2、实现拦截方法3、配置和运行4、分页插件实例4.1、分页参数4.2、确定拦截对象和方法4.3、实现拦截方法4.3、配置启用分页插件总结在上一篇文章中我们学习了 MyBatis 插件实现原理,这次我们根据所学的知识自己动手来实现一个简单的分页插件。1、确定需要拦截的签名MyBatis 运行拦截四大对象中的任意一个对象,通过 Plugin 的源码,我们也看到了需要先注册签名才能使用插件,所以首先要确定需要拦截

2020-12-17 17:45:19 478

原创 读书笔记——MyBatis插件原理分析

2020-12-16 17:37:06 156

原创 读书笔记——MyBatis核心解析和运行原理

构建SqlSessionFactory的过程1、构建ConfigurationConfiguration的作用:读入配置文件,包括基础配置的 XML 和映射器 XML (或注解〉。初始化一些基础配置,比如 MyBatis 的别名等,一些重要的类对象(比如插件、映射器、 Object 工厂、 typeHandlers 对象等)。提供单例,为后续创建 SessionFactorγ 服务,提供配置的参数。执行一些重要对象的初始化方法。Confinguration 是通过 XMLConfigBui

2020-12-10 17:24:57 142 1

原创 IO模型

目录知识点内核缓冲区与进程缓冲区IO中的同步与异步的概念IO模型同步阻塞IO(Blocking IO)同步非阻塞IO(None Blocking IO)IO多路复用模型(IO Multiplexing)异步IO模型(Asynchronous IO)知识点内核缓冲区与进程缓冲区在用户进行IO读写操作时并不是直接从物理设备把数据读取到内存或者直接把数据写入到物理设备。在物理设备和用户直接存在着内核缓冲区和进程缓冲区(用户进程自己的缓冲区)这两个区域,比如用户在进行read操作时,是把数据从内核缓冲区复制到

2020-11-08 17:01:33 242

原创 使用消息队列的优点

使用消息队列的优点解耦通过 MQ,使用Pub/Sub 发布订阅消息这么一个模型,系统之间可以进行解耦。异步削峰使用消息队列的缺点系统可用性降低系统引入的外部依赖越多,越容易挂掉。本来 A 系统调用 BCD 三个系统的接口就好了,加个 MQ 进来,万一 MQ 挂了整套系统崩溃的就完了。此时需要考虑如何保证消息队列的高可用。系统复杂度提高需保证消息没有重复消费、消息丢失的情况、保证消息传递的顺序性等一致性问题A 系统处理完了直接返回成功,但是 BCD 三个

2020-11-08 17:00:31 307

原创 redis基础知识、线程模型

redis支持的数据类型String(字符串类型)Hash(哈希类型)List(列表类型)Set(集合类型)ZSet(有序集合类型)redis的线程模型redis 内部使用文件事件处理器 file event handler,这个文件事件处理器是单线程的,所以 redis 才叫做单线程的模型。它采用 IO 多路复用机制同时监听多个 socket,将产生事件的 socket 压入内存队列中,事件分派器根据socket上的事件类型来选择对应的事件处理器进行处理 (反应器模式)。文件事件处理器

2020-11-08 17:00:02 78

原创 redis的过期策略与内存淘汰机制

redis的过期策略redis的过期策略是定期删除+惰性删除定期删除redis每隔一段时间(默认是100ms)就随机抽取一些设置了过期时间的key,检查其是否过期,过期则删除。之所以是随机抽取而不是全部遍历所有设置过期时间的key,是因为当设置过期时间的key特别多的情况下,如果全部遍历的话将耗费大量的时间与性能,一首凉凉送给你…如果只使用定期删除的话还会出现一个问题,由于是随机抽取设置过期时间的key,可能会导致很多key虽然到了时间,但是还没有被随机抽取到,结果还没有被删除掉。所以针对这

2020-11-08 16:59:27 90

原创 redis的持久化及优缺点

redis如果将数据仅缓存在内存里面,一旦redis挂了重启,数据就全部丢失了,像RabbitMQ一类的针对这种情况都提供了持久化机制,当然redis肯定也是有自己的持久化机制。redis提供了两种持久化方式RDB:对redis中的数据执行周期性的持久化(默认存储到dump.rdb文件)//参考配置save 900 1 #900秒内如果至少有1次key发生了变化,就执行持久化save 300 10 #300秒内如果至少有10次key发生了变化,就执行持久化save 60 10000 #

2020-11-08 16:58:48 600

原创 redis缓存雪崩、穿透、击穿现象及解决方案

缓存雪崩现象缓存服务全部崩溃(机器宕机等原因),数据请求全都落到数据库上,导致数据库也崩溃解决方案事前:保证redis高可用性,可采用主从+哨兵,redis cluster,避免全盘崩溃事中:采用本地缓存(ehcache)和限流组件(hystrix)事后: redis持久化机制,尽快恢复缓存集群,一旦重启,自动从磁盘上加载数据,恢复内存中的数据缓存穿透现象大量的请求没有命中缓存数据,直接打入了数据库,并且数据库中也没有对应的数据解决方案从数据库中查询时只要没有查到,

2020-11-08 16:58:23 107

原创 RabbitMQ的高可用机制

RabbitMQ高可用RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式单机模式(不推荐)一般生产环境没人用(但是我们公司用了,而且还遇到了MQ挂掉的问题,泪奔~~),主要用来本地跑个demo学习一下…普通集群模式(不推荐)在多台机器上启动多个 RabbitMQ 实例,每个机器启动一个。你创建的 queue,只会放在一个 RabbitMQ 实例上,但是每个实例都同步 queue 的元数据(元数据可以认为是 queue 的一些配置信息,通过元数据,可以找到 queue 所在实例)。你

2020-11-08 16:58:05 234

原创 Kafka如何保证高可用

Kafka高可用Kafka 一个最基本的架构认识:由多个 broker 组成,每个 broker 是一个节点;你创建一个 topic,这个 topic 可以划分为多个 partition,每个 partition 可以存在于不同的 broker 上,每个 partition 就放一部分数据。如果用RabbitMQ来理解的话,可以将broker理解为RabbitMQ的每个节点,而每个topic就是一个queue,一个queue可以划分成多个分片,每个分片就是partition。这就是天然的分布式消息队列

2020-11-08 16:57:37 576

原创 RabbitMQ如何保证消息的幂等性、可靠性、顺序性

如何保证消息的幂等性所谓的幂等性其实就是保证同一条消息不会重复或者重复消费了也不会对系统数据造成异常。出现消息重复消费的情况拿RabbitMQ来说的话,消费者在消费完成一条消息之后会向MQ回复一个ACK(可以配置自动ACK或者手动ACK) 来告诉MQ这条消息已经消费了。假如当消费者消费完数据后,准备回执ACK时,系统挂掉了,MQ是不知道该条消息已经被消费了。所以重启之后MQ会再次发送该条消息,导致消息被重复消费,如果此时没有做幂等性处理,可能就会导致数据错误等问题。如何保证消息队列消费的幂等性这一

2020-11-08 16:56:55 11966 6

原创 redis缓存、数据库双写不一致

Cache Aside Pattern模式读的时候先读缓存,缓存没有的话,再读取数据库,然后取出数据后放入缓存,同时返回响应更新的时候先删除缓存,然后再更新数据库(之所以删除缓存而不是更新,其实是一个懒加载的思想,避免频繁更新,降低开销)缓存、数据库双写不一致场景1: 先修改数据库,再修改/删除缓存,如果修改/删除缓存失败了,导致数据库中是新数据,缓存中是旧数据,数据出现不一致解决思路先删除缓存,再修改数据库,如果修改数据库失败,那么数据库中是旧数据,缓存中是空的,也不会存在不一致

2020-11-08 16:56:20 188

FragmentPagerAdapter调用notifyDataSetChanged无效及解决方案

FragmentPagerAdapter调用notifyDataSetChanged无效及解决方案

2018-07-02

Android串口通信

前段时间因项目性质原因开始接触人脸识别、指纹、身份证读取等方面,遇到了不少问题,其中在对接硬件方面的指纹模块时走了很多弯路,在此简单的介绍一下使用到的串口通讯知识,希望能对各位小伙伴有一定的帮助同时也是我自己的一个笔记,文章中如有错误、不当之处,还请指正

2018-06-10

空空如也

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

TA关注的人

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