自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ljheee的博客

欢迎关注公众号 架构道与术(ToBeArchitecturer) ,获得最新干货

原创 Redis键空间通知(Keyspace Notifications)

Redis Keyspace Notifications https://redis.io/topics/notifications Redis 是一个键值对数据库服务器,服务器中每个数据库都由 redisDB 结构表示(默认16个库)。其中,redisDB 结构的 dict 字典保存了数据库中...

2020-01-25 14:24:21 103 0

原创 Redis dict详解

dict,又称字典(dictionary)或映射(map),是集合的一种;这种集合中每个元素都是KV键值对。 字典dict在各编程语言中都有体现,面向对象的编程语言如C++、Java中都称其为Map。 Redis的KV存储结构 Redis内存数据库,最底层是一个redisDb; redisDb...

2020-01-16 22:30:52 82 0

原创 使用pipeline加速Redis

面试官:怎么快速删除10万个key? 某厂面试题:prod环境,如何快速删除10万个key? 带着思考,我们一来研究Redis pipeline。 why pipeline ? Redis客户端与server的请求/响应模型 前面的文章 Redis底层协议RESP详解 ,介绍到redis客户端与...

2020-01-10 11:19:02 42 0

原创 一文掌握Redis持久化

Redis持久化 Redis常用作KV缓存,热点数据都在内存、访问速度极快。 但谁也不能保证服务的100%可用,意外宕机内存中的数据就没了,对一些数据敏感的业务势必会造成影响。 因此,Redis提供了持久化,目的就是将内存中的数据尽量保存到磁盘上来,同时最大可能的不影响原本高性能的读写操作。 1、...

2020-01-08 18:05:32 108 0

原创 手写Redis客户端-实现自己的Jedis

手写Redis客户端-实现自己的Jedis 上一篇,我们详细研究了Redis底层使用的协议——RESP(REdis Serialization Protocol),这篇我们在基于理解了RESP原理的基础上,手写一个Redis客户端,实现一个自己的Jedis(mini版)。 还没了解Redis底层R...

2020-01-07 22:18:21 92 0

原创 Redis底层协议RESP详解

RESP 文章开始前,先放出两道面试题 1.Redis底层,使用的什么协议? 2.RESP是什么,在Redis怎么体现的? 带着这两个问题,来一探究竟。 什么是 RESP? 是基于TCP的应用层协议 RESP(REdis Serialization Protocol); RESP底层采用的是T...

2020-01-07 16:18:22 165 0

原创 终于有人把Java内存模型(JMM)说清楚了

网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内存模型是什么,为什么...

2019-12-18 17:29:30 179 0

