自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (3)
  • 收藏
  • 关注

原创 maven 疑难杂症

idea 中maven 管理项目时,其中的项目模块变成灰色了?

2019-10-12 10:39:25 179 1

原创 2019 个人亲身经历,面试分析

elasticsearch 分页的实现,比如从三个库中各抓去十条数据,怎么实现分页?库存回滚,库存已经扣减,支付失败,怎样恢复库存?对象创建时的内存分布,内存区域划分,内存管理,gc算法?hashtable 和 hashMap 的区别?maven如何配置,把项目打成 jar 运行?springboot 以 jar 启动时,怎样命令启动,运行不同的环境配置,比如开发和测试?...

2019-09-05 11:42:58 301

翻译 Zookeeper面试详解

一. 核心工作原理,ZAB协议?ZAB协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议(paxos算法的一种实现)。ZAB协议包括两种基本的模式:崩溃恢复和消息广播。 当整个zookeeper集群刚刚启动或者Leader服务器宕机、重启或者网络故障导致不存在过半的服务器与Leader服务器保持正常通信时,所有进程(服务器)进入崩溃恢复模式,首先选举产生...

2019-09-04 00:01:15 401

原创 【NIO】(3) — Selector

源码翻译 package java.nio.channels;import java.io.Closeable;import java.io.IOException;import java.nio.channels.spi.SelectorProvider;import java.util.Set;/** * 【1】可选择信道对象的多路复用器。 * 可以通过调...

2019-08-26 13:09:24 130

原创 手写 RPC (二) 集成 Spring

【诗90:10】我们一生的年日是七十岁,若是强壮可到八十岁;但其中所矜夸的不过是劳苦愁烦,转眼成空,我们便如飞而去。背景在第一篇「手写RPC(一)基于BIO」我们已经完成了 RPC 的实现,那么服务的发布和调用怎样交给 spring 管理呢?这正是下面要探讨完成的事情

2019-08-24 16:27:07 275 1

原创 手写 RPC(一)基于 BIO,深入理解远程调用原理

【诗119:130】你的言语一解开,就发出亮光,使愚人通达。目录rpc-server-all(服务端实现) rpc-server-api rpc-server-providerrpc-client...

2019-08-23 15:35:11 281 2

原创 【NIO】(2) — Channel

【箴3:3】不可使慈爱、诚实离开你,要系在你颈项上,刻在你心版上。 应用 在 nio 中数据基本都是通过 Channel 操作 Buffer 实现的,不会直接将数据写入到 Channel。Channel---read---> Buffer ...

2019-08-19 12:04:58 284

原创 【NIO】(1) — Buffer

目录源码翻译重要属性重要方法实操 demo 源码翻译 package java.nio;import jdk.internal.HotSpotIntrinsicCandidate;import jdk.internal.access.JavaNioAccess;import jdk.internal.access.SharedSecrets;import ...

2019-08-16 11:01:59 170

原创 【SpringBoot】- starter 机制 -- @SpringBootApplication

意义 springboot框架能够快速高效的构建一个基于spirng框架以及spring生态 体系的应用解决方案。它是对“约定优于配置”这个理念下的一个最佳实践。因此它是一个服务于框架的框架,服务的范围是简化配置文件。·约定优于配置的体现·maven的目录结构 a)默认有resources文件夹存放配置文件 ...

2019-08-12 17:38:56 868

原创 持续集成【4】 -> Docker -- jenkins + gitlab + tomcat -> 实现持续部署

在 jenkins 容器中安装maven工具 · 以 root 用户进入 jenkins 容器docker exec -it -u root myjenkins /bin/bash· 容器中如果没有 yum,vim....需要安装命令# 安装 apt-get apt-get update#安装 wgetapt-get install wget# 安装 vim...

2019-08-05 17:34:23 229

原创 大BUG,干掉一个是一个

SpringMVC Maven

2019-08-05 10:26:16 114

原创 bug - maven

maven install web项目时遇到 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project good: Error assembling WAR: webxml attribute is required (or pr...

2019-08-05 10:22:57 91

原创 持续集成【3】 -> Docker -- jenkins + gitlab

前言 持续集成【1】-> Docker -- Gitlab已经搭建好 gitlab,添加了个人的公匙,并创建了一个demo持续集成【2】- Docker -> Jenkins已经搭建好 Jenkins 安装 Gitlab 插件 · Jenkins ->Manage Jenkins ->Manage Jenkins· 如果出现如下连接超时...

2019-07-30 17:55:31 150

原创 持续集成【2】-> Docker -- Jenkins

环境 mac + docker 运行 jenkins 容器 · 在主机递归创建文件夹并赋予读写权限 ->挂载jenkins运行所需文件$ cd ~$ mkdir myDocker/jenkins$ chmod 777 myDocker/jenkins· 拉取最新的 jenkins 镜像,这里直接拉取 jenkins;也可去 「jenkins官网」查找镜像...

2019-07-25 22:56:13 138

原创 【 SpringBoot 】- [SpringApplication] -- run(启动)

前言 前一篇文章【 SpringBoot 】- [SpringApplication] -- 初始化 ,已经把SpringApplication 创建完成,接下来本文将介绍启动过程:即 run() 方法的流程。/*** SpringApplication.java*/ public static ConfigurableApplicationContext run...

