摘要: Hello! My name is WangQunxing, from anhui anqing, my personality is bright, honest, easy to get along with people; Likes fishing and playing Mahjong. 阅读全文
posted @ 2022-06-14 12:20 qxwang 阅读(601) 评论(0) 推荐(0)
摘要: Git命令的用法... 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remo 阅读全文
posted @ 2019-10-10 15:50 qxwang 阅读(32) 评论(0) 推荐(0)
摘要: 前言 Spring代码实例:https://github.com/yihonglei/Spring-Study 一 JDK动态代理 在了解JDK动态代理前,有需要可以了解下代理模式。 参考:https://blog.csdn.net/yhl_jxy/article/details/52679882; 阅读全文
posted @ 2019-08-13 11:24 qxwang 阅读(49) 评论(0) 推荐(0)
摘要: Eureka和Zookeeper区别遵循原则不同Eureka遵循AP原则,Zookeeper遵循CP原则,C:强一致性,A:可用性,P:分区容错性 著名的CAP理论中提出,一个分布式系统不可能同时满足C(一致性)A(可用性)P(分区容错性),由于分区容错性p是分布式系统中必须保证,因此只能在A和C之 阅读全文
posted @ 2019-08-10 23:39 qxwang 阅读(137) 评论(0) 推荐(0)
摘要: Dubbo容错策略 Failover Cluster 模式1.失败自动切换,当出现失败,重试其它服务器。(缺省)2. 通常用于读操作,但重试会带来更长延迟。3. 可通过retries=”2”来设置重试次数(不含第一次)。 Failfast Cluster快速失败,只发起一次调用,失败立即报错。通常用 阅读全文
posted @ 2019-08-10 23:37 qxwang 阅读(22) 评论(0) 推荐(0)
摘要: aof,rdb是两种 redis持久化的机制。用于crash后,redis的恢复。 redis两种持久化的方式 RDB持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 AOF持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命 阅读全文
posted @ 2019-08-10 23:35 qxwang 阅读(73) 评论(0) 推荐(0)
摘要: 客户端连接请求响应流程既然已经实现高可用为什么不直接直连?高可用涉及的是服务高可用、完成自动的故障转移;故障转移后客户端无法感知将无法保证正常的使用。需要保证的是服务高可用 和 客户端高可用。 客户端实现基本原理1.客户端实现基本原理 - step1:获取所有的Sentinel的节点和MasterN 阅读全文
posted @ 2019-08-10 23:33 qxwang 阅读(368) 评论(0) 推荐(0)
摘要: Dubbo的亮点总结例如以下: 1、服务注冊中心 相比Hessian类RPC框架,Dubbo有自己的服务中心。 写好的服务能够注冊到服务中心。 client从服务中心寻找服务。然后再到对应的服务提供者机器获取服务 通过服务中心能够实现集群、负载均衡、高可用(容错) 等重要功能 服务中心一般使用zoo 阅读全文
posted @ 2019-08-04 21:46 qxwang 阅读(35) 评论(0) 推荐(0)
摘要: 一、前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下。 整理这篇文章差不多花了两天半时间,请尊重劳动成果,如转载请注明出处http://blog.csdn.net/u012 阅读全文
posted @ 2019-08-04 21:38 qxwang 阅读(71) 评论(0) 推荐(0)
摘要: 其实,双亲委派模型并不复杂。自定义类加载器也不难!随便从网上搜一下就能搜出一大把结果,然后copy一下就能用。但是,如果每次想自定义类加载器就必须搜一遍别人的文章,然后复制,这样显然不行。可是自定义类加载器又不经常用,时间久了容易忘记。相信你经常会记不太清loadClass、findClass、de 阅读全文
posted @ 2019-08-04 21:18 qxwang 阅读(21) 评论(0) 推荐(0)
摘要: 或者许多的朋友在使用单例模式中会学到双重检查加锁(double-checked locking)的应用。 public class Singleton { private volatile static Singleton uniqueInstance; private Singleton(){} 阅读全文
posted @ 2019-08-04 21:00 qxwang 阅读(33) 评论(0) 推荐(0)
摘要: 用数组结构实现大小固定的栈和队列,这是一个面试的常考题目,也是一个比较简单的题目。 1.实现栈结构:栈结构是先进后出的,只需要一个数组和一个记录位置的变量size,当进来一个元素,size就++,出去一个元素size就–。 2.实现队列结构:相对栈结构要难搞一些,队列的先进先出的,需要一个数组和三个 阅读全文
posted @ 2019-08-04 20:22 qxwang 阅读(45) 评论(0) 推荐(0)
摘要: public class ThreadTest { public boolean flag; public class OddClass implements Runnable { public ThreadTest t; public OddClass(ThreadTest t) { this.t = t; ... 阅读全文
posted @ 2019-08-04 14:22 qxwang 阅读(33) 评论(0) 推荐(0)
摘要: 作者:范鹏程,网易考拉海购 InnoDB是 MySQL最常用的存储引擎,了解InnoDB存储引擎的索引对于日常工作有很大的益处,索引的存在便是为了加速数据库行记录的检索。以下是我对最近学习的知识的一些总结,以及对碰到的以及别人提到过的问题的一些分析,如有错误,请指正,我会及时更正。 目录 InnoD 阅读全文
posted @ 2019-08-04 13:40 qxwang 阅读(42) 评论(0) 推荐(0)
摘要: 前言 Innodb的表存储结构由段、簇(区)、页组成,一个段由若干簇组成,一个簇默认有64页,每页16KB。 一、索引 本文使用的案例的表 CREATE TABLE `award` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id', `aty 阅读全文
posted @ 2019-08-04 13:36 qxwang 阅读(49) 评论(0) 推荐(0)
摘要: 1、Eureka 简介: Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。 1.基本原理 上图是来自eurek 阅读全文
posted @ 2019-08-04 13:18 qxwang 阅读(43) 评论(0) 推荐(0)
摘要: 目录 · ZooKeeper安装 · 分布式一致性理论 · 一致性级别 · 集中式系统 · 分布式系统 · ACID特性 · CAP理论 · BASE理论 · 一致性协议 · ZooKeeper概况 · ZooKeeper API · 命令 · Java API · Curator · ZooKee 阅读全文
posted @ 2019-08-04 13:17 qxwang 阅读(46) 评论(0) 推荐(0)
摘要: Watcher是什么 在ZooKeeper中,接口类Watcher用于表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定义了事件的回调方法:process(WatchedEvent event) 同一个 阅读全文
posted @ 2019-08-04 13:16 qxwang 阅读(113) 评论(0) 推荐(0)
摘要: Redis是干嘛用的? Redis可以用作持久化的存储吗? Redis怎么进行持久化操作呢? Redis的内存淘汰机制有哪些? 我们还可以用Redis做哪些事情?分别利用了Redis的哪个指令? 思考:不知道这些常用工具的底层实现是什么。 一、Redis是什么 REmote DIctionary S 阅读全文
posted @ 2019-08-01 20:50 qxwang 阅读(78) 评论(0) 推荐(0)
摘要: 前言 上篇文章 Redis闲谈(1):构建知识图谱介绍了redis的基本概念、优缺点以及它的内存淘汰机制,相信大家对redis有了初步的认识。互联网的很多应用场景都有着Redis的身影,它能做的事情远远超出了我们的想像。Redis的底层数据结构到底是什么样的呢,为什么它能做这么多的事情?本文将探秘R 阅读全文
posted @ 2019-08-01 20:48 qxwang 阅读(53) 评论(0) 推荐(0)
摘要: Spring Boot 开箱即用,内藏玄机 Spring Boot 提供了很多开箱即用的依赖模块,那么,Spring Boot 如何巧妙的做到开箱即用,自动配置的呢? 开箱即用,内藏玄机 Spring Boot提供了很多“开箱即用”的依赖模块,都是以spring-boot-starter-xx作为命 阅读全文
posted @ 2019-08-01 15:45 qxwang 阅读(87) 评论(0) 推荐(0)
摘要: 1. 前言 我们知道,生产者发送消息到主题,消费者订阅主题(以消费者组的名义订阅),而主题下是分区,消息是存储在分区中的,所以事实上生产者发送消息到分区,消费者则从分区读取消息,那么,这里问题来了,生产者将消息投递到哪个分区?消费者组中的消费者实例之间是怎么分配分区的呢?接下来,就围绕着这两个问题一 阅读全文
posted @ 2019-08-01 14:42 qxwang 阅读(46) 评论(0) 推荐(0)
摘要: 1. 单一职责原则(SRP) 定义:就一个类而言,应该仅有一个引起它变化的原因。 从这句定义我们很难理解它的含义,通俗讲就是我们不要让一个类承担过多的职责。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化 阅读全文
posted @ 2019-07-31 21:27 qxwang 阅读(24) 评论(0) 推荐(0)
摘要: Java注解 又称Java标注,是Java语言5.0版本开始支持加入源代码的特殊语法元数据。 Java语言中的类、方法、变量、参数和包等都可以被标注。Java标注和Javadoc不同,标注有自反性。在编译器生成类文件时,标注可以被嵌入到字节码中,由Java虚拟机执行时获取到标注[。 我们在平常编写代 阅读全文
posted @ 2019-07-31 21:27 qxwang 阅读(47) 评论(0) 推荐(0)
摘要: 基本IO操作代码 阅读全文
posted @ 2019-07-31 21:26 qxwang 阅读(51) 评论(0) 推荐(0)
摘要: 前言 在看《大话设计模式》中,经常会看到各种各样的UML类图的出现,用来描述设计模式中类与类,类与接口之间的关联关系。可能刚开始看到一些简单的UML图还能读得懂,越往后越觉得阅读UML类图的能力必不可少,所以针对UML类图做一次总结。 1、UML类图图示示例 2、类 类图分三层,第一层显示类的名称, 阅读全文
posted @ 2019-07-31 21:26 qxwang 阅读(73) 评论(0) 推荐(0)
摘要: 使用注解需要做的配置 用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册<context:component-scan base-package=”pagkage1[,pagkage2,…,pagkageN]”/>。如:在base-package指明一个 阅读全文
posted @ 2019-07-31 21:25 qxwang 阅读(27) 评论(0) 推荐(0)
摘要: Java集合框架总体结构图 Collection 接口 定义集合基本方法 123456789101112131415 int size();boolean isEmpty();boolean contains(Object o);Iterator<E> iterator();Object[] toA 阅读全文
posted @ 2019-07-31 21:24 qxwang 阅读(45) 评论(0) 推荐(0)
摘要: HashMap的数据结构 要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个数组和链表的结合体(在数据结构中,一般称 阅读全文
posted @ 2019-07-31 21:23 qxwang 阅读(142) 评论(0) 推荐(0)
摘要: 红黑树特性 性质 1:每个节点要么是红色,要么是黑色。 性质 2:根节点永远是黑色的。 性质 3:所有的叶节点都是空节点(即 null),并且是黑色的。 性质 4:每个红色节点的两个子节点都是黑色。(从每个叶子到根的路径上不会有两个连续的红色节点) 性质 5:从任一节点到其子树中每个叶子节点的路径都 阅读全文
posted @ 2019-07-31 21:22 qxwang 阅读(180) 评论(0) 推荐(0)
摘要: 红黑树(Red-black tree)的基本知识 一.定义 红黑树是一种自平衡二叉查找树,高效的O(log n)时间内做查找,插入和删除。 NIL节点表示数据的结束,画图时应该也体现出来。 二.特点 任意节点的左子树不空,则左子树上所有节点的值均小于它的根结点的值; 任意节点的右子树不空,则右子树上 阅读全文
posted @ 2019-07-31 21:22 qxwang 阅读(88) 评论(0) 推荐(0)
摘要: 前言 统计记录下Spring相关Bean的类,以做记忆 Spring Bean解析与注册 BeanFactoryDefaultListableBeanFactoryXmlBeanFactoryXmlBeanDefinitionReaderBeanDefinitionHolderBeanDefinit 阅读全文
posted @ 2019-07-31 16:20 qxwang 阅读(22) 评论(0) 推荐(0)
摘要: ControllerAdvice作用 使用@ControllerAdvice能够在不侵入业务逻辑的情况下,进行业务异常的处理,尤其是针对于业务处理时,需要用异常的方式向前台传输异常编码的情况下,用@ControllerAdvice能够非常完美的实现异常的处理。 ControllerAdvice代码实 阅读全文
posted @ 2019-07-31 16:20 qxwang 阅读(50) 评论(0) 推荐(0)
摘要: 11 MyBatis一级缓存实现 每当我们使用MyBatis开启一次和数据库的会话,MyBatis会创建出一个SqlSession对象表示一次数据库会话。 在对数据库的一次会话中,我们有可能会反复地执行完全相同的查询语句,如果不采取一些措施的话,每一次查询都会查询一次数据库,而我们在极短的时间内做了 阅读全文
posted @ 2019-07-31 16:19 qxwang 阅读(52) 评论(0) 推荐(0)
摘要: 1 引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。 2 JDBC实现查询分析 我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个 阅读全文
posted @ 2019-07-31 16:19 qxwang 阅读(37) 评论(0) 推荐(0)
摘要: 8 MyBatis数据源与连接池 MyBatis数据源实现是在以下四个包中: MyBatis把数据源DataSource分为三种: UNPOOLED 不使用连接池的数据源 POOLED 使用连接池的数据源 JNDI 使用JNDI实现的数据源 即: 相应地,MyBatis内部分别定义了实现了java. 阅读全文
posted @ 2019-07-31 16:18 qxwang 阅读(24) 评论(0) 推荐(0)
摘要: jvm 总体梳理 jvm体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优 当然这些知识点在之前的文章中都有详细的介绍,这里只做主干的梳理 这里画了一个思维导图,将所有的知识点进行了陈列,因为图比较大可以点击右键下载了放大查看。 线程安全本质 线程安全本质是由于 阅读全文
posted @ 2019-07-31 16:18 qxwang 阅读(27) 评论(0) 推荐(0)
摘要: 前言 总结一下IO的相关,代码中都有相关注释 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 阅读全文
posted @ 2019-07-31 16:17 qxwang 阅读(49) 评论(0) 推荐(0)
摘要: 线程中断 thread的方法,线程中断涉及到三个方法,如下: void interrupt(): 中断线程 static boolean interrupted(): 测试当前线程是否已经中断 boolean isInterrupted(): 测试线程是否已经中断 1. interrupt()方法用 阅读全文
posted @ 2019-07-31 16:17 qxwang 阅读(120) 评论(0) 推荐(0)
摘要: 前言 从图中可以看出JAVA中的CAS操作都是通过sun包下Unsafe类实现,而Unsafe类中的方法都是native方法,由JVM本地实现,笔者为了弄清楚真正的实现原理,查看了openJDK7的源码,下面就稍作分析: Unsafe中对CAS的实现是C++写的,从上图可以看出最后调用的是Atomi 阅读全文
posted @ 2019-07-31 16:16 qxwang 阅读(57) 评论(0) 推荐(0)