- 博客(56)
- 资源 (12)
- 收藏
- 关注

原创 结合CAP理论分析ElasticSearch的分布式实现方式
简介首先引出本人对ElasticSearch分布式的特点;再者针对分布式系统CAP理论,来论证分析ElasticSearch如何实现分布式?另外分析ElasticSearch在CAP理论的实现中是如何在三取二中权衡的?最后回归到论点。一,ElasticSearch分布式的特点1.强一致性,ES保证每一次的数据的更新都更新都所有的节点。2.高可用,ES保证在某些节点/分片挂掉后仍不影响对外的...
2019-09-14 18:51:34
4082
6

原创 手写HashMap(JDK8)第一天
一,分析HashMap结构首先先看一下hashMap的结构图(从ImportNew上摘过来的图):JDK8对hashMap做了调整,使用数组+链表+红黑树结构。看几个重要的HashMap参数指标: //初始化容器容量,默认大小16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //最大容量,In...
2019-05-19 15:14:31
333

原创 java三年面试题(基础知识篇)不定期更新
java三年面试题(基础知识篇)1. java面向对象的三大特性?封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。代表实现:javaBean优点:隐藏内部细节,只通过规定的方法访问数据,保证安全性; 低耦合。缺点:不便与深度调试实现方法:访问修饰符(private,无修饰符,protected,public)访问...
2019-05-10 20:32:34
1268
转载 SpringBoot 动静分离打包
<build> <plugins> <!--定义项目的编译环境--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> .
2022-04-01 11:09:48
2474
原创 Oracle GoldenGate心跳表检测延迟
环境:Centos 7 虚拟机(1核、1G内存)* 2Oracle 11.2.0.2.0 * 2Oracle GoldenGate11.2.1.0.3源端IP:192.168.153.9 目标端IP:192.168.153.10一,源端数据库设置1.1,创建源端Oracle 测试账户SQL> create user goldengate identified by 123 default table...
2021-09-29 13:45:19
2919
原创 Oracle GoldenGate 安装步骤及问题整理
环境:Centos 8Oracle版本:19cOGG版本:Oracle GoldenGate 21.3安装步骤1.将文件拷贝到opt目录下2,unzip 191004_fbo_ggs_Linux_x64_shiphome.zip 解压文件3,chown -R oracle:oinstallfbo_ggs_Linux_x64_shiphome 将权限赋予oracle用户,因为root用户无法安装。4,使用静默方式安装./runInstaller -sile..
2021-09-22 17:21:17
1942
1
原创 linux登录无限循环,无法正常进入系统
1,Ctrl + Alt + F2 进入命令行模式;2,输入用户名密码登录;3,有错误提示,如下:-- XXX(你的登录用户名):/home/XXX: change directory failed: No such file or directory Logging in with home = "/"原来是没有用户目录,可能使用的的时候误删了。4,切换到root权限,su root5,创建/home/XXX6,修改目录权限7,将目录权限授权给XXX8,重启系统
2021-09-18 09:46:50
3322
1
原创 rlwrap安装找不到.configure
./configurebash: ./configure: 没有那个文件或目录autoconf安装软件包“autoconf”以提供命令“autoconf”? [N/y] y./configureconfigure: error: cannot find install-sh, install.sh, or shtool in tools "."/tools yum install automake autoconf libtoolautoreconf -vif./co.
2021-09-17 16:50:19
380
原创 Using join buffer(Block Nested Loop) 优化
最近在优化项目中的慢查询SQL,发现了一个Using Join Buffer 引起的慢查询,经过细致排查,终于解决了这个问题,将优化方式记录一下。1,原始SQL这是最开始的SQL,分页查询最开始的50条记录竟然话费了近2分钟的时间,这怎么能忍。2,原始SQL分析对原始SQL进行EXPLAIN分析,结果如图。发现eqtType和ps这两张表在Extra中出现Using join buffer(Block Nested Loop) 。Block Nested...
2021-09-06 17:02:08
8901
原创 踩坑-Docker 搭建zookeeper集群
踩坑-Docker 搭建zookeeper集群1,下载zookeeper镜像文件2,docker-compose安装zookeeper镜像3,docker-compose安装踩坑1,下载zookeeper镜像文件1、搜索zookeeper镜像 docker search zookeeper 2、拉取zookeeper镜像 docker pull zookeeper 2,docker-compose安装zookeeper镜像1,检查系统是否安装docker-compose,直接在命令行敲入d
2021-04-28 16:47:59
1189
原创 java三年面试题(Spring篇)不定期更新
java三年面试题(Spring篇)不定期更新1.什么是Spring?Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。2.Spring的优缺点?优点:轻量:Spring 是轻量的,基本的版本大约2MB。控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。面向切面的编程(AOP):S...
2019-05-13 15:57:20
597
原创 java三年面试题(数据库篇)不定期更新
java三年面试题(数据库篇)不定期更新1.什么是索引?索引的作用?索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。索引是针对表而建立的,它是由数据页面以外的索引页面组成的,每个索引页面中的行都会含有逻辑指针,以便加速检索物理数据。在数据库系统中建立索引主要有以下作用:(1)快速取数据;(2)保证数据记录的唯一性;(3)实现表与表之间的参照完整性;(4)在使用ORDER ...
2019-05-13 00:02:58
451
原创 MySQL数据库
MySQL数据库第1章 存储引擎第2章 索引第3章 存储过程与函数第4章 事务控制和锁定语句第5章 MySQL分区第6章 SQL优化第7章 锁第8章 MySQL体系结构第9章 备份还原第1章 存储引擎1.1 MySQL存储引擎概述插件式存储引擎是MySQL数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据、是否使用事务等。MySQL默认支持多种存储引擎...
2019-05-12 20:02:47
272
原创 java三年面试题(设计模式篇)不定期更新
java三年面试题(设计模式篇)不定期更新1. 什么是设计模式 ?设计模式不是软件工程的专属名词,实际上设计模式是从建筑学引申到软件工程的。建筑学中研究将一个庭院设计的更美观,形成了一些公认的规范和标准,称之为设计模式。软件工程将其引申到软件设计上,旨在设计出更加美观,可维护更强的软件。2.工厂模式和抽象模式有什么区别?这两种设计模式主要的区别在于产品,工厂模式是用来创建同一个产品的不同类...
2019-05-12 00:50:12
453
原创 JAVA三年面试题(Web篇)不定期更新
JAVA三年面试题(Web篇)1.什么是Servlet?Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。2.Servlet生命周期(1)加载和实例化当Servlet容器启动或客户端发送一个请求时,Servlet容器会查...
2019-05-11 23:17:30
2937
原创 java三年面试题(多线程篇)不定期更新
java三年面试题(多线程篇)1.进程和线程的区别?进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。一个进程至少包含一条线程。 进程拥有自己的内存空间。线程(Thread)是进程的一部分,线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位。所有线程共享进程的内存空间。2.创建线程的方法?...
2019-05-11 19:32:34
468
原创 java三年面试题(分布式篇)不定期更新
java三年面试题(分布式篇)1.什么是软件架构?软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。2.SOA架构和微服务架构的区别?SOA面向服务架构:是一种软件体系结构,应用程序的不同组件通过网络上的通信协议向其他组件提供服务。SOA使用WebService进行通信。微服务架构:从SOA架构发展而来,相比于SOA,服务的...
2019-05-11 16:33:45
2348
原创 git@github.com: Permission denied (publickey)
git@github.com: Permission denied (publickey).问题详情:git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.1. 设置Git的user name和emailgit config --global user.name...
2019-05-03 03:05:52
1669
原创 MySQL数据库
# MySQL数据库[第1章 存储引擎](#no1)[第2章 索引](#no2)[第3章 存储过程与函数](#no3)[第4章 事务控制和锁定语句](#no4)[第5章 MySQL分区](#no5) [第6章 SQL优化](#no6)[第7章 锁](#no7)[第8章 MySQL体系结构](#no8)[第9章 备份还原](#no9) --...
2019-05-01 22:19:50
233
原创 数据库原理
数据库原理第1章 数据库系统结构第2章 查询优化原则第3章 关系数据库规范化第4章 Oracle 11g的体系结构第5章 用户权限与安全第6章 数据库的安全保护第7章 Oracle模式对象的管理第1章 数据库系统结构从数据库管理系统的角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的体系结构。1. 数据库系统模式的概念模式(Schema)是数据库中全体数据的逻辑...
2019-05-01 15:24:24
2228
原创 Oracle数据库
Oracle数据库第1章 SQL基础第2章 PL/SQL第3章 游标第4章 视图第5章 存储过程第6章 触发器第7章 事务和锁第8章 其他第1章 SQL基础1.SQL种类1)数据定义语言(DDL)数据定义语言(Data Definition Language,DDL)是定义数据库中数据要如何存储的。DDL语言包括对数据库中对象的创建、修改、删除的操作,这些对象主要有数据...
2019-05-01 01:25:10
218
原创 24种设计模式(三)
24种设计模式第20章 解释器模式第21章 装饰模式第22章 责任链模式第23章 桥接模式第24章 访问者模式第20章 解释器模式(Interpreter)1.解释器模式的定义给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。这里的文法,简单点说就是我们俗称的“语法规则”。2. 解释器模式的结构和说明■ AbstractEx...
2019-04-30 06:13:41
558
原创 24种设计模式(二)
24种设计模式第1章 简单工厂第2章 外观模式第3章 适配器模式第4章 单例模式第5章 工厂方法模式第6章 抽象工厂模式第7章 生成器模式第8章 原型模式第9章 中介者模式第10章 代理模式第11章 观察者模式第12章 命令模式第13章 迭代器模式第14章 组合模式第15章 模版方法模式第16章 策略模式第17章 状态模式第18章 备忘录模式第19章 享元模式...
2019-04-30 04:32:21
554
原创 24种设计模式(一)
24种设计模式第1章 简单工厂第2章 外观模式第3章 适配器模式第4章 单例模式第5章 工厂方法模式第6章 抽象工厂模式第7章 生成器模式第8章 原型模式第9章 中介者模式第10章 代理模式第11章 观察者模式第12章 命令模式第13章 迭代器模式第14章 组合模式第15章 模版方法模式第16章 策略模式第17章 状态模式第18章 备忘录模式第19章 享元模式...
2019-04-30 02:00:32
7451
原创 高效并发(多线程JVM原理)
第四部分 程序编译与代码优化第10章 早期(编译期)优化第11章 晚期(运行期)优化第10章 早期(编译期)优化10.1 概述Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(其实叫“编译器的前端”更准确一些)把*.java文件转变成*.class文件的过程;也可能是指虚拟机的后端运行期编译器(JIT编译器,Just In Time Compile...
2019-04-29 02:15:26
498
原创 程序编译与代码优化
第四部分 程序编译与代码优化第10章 早期(编译期)优化第11章 晚期(运行期)优化第10章 早期(编译期)优化10.1 概述Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(其实叫“编译器的前端”更准确一些)把*.java文件转变成*.class文件的过程;也可能是指虚拟机的后端运行期编译器(JIT编译器,Just In Time Compile...
2019-04-29 01:16:11
1128
原创 虚拟机执行子系统
第三部分 虚拟机执行子系统第6章 类文件结构第7章 虚拟机类加载机制第8章 虚拟机字节码执行引擎第6章 类文件结构6.1 Class类文件的结构Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。当遇到需要占用8位字节以上空...
2019-04-28 23:58:31
494
原创 自动内存管理机制
第二部分 自动内存管理机制第2章 Java内存区域及对象揭秘第3章 垃圾收集器与内存分配策略第4章 虚拟机性能监控与故障处理工具第2章 Java内存区域及对象揭秘2.1 Java内存区域2.2 HotSpot虚拟机对象探秘2.2.1 对象的创建虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载...
2019-04-28 17:21:58
276
原创 Java并发编程应用(二)
三,Java并发容器和框架1.ConcurrentHashMap的实现原理与使用ConcurrentHashMap是线程安全且高效的HashMap。1.1为什么要使用ConcurrentHashMap?(1)线程不安全的HashMapHashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的nex...
2019-04-27 14:06:03
241
原创 java并发编程应用(一)
整理自《java并发编程的艺术》一,线程进程:操作系统分配资源的最小单元,一个进程包含多条进程。进程:操作系统调度的最小单元,也叫轻量级进程。一个进程可以创建多个线程,各个线程拥有各自的计数器,堆栈和局部变量等属性,并且能够访问共享的内存变量。线程优先级:setPriority(int);优先级1-10;线程状态:Daemon线程:是一种支持型线程,因为它主要被用作程序中后台调度...
2019-04-26 03:12:06
556
原创 java并发底层原理及JMM
整理自《java并发编程的艺术》一,java并发机制底层实现原理1.volatile “易变的”volatile 是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个县城修改一个共享变量时,另外一个线程能读到这个修改的值。如果volatile变量修饰符使用恰当的话,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的...
2019-04-25 16:09:53
488
原创 Spring Mvc源码架构
一,Spring MVC原理原理解读,此篇博客已叙述详细,在此引用二,Spring MVC架构以下内容整理或引自《看透SpringMVC:源代码分析与实践》 SpringMVC中Servlet一共有三个层次,分别是HttpServletBean、FrameworkServlet和DispatcherServlet。HttpServletBean直接继承自Java的HttpServlet,...
2019-04-23 23:51:13
446
原创 Servlet工作原理
一、Servlet工作原理当Context容器初始化状态设为init时,添加到Contex容器的Listener将会被调用。ContextConfig继承了LifecycleListener接口,它是在调用Tamcat.addWebapp被加入到StandardContext容器中的。ContextConfig类会负责整个Web应用的配置文件的解析工作。ContextConfig的ini...
2019-04-13 09:24:36
493
原创 Cookie 和 Session
一、CookieCookie属性项当前Cookie有两个版本:Version 0和Version 1。通过它们有两种设置响应头的标识,分别是“Set-Cookie”和“Set-Cookie2”。Cookie如何工作真正构建Cookie是在org.apache.catalina.connector. Response类中完成的,调用generateCookieString方法将Coo...
2019-04-13 09:23:54
170
原创 深入理解java IO
一、Java的I/O类库的基本架构Java的I/O操作类在包java.io下,大概有将近80个类,这些类大概可以分成如下四组。◎ 基于字节操作的I/O接口:InputStream和OutputStream。◎ 基于字符操作的I/O接口:Writer和Reader。◎ 基于磁盘操作的I/O接口:File。◎ 基于网络操作的I/O接口:Socket。基于字节的I/O操作接口基于字...
2019-04-13 09:22:48
291
原创 HTTP请求过程
一、HTTP协议解析请求头响应头二、DNS域名解析第1步,浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。第2步,如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。 windows:C:\Windows\System32\drivers\etc\hosts linux:/etc/...
2019-04-11 15:24:14
476
原创 Socket 深入理解
Socket 计算机网络基础数据交互过程各层主要协议TCP/IP接口套接字在TCP/IP网络环境中,可以使用套接字来建立网络连接,实现主机之间的数据传输。套接字编程接口的起源与发展在20世纪80年代早期,美国国防部高级研究计划署(Defense Advanced Research Projects Agency,ARPA)资助了加州大学伯克利分校开发并推广了一个包括TCP...
2019-04-11 15:23:33
538
Windchill管理员手册
2019-01-21
Arbortext Editor开发API
2018-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人