2019-07-24 15:47:04 151

原创 【 SpringBoot 】- [SpringApplication] -- 初始化

·康忙,先跟着下图走一遍静静心... 创建SpringBoot项目 ->main 启动 @SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplica...

2019-07-23 16:40:50 143

原创 Kafka面试集锦

kafaka架构 ·Producer:生产者将消息发布到制定的主题中,默认使用简单的负载均衡机制选择分区,如果需要可以通过特定的分区函数选择分区,制定发布到哪个分区·Broker:集群汇中的一台或多台服务器统称为broker·consumer:负责消费主题中的数据,消费时由Consumer自己来维护会话产生的数据,实际上每个consumer唯一需要维护的数据是消息在日志中的位置,也...

2019-07-14 16:42:42 145

原创 持续集成【1】-> Docker -- Gitlab

拉取gitlab镜像 # gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本$ docker pull gitlab/gitlab-ce 在宿主机创建挂载文件目录 · linux:在宿主机器创建存储gitlab 相关文件的文件夹# 切换root用户$ su root# 创建文件夹$ mkdir /myDocker# ...

2019-07-12 21:37:12 144

原创 Dubbo面试分析

dubbo 提供了几种均衡策略? 废话不多说,首先概览官方文档:Dubbo「负载均衡」;UML图如下 浏览了许多,还是直接上官网的负载均衡源码详解。 dubbo各通信协议对比? Dubbo 缺省协议采用单一长连接和 NIO 异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。 RMI 协议采用 JDK 标准的java.rm...

2019-07-03 19:01:15 188

原创 bug - SpringMVC

1.springmvc项目成功启动,但是访问controller却报404?首先查看访问路径中的项目名称是否正确:即项目在tomcat中部署的路径;然后查看,访问路径与实际代码中controller中RequestMapping的配置路径是否一致!在上述都正常的情况下,我在这里遇到的坑如下(简直坑死个人):在这里我的springMVC的配置文件:spring-mvc.xml和spri...

2019-06-27 16:49:45 112

原创 序列化和反序列化

一. 序列化的作用?实现了Java 对象的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里)或者db中。 利用序列化实现远程通信,即在网络上传送对象的字节序列。二. 概念?序列化是把对象的状态信息转化为可存储或传输的形式过程,也就是把对象转化为字节序列的过程称为对象的序列化。反序列化是序列化的逆向过程,把字节数组反序列化为对象,把字节序列恢复为对象的过程成为对象...