原创 排序算法`一网打尽

排序算法 1、基本介绍 ​ 排序算法比较基础,但是设计到很多计算机科学的想法,如下: ​ 1、比较和非比较的策略 ​ 2、迭代和递归的实现 ​ 3、分而治之思想 ​ 4、最佳、最差、平均情况时间复杂度分析 ​ 5、随机算法 2、排序算法的分类 算法分类 算法总结 3、冒泡...

2019-09-19 22:40:55 85 0

原创 分布式事务的4种模式

相信很多小伙伴在阅读分布式事务相关文章时,都有碰到过,上来就是分析各种解决方案(全局事务、基于可靠消息、最大努力通知、TCC),又掺杂着两阶段提交协议2PC/TCC(提个小问题2PC和TCC的关系?)看似内容丰满,但看完之后没有条理,记不住这么多。今天从分布式事务4种模式的角度,来聊聊分布式事务理...

2019-08-17 18:40:44 1113 3

原创 Kafka零拷贝

Kafka除了具备消息队列MQ的特性和使用场景外,它还有一个重要用途,就是做存储层。 用kafka做存储层,为什么呢?一大堆可以做数据存储的 MySQL、MongoDB、HDFS…… 因为kafka数据是持久化磁盘的,还速度快;还可靠、支持分布式…… 啥!用了磁盘,还速度快!!! 没错,kafk...

2019-08-15 19:35:10 3030 2

原创 数据库连接池的大小你真的设置对了吗

问题 真实环境prod中的系统,我们该如何设置数据库连接池的大小呢? 一些所谓的开发老鸟可能会肯定的告诉你:没关系,尽量设置的大些,比如设置成200,这样数据库性能会高些,吞吐量也会大些! 对于菜鸟的你,也许认为好像似乎说的有道理,真的是这样吗?接下来的分析,也许颠覆你的认知哦! 数据库连接池的...

2019-08-10 23:24:47 2239 0

原创 开辟鸿蒙,聊聊华为微内核

曾经,微内核的操作系统一直活在实验室里,从来没走出过实验室。无数教授拿着教材说“微内核的操作系统没有实现过”。 过了昨天,这句话就就成为历史了。 操作系统(Operating System)内核有几种? 操作系统内核kernel,主要控制的计算机的正常运行,包括:文件管理(文件系统)、进程...

2019-08-10 18:36:21 873 0

原创 Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named '

Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named '__frch_criterion_1' in 'class com....

2018-11-25 12:42:43 596 0

原创 MyBatis 通用mapper批量插入异常

  ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.binding.BindingException: Paramet...

2018-11-19 19:25:16 2904 0

原创 Your stream was neither an OLE2 stream, nor an OOXML stream

最近使用Apache poi 做excel导出的功能,遇到了如下问题: Your stream was neither an OLE2 stream, nor an OOXML stream 起初对比其他的web工程,没有发现如何解决。最后找到抛出此异常的源码: org.apache.p...

2018-10-25 22:05:24 3130 0

原创 Git 多平台换行符问题(LF or CRLF)

在不同的操作系统上,使用git提交代码时,可能遇到如下提示: warning: CRLF will be replaced by LF in index.html. warning: LF will be replaced by CRLF 背景:本人在 Mac下提交html代码,报出war...

2018-10-05 19:34:51 905 0

原创 log4j2实战--将MyBatis执行SQL记录到文件,按天分存

需求:将Mybatis的执行SQL,按天存日志文件。项目使用的是log4j2。 原先项目,都是将所有日志通通打印到控制台。现在需要将系统接收用户请求后,Mybatis的执行SQL,按天存日志文件。 当时在想: 把Mybatis的SQL打印到控制台容易实现, 日志按Level级别 按天存文件也容...

2018-09-04 14:35:05 1970 11

原创 深度解析volatile—底层实现

我们都知道,Java关键字volatile的作用 1、内存可见性 2、禁止指令重排序 可见性是指,在多线程环境,共享变量的操作对于每个线程来说,都是内存可见的,也就是每个线程获取的volatile变量都是最新值;并且每个线程对volatile变量的修改,都直接刷新到主存。 下面重点介绍指令...

2018-09-02 17:49:14 3096 8

原创 从多核硬件架构,看Java内存模型

在了解Java内存模型之前,先来看一下多核硬件架构。 我们应该都知道,计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又免不了要和数据打交道。而计算机上面的数据,是存放在主存当中的,也就是计算机的物理内存啦。 刚开始,还相安无事的,但是随着CPU技术的发展,CPU的执行速度...

2018-09-02 17:23:29 588 0

原创 查看Java的汇编指令

通过javap 命令,可以将字节码文件反编译。如通过下面的命令: javap -c Xxxx.class 而有时候想看某些JDK底层实现,发现反编译得到的代码并没有什么帮助,因此本文介绍如何查看Java的汇编指令,查看Java代码最真实的运行细节。 Java本身提供这个支持,但需要引入而...

2018-08-30 11:02:19 4907 0

原创 Spring事务管理详解

Spring事务介绍 Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现。 Spring事务管理器的接口是org.springframework.transaction.Platform...

2018-08-26 16:35:06 274 0

原创 终极解决方案: Invalid character found in the request target. The valid characters are defined in RFC 3986

终极解决方案: Invalid character found in the request target. The valid characters are defined in RFC 3986 25-Aug-2018 11:27:27.086 信息 [http-nio-8087-exec...

2018-08-25 15:15:03 32377 22

原创 Kafka消费者——从 Kafka读取数据

应用程序使用 KafkaConsumer向 Kafka 订阅主题,并从订阅的主题上接收消息 。 从 Kafka 读取数据不同于从其他悄息系统读取数据,它涉及一些独特的概念和想法。如果不先理解 这些概念,就难以理解如何使用消费者 API。所以我们接下来先解释这些重要的概念,然 后再举几个例子,横示如...

2018-08-11 17:47:38 8656 2

原创 Kafka——分区partition

在之前的例子里(Kafka生产者——向 Kafka写入数据), ProducerRecord 对象包含了目标主题、键和值。 Kafka 的消息是 一个个 键值对, ProducerRecord对象可以只包含目标主题和值,键可以设置为默认的 null,不过大多数应用程序会用到键。键有两个用途 :可以...

2018-08-11 15:31:33 981 0

原创 Kafka生产者——向 Kafka写入数据

不管是把 Kafka 作为消息队列、消息、总线还是数据存储平台来使用 ,总是需要有一个可以往 Kafka 写入数据的生产者和一个可以从 Kafka读取数据的消费者,或者一个兼具两种角 色的应用程序。 例如,在一个信用卡事务处理系统里,有一个客户端应用程序,它可能是一个在线商店, 每当有支付行为发...

2018-08-10 20:47:38 11728 2

原创 《Kafka权威指南》——初识 Kafka

发布与订阅消息系统 在正式讨论Apache Kafka (以下简称Kafka)之前,先来了解发布与订阅消息系统的概念, 并认识这个系统的重要性。数据(消息)的发送者(发布者)不会直接把消息发送给接收 者,这是发布与订阅消息系统的一个特点。发布者以某种方式对消息进行分类,接收者 (订阅者)订阅它们...

2018-08-10 13:09:33 1956 2

转载 源码分析----Mybatis数据源与连接池

  对于ORM框架而言,数据源的组织是一个非常重要的一部分,这直接影响到框架的性能问题。本文将通过对MyBatis框架的数据源结构进行详尽的分析,并且深入解析MyBatis的连接池。 本文首先会讲述MyBatis的数据源的分类,然后会介绍数据源是如何加载和使用的。紧接着将分类介绍UNPOOLE...

2018-08-09 12:26:13 425 0

原创 Zookeeper用作注册中心的原理

RPC框架中有3个重要的角色:   image.png 注册中心 :保存所有服务的名字,服务提供者的ip列表,服务消费者的IP列表 服务提供者: 提供跨进程服务 服务消费者: 寻找到指定命名的服务并消费。 Zookeeper用作注册中心 简单来讲,zookeeper可以充当一个服务...

2018-07-27 17:53:37 13772 5

原创 RPC服务注册与发现

如何发布自己的服务? RPC远程过程调用中,存在2个角色,一个服务提供者、另一个服务消费者。那如何让调用者知道,存在哪些服务可以调用呢?即如何让别人使用我们的服务呢? 有同学说很简单嘛,告诉使用者服务的IP以及端口就可以了啊。确实是这样,这里问题的关键在于是自动告知还是人肉告知。 人肉告知的...

2018-07-27 17:15:52 4013 2

原创 解决CannotAcquireResourceException: A ResourcePool could notacquire a resource from its primary factor

Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database! Caused by: com.mchange.v2.resourcepool.CannotAcq...

2018-07-18 14:28:05 1606 5

原创 NIO究竟牛X在哪?

在进入NIO之前,先回顾一下Java标准IO方式实现的网络server端:public class IOServerThreadPool { private static final Logger LOGGER = LoggerFactory.getLogger(IOServerThreadP...

2018-07-16 15:01:12 413 0

原创 阿里 JAVA 开发手册

1、命名严禁使用拼音与英文混合的方式。 2、领域模型命名规约 1) 数据对象: xxxDO, xxx 即为数据表名。 2) 数据传输对象: xxxDTO, xxx 为业务领域相关的名称。 3) 展示对象: xxxVO, xxx 一般为网页名称。 4) POJO 是 DO/DTO/BO...

2018-01-28 18:51:51 717 0

原创 Java 实现大数次方、阶乘

/** * Java 实现大数次方、阶乘 * @param args */ public static void main(String[] args) { // 计算 1949的2016次方 BigDecimal bd = ...

2018-01-28 18:36:46 1848 0

原创 mac安装git后,在终端里运行git命令,系统提示需要安装Xcode问题解决

直接下载git for mac 安装包,https://git-scm.com/download/mac 安装完后,git的默认安装目录是: /usr/local/git 但是使用 which git 命令后,发现git的目录是: /usr/bin/git 意思是我们安装的git...

2018-01-27 17:59:11 3686 0

原创 之前生成的.ssh可以直接放入Mac系统user/your_name中使用

总结: 之前生成的.ssh可以直接放入Windows系统user/Administrator中使用。 之前生成的.ssh可以直接放入Mac系统user/your_name中使用。 说明:生成的.ssh可以自行保留,等下次重装或换系统后,可按上述方式实现复用。以上2种方法亲测。 Ma...

2018-01-25 21:22:53 328 0

原创 单例模式——线程安全的两种实现

单例模式——线程安全的两种实现一、双重检查锁定(double-checked locking)public class SingleTon { // 静态实例变量加上volatile private static volatile SingleTon instance; /...

2018-01-18 20:46:57 3686 2

原创 Java反射实战

背景  使用spring-ldap操作LDAP,完成LdapTemplate设置后,进行多条件查询,因为需求是能够多条件查询,所以在使用ldapTemplate.search系列方法时,着重考虑了下面的重载实现,第二个参数直接写过滤条件,只要按过滤语法书写即可,胜任各种复杂查询。 ...

2017-12-14 10:33:33 489 0

原创 Spring ldap ODM

Spring ldap ODM   上文讲述了Spring-ldap基本操作,通过定义LdapTemplate这个bean到IOC容器,使用时注入LdapTemplate即可完成对LDAP目录树的CRUD及筛选、过滤等。   但是对于筛选查询出来的内容,JNDI是封装在Attributes...

2017-12-09 11:11:32 1130 0

原创 Spring LDAP的使用

LDAP入门http://www.jianshu.com/p/7e4d99f6baaf Spring LDAP,是Spring的一个组件,实现对LDAP的操作。 在编程操作MySQL时,我们除了用JDBC,可能都会选用一些框架,比如JbdcTemplate。JdbcTemplate的实...

2017-12-08 10:43:14 7681 2

原创 LDAP入门

LDAP入门 首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚。在这里给大家稍微捋一捋。 首先LDAP是一种通讯协议,LDAP支持TCP/IP。协议就是标准,并且是抽象的。在这套标准下,AD(ActiveDirectory)是微软出的一套实现。 那AD是什么呢...

2017-12-07 21:29:08 2307 2

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