自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序男的专栏

专注---让自己更有野心。----coderMan

原创 送给23岁的风华年少

还记得那个邀请女生去跳华尔兹舞的体育课吗,你心中的悸动是否还在,是否还只是停留在想想而已的地步。现在,你是否还可以做一个优雅的动作去邀请心动的人来一场青春的华尔兹。-------题记      一晃自己已经23岁了,虽然170厘米的个头还行,但是心中总有长辈们的那句话:“23猛一串。”意...

2014-07-31 15:48:48 1075 0

原创 java应用篇近期面试总结

zookeeper系列也接近尾声了,这里笔者希望在2月份再发表几篇文章,笔者从去年12月下半个月开始面试,接触了很多大厂,被问了很多问题,笔者也在面试过程中对其做了总结和分类。以面试官的口吻对各个知识点进行面对面的交流。有些笔者是后面给的答案所以并不代表笔者当时的回答,所以要继续加油了。上一篇是:...

2020-02-27 09:34:10 79 0

原创 基于zookeeper集群实现分布式FIFO队列的工程实践

上一篇基于zk集群实现了分布式的id生成器,本篇继续基于zk集群进行场景实践,分布式的FIFO队列怎么用zk去做呢?直接上代码。 一、创建队列需要用到的bean package com.coderman.zookeeper.clusterdemo.queuefifodemo; /** * @...

2020-02-22 16:48:50 59 0

原创 基于zookeeper集群实现分布式id生成器的工程实践

上一篇进行了近期面试的简单总结,同时也在上上一篇进行了基于zookeeper集群实现分布式锁的工程实践,这两篇是在同一天发布的,日更一篇其实有点难度,坚持吧。本篇进行了基于zookeeper集群实现分布式id生成器的工程实践。之前学习redis的时候也进行了id生成器的实践这里给出链接:https...

2020-02-19 17:38:32 73 0

原创 性能优化与调优近期面试总结

前面已经整理发布了两篇近期面试的总结题,今天顺便整理第三部分,性能优化与调优篇,后面还有其他主题的面试真题,敬请期待。 性能优化与调优篇 1.一条SQL操作比较慢请问有哪些原因 答:1.首先排查服务自身是否由于ORM框架导致的问题 2.再次排查网络是否通畅,是否存在丢包延迟等情况 3.确定业务服...

2020-02-17 21:10:36 1313 0

原创 基于zookeeper集群实现分布式锁的工程实践

上一篇实现了基于zookeeper集群实现的分布式配置中心的工程样例,并进行了总结,本篇进行基于zookeeper集群实现的分布式锁工程案例,当然也借鉴和参考了其他博客,这里先给出引用:https://blog.csdn.net/hongtaolong/article/details/888988...

2020-02-17 18:46:45 79 0

原创 基于zookeeper实现配置中心功能的简单工程

上一篇文章说到了一些zookeeper的应用场景,本篇将是对这些场景进行代码模拟实战的开篇文章。之前已经在本地搭建起了zk集群,并进行了一些api实践,因此本章主要讲述如何使用zk客户端模拟一个配置中心,推送变更的场景。 初始化配置bean package com.coderman.zookee...

2020-02-14 17:05:42 50 0

原创 zookeeper的应用场景简介

zookeeper的中文意思是动物管理员的意思,同时也是一个开放源代码的分布式协调服务,zookeeper的设计目标是将那些复杂且容易出错的分布式一致性 服务封装起来,构成一个搞笑可靠的原语集,并以一系列简单易用的接口提供给用户使用。zookeeper是一个典型的分布式数据一致性的解决方案。 zo...

2020-02-13 18:18:07 47 0

原创 Zookeeper封装的客户端jar包 api简单演示

前面几篇演示了zookeeper的原生api,由于原生api在实现某些功能上比较繁琐,开发人员需要关注很多实现细节,因此业界出现了对zookeeper原生api的一些封装工具包。本篇简单介绍比较流行的两个开源客户端。 ZkClient <dependency> <g...

2020-02-12 18:44:59 56 0

原创 Zookeeper主要的原生API介绍

通过前面三篇文章用代码演示了zookeeper的原生api,本篇通过截图的方式对zookeeper的主要api进行总结回顾。

2020-02-11 16:04:03 139 0

原创 使用zookeeper原生API链接ZK集群进行基本API演示(3)

前面一篇介绍了使用zk原生api链接zk集群进行获取子节点,获取数据的同步异步方式,本篇演示剩余其他api的代码demo. setDataAPI 代码演示 package com.coderman.zookeeper.clusterdemo.version2; import org.apach...

2020-02-11 15:14:49 139 0

原创 使用zookeeper原生API链接ZK集群进行基本API演示(2)

前面一篇介绍了使用zk原生api链接zk集群进行基本api的演示,演示了连接zk初始化的过程和创建节点的过程。本篇演示获取子节点,获取数据的同步异步获取代码demo. package com.coderman.zookeeper.clusterdemo.version2; import com...

2020-02-10 18:25:29 171 0

原创 使用zookeeper原生API链接ZK集群进行基本API演示

上一篇发布了近期的面试总结-Mysql篇,最近在读《从Paxos到Zookeeper分布式一致性原理与实践》的电子书,从上面学到不少,因此将部分api演示从头演练一遍形成demo代码。 zookeeper初始化构造方法 package com.coderman.zookeeper.cluster...

2020-02-10 17:12:43 159 0

原创 MySql近期面试总结

由于今天时间有限,并且使用zookeeper api的demo代码编写不当,因此本篇文章有点难产,笑哭~。这里整一篇Mysql年前的面试总结。还有其他几篇,本篇介绍Mysql方面的内容。 二、数据库(MySql)篇 1.有表结构:学生姓名,课程id,分数三个字段,如何查到平均成绩大于85分的同学...

2020-02-09 18:42:56 2547 0

原创 zookeeper的数据结构&操作命令

前面一篇介绍了基于win10 64位系统搭建的zookeeper的伪集群,由5个节点组成的,因此我们这里为了后面的文章介绍一下zookeeper的数据结构以及一些操作运维相关的命令。 1.zookeeper的数据结构描述 ZooKeeper提供的名称空间非常类似于标准文件系统。名称是由斜线(/)...

2020-02-08 16:56:47 260 0

原创 win10搭建zookeeper3.4.14版本伪集群实战

前面两篇博客介绍了分布式相关的一些话题以及对zookeeper的一些理解。本篇博客记录基于win10系统搭建zookeeper3.4.14版本的伪集群,并为后面的实战做环境基础准备。 一、依赖环境准备 1.java JDK安装 2.zookeeper 3.4.14.tar.gz 3.在D盘新建目...

2020-02-07 18:42:36 171 0

原创 分布式系统需要解决的几大问题

架构演进中单体架构的高难度演进和技术升级我可能没有经历过,目前很多场景很多需求,都需要分布式系统去解决,不过大多数情况下我们可能不需要使用分布式相关的服务,但是业务的发展可能需要我们提前了解相关的技术作为技术储备,随时迎难而上。本篇文章作为分布式理论的一篇随笔完全自己手敲去理解分布式系统需要解决的...

2020-02-06 18:16:06 504 0

原创 zookeeper简述和我对zookeeper的理解

前面10来篇针对于redis进行了一系列的回顾和学习,接下来需要针对zookeeper做一些理论上的学习和集群搭建以及代码操作。 理论书籍有两本值得深入学习: 从Paxos到Zookeeper 分布式一致性原理与实践 zookeeper分布式过程协同技术详解 笔者有第一本书,但是没看完,我理解...

2020-02-06 15:35:32 188 0

原创 Redis近期面试题总结

笔者去年12月中旬开始面试,面了很多大厂,有很多问题,原理掌握不牢,因此借此对redis做一个复盘和总结,除了HyperLogLog和GEO的数据结构没有实践过,其他的都大概了解,简单代码模拟了一些场景。由此对我所经历的面过redis的问题做一个汇总。 一、Redis篇 1.Redis有几种数据...

2020-02-03 16:13:00 1648 0

原创 使用jedis连接redis-cluster模拟缓存击穿,穿透,雪崩场景

上一篇演示了通过redis实现ID生成器,本篇模拟缓存击穿,穿透,雪崩的场景。 package com.coderman.jedis.clusterdemo.hack; import com.coderman.jedis.clusterdemo.ClusterTest; import org....

2020-02-02 17:27:49 237 0

原创 使用jedis连接redis-cluster实现纯redis实现的ID生成器

上一篇演示了使用jedis连接redis-cluster实现纯redis实现的bloom过滤器,本篇演示通过redis实现ID生成器。 package com.coderman.jedis.clusterdemo.idgenerator; import com.coderman.jedis.c...

2020-01-31 15:50:07 138 0

原创 使用jedis连接redis-cluster实现纯redis实现的bloom过滤器

上一篇演示了通过jedis的api进行多个发布订阅消息的案例,本篇演示使用jedis连接redis-cluster实现纯redis实现的bloom过滤器。 package com.coderman.jedis.clusterdemo.bloomfilter; import com.coderm...

2020-01-29 18:23:46 159 0

原创 使用jedis连接redis-cluster进行发布订阅功能的演示(下)

上一篇演示了通过jedis的api进行发布订阅消息的案例,但是只是单订阅方和消费方,本篇演示多个消息发布方,单个消息订阅方的场景。 import org.junit.Test; import redis.clients.jedis.JedisPubSub; import java.util.c...

2020-01-17 11:24:47 140 0

原创 使用jedis连接redis-cluster进行发布订阅功能的演示(上)

上一篇演示了使用纯redis演示布隆过滤(Bloom Filter)器的使用。以及bitmap的一些jedis api.本篇通过jedis的api进行发布订阅消息的案例演示(上)。 package com.coderman.jedis.clusterdemo; import org.junit...

2020-01-16 11:08:12 196 0

原创 使用jedis连接redis-cluster进行布隆过滤器功能的演示

前几篇分别进行了redis的五种基础数据结构的api演示,下面几篇会针对基于redis cluster集群做一些常用的应用场景演示demo。本篇使用纯redis演示布隆过滤(Bloom Filter)器的使用。以及bitmap的一些jedis api. package com.coderman....

2020-01-15 11:17:30 163 0

原创 使用jedis连接redis-cluster进行set数据结构api演示

继上一篇使用jedis连接redis-cluster进行zset数据结构api演示 之后的第五章节。本章内容讲解使用jedis连接redis-cluster进行set数据结构api演示。 package com.coderman.jedis.clusterdemo; import com.al...

2020-01-14 16:43:55 90 0

原创 使用jedis连接redis-cluster进行zset数据结构api演示

继上一篇使用jedis连接redis-cluster进行hash数据结构api演示 之后的第二章节。本章内容讲解使用jedis连接redis-cluster进行zset数据结构api演示。 package com.coderman.jedis.clusterdemo; import com.a...

2020-01-13 15:01:00 148 0

原创 mysql慢sql优化前缀索引实战

背景:最近负责的招聘系统出现了一些慢查询,已经解决了不少,但是还有,今天报了一个慢查询,咨询了下dba,可以加前缀索引优化。 出问题的sql:select * from t_offer_record where record_bill_hashcode = ? 执行时间:336ms 我这边按一...

2020-01-13 10:20:53 66 0

原创 使用jedis连接redis-cluster进行hash数据结构api演示

继上一篇使用jedis连接redis-cluster进行list列表数据结构api演示 之后的第二章节。本章内容讲解使用jedis连接redis-cluster进行hash数据结构api演示。 package com.coderman.jedis.clusterdemo; import co...

2020-01-11 16:58:17 101 0

原创 使用jedis连接redis-cluster进行list列表数据结构api演示

继上一篇使用jedis连接redis-cluster进行字符串数据结构api演示 之后的第二章节。本章内容讲解使用jedis连接redis-cluster进行list列表数据结构api演示。 package com.coderman.jedis.clusterdemo; import com.a...

2020-01-10 16:05:27 182 0

原创 使用jedis连接redis-cluster进行字符串数据结构api演示

继上一篇创建测试基类之后,可以根据父类创建子类进行专门的测试,下面将针对基于jedis连接redis cluster集群的操作做一个系列文章。本章内容讲解redis 字符串数据结构的一些jedis操作。 package com.coderman.jedis.clusterdemo; impor...

2020-01-07 16:02:56 51 0

原创 使用jedis连接redis-cluster集群

继上一篇对redis3.2的整体配置进行回顾之后,可以按照上上一篇的文章在windows平台搭建整个redis cluster集群,这个肯定各个网站上都有。下面将针对基于jedis连接redis cluster集群的操作做一个系列文章。 本章算是开篇,先定义一个基类,后面会陆续放出其他基于此类进...

2020-01-06 17:58:12 171 0

原创 Redis配置项说明

Redis的配置文件配置项说明

2020-01-04 17:43:11 50 0

原创 windows 搭建redis cluster3.2集群

背景:为了整体学习redis相关的知识点先搭建一个redis的集群,然后基于此集群进行相关理论和应用场景的学习实践。 准备工作 下载:redis-win-3.2.100.tar.gz 包到D:\programefiles\redis 解压压缩包,并复制文件夹,复制6个文件夹,如下所示 选择...

2020-01-04 14:59:26 46 0

原创 JVM参数说明&实战

JVM基础参数配置简介 标准选项(cmd下 输入java 即可打印所有标准选项)X选项也叫非标准选项(cmd下输入java -X 即可打印所有非标准选项)XX选项(cmd下输入java -XX: PrintFlagsInitial -version,即可打印所有XX选项的默认值)本次分享主要就...

2019-12-15 09:57:55 315 0

原创 JavaClassLoader源码分析(中)

ClassLoader的属性 说明:ClassLoader的属性与其内部类是穿插着创建的,这里写在一起了 private static native void registerNatives(); //将ClassLoader类中所有native修饰的方法与C 语言描述的方法对应上...

2019-12-14 19:27:13 322 0

原创 Java classLoader源码分析(上)

Launcher类的构造函数 public Launcher() { Launcher.ExtClassLoader var1; try { //1.先通过内部类获取ExtClassLoader var1 = Laun...

2019-12-10 19:35:22 320 0

原创 ConcurrentHashMap源码解读

基于jdk1.7进行源码阅读 1.chm的类图 2.chm的属性和构造方法 /** * Creates a new, empty map with the specified initial * capacity, load factor and concurre...

2019-12-09 16:01:50 315 0

原创 Java classLoader那些事儿

1.java类加载的定义&过程 1.定义将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内...

2019-12-07 11:01:42 326 0

原创 HashMap源码解读

源码是基于JDK1.7的 类图 构造方法 构造默认容量为16个字符的数组大小 追加操作 追加实现 追加实现默认调用父类方法 针对追加对象的不同有不同的实现方法和实现逻辑 扩容操作 在进行追加之前需要保障字符数组足够长 插入操作 插入不等同于追加 插入需要先进行入...

2019-12-07 00:19:53 304 0

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