2019-06-24 18:08:09 93

原创 线程池面试分析

一. 线程池的作用? 降低创建线程和销毁线程的性能开销 提高响应速度,当有新任务需要执行是不需要等待线程创建就可以立马执行 合理的设置线程池大小可以避免因为线程数超过硬件资源瓶颈带来的问题二.有界和无界队列?有界队列:就是有固定大小的队列。比如设定了固定大小的ArrayBlockingQueue,LinkedBlockingQueue,又或者大小为 0...

2019-06-21 20:15:07 765

原创 MyBatis面试分析

一.resultType(属性)和resultMap(标签引用)的区别?collection和association的区别?Statement和PreparedStatement的区别? #{}和${}的区别是什么? resultType不支持自定义返回结果,会将查询到的结果通过到type中java对象的同名的属性,对象中...

2019-06-20 15:46:13 85

翻译 Redis面试分析

一. 缓存穿透、缓存击穿、缓存雪崩?1)缓存穿透缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。解决方案: 接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截; 从缓存取不到的数据,在数据库中也没有取到,这时也...

2019-06-19 14:17:44 315

原创 设计模式之设计人生

1.在Java中,什么时候用重载,什么时候用重写?在设计过程中两者的运用以及对设计原则的掌握。重载是多态的一种实现和形式,在Java中主要是从代码应用层及用户调用者的角度来解决问题;也是追寻开闭原则。例:在spring中的getBean()方法,名字相同,意味着它的功能是相同的,但getBean有很多场景,可以传入BeanName,也可以传入BeanClass等,因为用户在使用时根据...

2019-05-20 15:32:00 310

原创 单例模式

单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并且提供一个全局访问点。属于创建型模式。在 J2EE 标准中,ServletContext、 ServletContextConfig 等;在 Spring 框架应用中 ApplicationContext;数据库的连接 池也都是单例形式。一.饿汉式单例饿汉式单例是在类加载的时候就立即初始化,...

2019-05-09 16:02:20 68

原创 抽象工厂

抽象工厂模式(Abastract Factory Pattern)是指提供一个创建一系列相关或相互依赖对象的接口,无需指定他们具体的类。客户端(应用层)不依赖于产品类实例如何被创建、实现等细节,强调的是一系列相关的产品对象(属于同一产品族)一起使用创建对 象需要大量重复的代码。需要提供一个产品类的库,所有的产品以同样的接口出现,从 而使客户端不依赖于具体实现。相当于在工厂方法里新增...

2019-05-09 14:56:02 79

原创 简单工厂与工厂方法

一.简单工厂简单工厂模式(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类 的实例,但它不属于 GOF,23 种设计模式。简单工厂适用 于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创 建对象的逻辑不需要关心。简单工厂也有它的缺点:工厂类的职责相对过重,不易于扩展过于复杂的产品结构上代码,先贴产品packa...

2019-05-09 14:29:35 144

原创 IOC初始化最简易的源码跟踪时序

一.工厂模式:核心容器(顶级接口)BeanFactory二.高级容器ApplicationContext它除了能够提供 IOC 容器的基本功能外,还为用户提供了以下的附加服务。从 ApplicationContext 接口的实现,我们看出其特点:支持信息源,可以实现国际化。(实现 MessageSource 接口) 访问资源。(实现 ResourcePatternResolver...

2019-05-08 16:33:08 115

原创 skyworking单体效果图

大盘根据时间筛选出的调用记录其中一条请求成功效果图请求失败效果图应用监控点击查看服务调用树

2019-04-29 15:22:16 569

翻译 Java NIO

一.IO与NIOI/O即输入输出,是计算机与外界世界的一个借口。IO操作的实际主题是操作系统。在java编程中,一般使用流的方式来处理IO,所有的IO都被视作是单个字节的移动,通过stream对象一次移动一个字节。流IO负责把对象转换为字节,然后再转换为对象。面向流 单向的 面向缓冲区:通道可以是单双向的 阻塞IOJava NIO (New IO,Non-Blocking IO)...

2019-02-13 19:57:29 144

翻译 mycat之schema.xml

 Schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、表、分片规则、DataNode以及DataSource。 &lt;?xml version="1.0"?&gt;&lt;!DOCTYPE mycat:schema SYSTEM "schema.dtd"&gt;&lt;mycat:schema xmlns:mycat="http://io.mycat/...

2019-01-19 19:23:00 342

转载 mycat之server.xml

  server.xml 包含mycat的系统配置信息,它有两个标签,分别是user和system,掌握system标签的各项配置属性是mycat调优的关键。 &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;!-- - - Licensed under the Apache License, Version 2.0 (the "Licen...

2019-01-19 19:22:45 156

原创 linux

软件安装目录/usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32。/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。/opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不...

2019-01-16 21:01:45 83

转载 mycat之rule.xml

rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule和function。tableRule标签这个标签定义表规则。定义的表规则,在schema.xml:&lt;tableRu...

2019-01-16 00:20:50 375

原创 jstat

jstat -gc 21711 250 4  vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。interval是采样时间间隔。count是采样数目。比如下面输出的是GC信息,采样时间间隔为250ms,采样数为4:root@ubuntu:/# jstat -gc 21711 250 4 S0C    S1C    S0U    S1U      EC   ...

2019-01-15 11:06:25 171

翻译 jmap与jhat

 jmap(Memory Map)和jhat(Java Heap Analysis Tool)    jmap用来查看堆内存使用状况,一般结合jhat使用。1.  jmap -permstat -J-64 pid@remote-hostname-or-ip①-J-64    64位JVM②@remote-hostname-or-ip   远程服务地址打印进程的类加载器和类加...

2019-01-15 10:37:01 671

原创 分布式数据库

一.数据分片1.水平切分按照某个字段的某种规则分散到多个节点库,每个节点库包含一部分数据.从分布式整体来看他们是一个整体的表.优点:单库单表保持一定的量级,提高性能. 切分表结构相同,应用层改动少,只需要增加路由规则即可. 提高了系统的稳定性和负载能力.2.垂直切分按照业务将表进行分类并分布到不同的节点上.拆分简单明了,应用模块清晰,明确,容易整合,但是某个表的数据...

2019-01-15 01:18:26 219

转载 Redis_2018面试

1、什么是Redis?答:Redis全称为:Remote Dictionary Server(远程数据服务),是一个基于内存的高性能key-value数据库。2、Redis的数据类型?答:Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。我们实际项目中比较常用的是string,hash...

2018-10-28 22:03:31 106

原创 jstack使用

1.查看进程pidjpsjps -ljps -lmps -ef|grep java2.查看高占用cpu的线程idtop -Hp pid3.把线程的pid转换成16进制数printf "%x\n" pid4.用jstack查看线程栈jstack 进程pid grep| 线程pid...

2018-09-03 18:06:51 277

axis2开发webservice

axi2开发webservice所需资源,以及eclipse集成axis2所需的插件;加详细教程

2018-05-03

移动端遮罩层js

用于移动端调用后台时,重复提交问题, 写出加载圈圈以及遮罩层

2017-10-24

alibaba开发手册

本手册的愿景是码出高效, 码出质量。 现代软件架构都需要协同开发完成,高效 协作即降低协同成本, 提升沟通效率, 所谓无规矩不成方圆,无规范不能协作。众所 周知,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全。试想如 果没有限速,没有红绿灯,谁还敢上路行驶。对软件来说,适当的规范和标准绝不是 消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式 一起做事,提升协作效率。 代码的字里行间流淌的是软件生命中的血液, 质量的提升 是尽可能少踩坑,杜绝踩重复的坑, 切实提升质量意识。

2017-09-25

空空如也

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

TA关注的人

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