自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

keep_trying的专栏

千万不要要最能吃苦的年纪选择安逸,与君共勉!

  • 博客(100)
  • 资源 (3)
  • 收藏
  • 关注

原创 MQ(二)为什么使用消息系统

解耦  在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。冗余  有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造成丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多...

2018-04-05 14:46:20 591

原创 MQ(一)kafka简介

摘要一、kfaka简介1.1、Kafka创建背景1.2、Kafka设计目标1.3、新版本简介二、Kafka适合什么样的场景?三、Kafka四个核心API四、Kafka相关概念:4.1、Topic 和 日志4.2、分布式4.3、生产者4.4、消费者五、Kafka保证六、Kafka作为消息系统七、Kafka 作为存储系统八、Kafka用做流处理九、批处理十...

2018-04-05 11:52:22 1318

原创 RPC框架(八)dubbo源码分析--dubbo调用过程分析

一、概述二、消费端触发请求三、消费端请求编码四、提供端请求解码五、提供端处理请求六、提供端响应结果编码七、消费端响应结果解码八、总结一、概述消费端调用远程服务接口时,使用上和调用普通的java接口是没有任何区别,但是服务消费者和提供者是跨JVM和主机的,客户端如何封装请求让服务端理解请求并且解析服务端返回的接口调用结果,服务端如何解析客户端的请求并且向客户端返...

2018-03-08 15:47:41 2067 1

原创 RPC框架(七)dubbo源码分析--dubbo服务消费者初始化

一、概述二、监听注册中心三、连接服务提供端四、创建消费端服务代理五、总结一、概述在分析标签解析的时候知道框架会把dubbo:reference解析成一个ReferenceBean,它是一个FactoryBean,消费者的初始化在它的init方法中执行,这个方法在两种情况下会被调用: 消费者设置了立即初始化(init属性设置成true),那么bean加载时会立刻...

2018-03-07 16:08:59 564

原创 RPC框架(六)dubbo源码分析--dubbo服务提供者初始化

一、概述二、选用服务端口三、生成URL对象四、生成本地服务代理五、生成远程服务代理六、启动服务监听七、服务注册到注册中心八、dubbo服务初始化与暴露服务总结一、概述dubbo服务提供者由dubbo:service来定义,从前面可以看到,Spring把dubbo:service解析成一个ServiceBean,ServiceBean实现了Application...

2018-03-06 17:40:32 861

原创 RPC框架(五)dubbo源码分析--Spring解析dubbo标签

一、Spring 可扩展 Schema二、Spring读取dubbo标签一、Spring 可扩展 Schema在 dubbo-demo-provider 项目中,我们在如下文件中配置服务提供方:文件内容为:<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="htt...

2018-03-06 14:16:42 934

原创 RPC框架(四)dubbo源码分析--dubbo基础预热

一、前言二dubbo架构三dubbo特性3.1、连通性3.2、健状性3.3、伸缩性四、zookeeper 注册中心流程五、dubbo框架深入设计六、动态编程:Javassist七、用到的设计模式7.1、工厂模式7.2、装饰器模式7.3、观察者模式7.4、动态代理模式八、SPI和扩展点8.1、JAVA自带的SPI8.2、dubbo框架做的修改8.3、Pr...

2018-03-05 18:00:40 1069

原创 RPC框架(三)dubbo管理平台搭建

一、前言二、自己编译生成war包三、部署一、前言dubbo的使用,其实只需要有注册中心,消费者,提供者这三个就可以使用了,但是并不能看到有哪些消费者和提供者,为了更好的调试,发现问题,解决问题,因此引入dubbo-admin。通过dubbo-admin可以对消费者和提供者进行管理。二、自己编译生成war包网上找了好多,发现没有一个可以的,主要是最新版本里没有...

2018-03-02 18:44:24 475

原创 RPC框架(二)dubbo简介

一、dubbo简介二、dubbo示例2.1、准备示例工程三、dubbo provide3.1、项目结构3.2、pom.xml文件配置3.3、配置文件3.4、服务提供四、dubbo consumer4.1、项目结构4.2、pom.xml文件配置4.3、配置文件4.4、服务实现4.5、服务调用五、dubbo案例运行5.1、运行zookeeper5.2、运...

2018-03-02 18:09:53 1078

原创 zookeeper(三)windows zookeeper单机伪集群

一、安装环境1.1、系统环境1.2、Java环境二、集群模式(伪)2.1、下载Zookeeper安装包2.2、配置文件zoo.cfg2.3、创建myid文件三、创建启动zk集群脚本四、验证集群是否成功一、安装环境1.1、系统环境zk对不同系统环境支持都很好,在绝大多数主流的操作系统上都能够正常运行,如:GNU/linux、Sun Solari...

2018-03-02 16:18:03 491

原创 深入分析 Java I/O (九)线程/进程模型Reactor和Proactor

一、标准定义二、通俗理解三、Reactor模式结构四、Proactor模式结构五、两者的区别一、标准定义两种I/O多路复用模式:Reactor和Proactor,一般地I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Hand...

2018-03-01 16:49:01 415

原创 RPC框架(一)RPC简介

一、概述二、RPC2.1、RPC定义2.2、RPC主要组成部分三、影响RPC框架性能的因素四、工业界的 RPC 框架一览4.1、国内4.2、国外五、如何选择RPC框架一、概述随着公司规模的扩大,以及业务量的激增,单体应用逐步演化为服务/微服务的架构模式, 服务之间的调用大多采用rpc的方式调用,或者消息队列的方式进行解耦。几乎每个大厂都会创建自己的rp...

2018-03-01 15:12:46 76616 5

原创 zookeeper(二)常见问题汇总

一、为什么zookeeper要部署基数台服务器?二、zookeeper脑裂(Split-Brain)问题2.1、什么是脑裂?2.2、什么原因导致的?2.2、zookeeper是如何解决的?一、为什么zookeeper要部署基数台服务器?**所谓的zookeeper容错是指,当宕掉几个zookeeper服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的服务数必...

2018-02-28 17:28:54 9605 3

原创 zookeeper(一)简介&工作原理

一、ZooKeeper 是什么二、ZooKeeper 基本概念2.1、设计目的2.2、ZooKeeper角色2.3、ZooKeeper 架构模型2.4、ZooKeeper 数据模型2.5、Watcher——ZNode 数据变化通知三、ZooKeeper的工作原理3.1、选主流程3.2、同步流程3.3、工作流程3.3.1、Leader工作流程3.3.2、Followe...

2018-02-28 14:05:45 840

原创 深入分析 Java I/O (七)IO模型一基础知识

一IO与CPU时间的比较二用户空间与内核空间三缓冲区操作四发散汇聚五虚拟内存六内存页面调度七文件IO内存映射文件文件锁定八流IO一、I/O与CPU时间的比较I/O 操作比在内存中进行数据处理任务所需时间更长,差别要以数量级计。许多程序员一门心思扑在他们的对象如何加工数据上,对影响数据读取和存储的环境问题却不屑一顾。表 1-1 所示为对数据单元进行磁...

2018-02-24 17:15:15 677

原创 深入分析 Java I/O (六)Netty高级知识

一 Netty高性能之道传统RPC调用性能问题问题1网络传输方式问题问题2序列化方式问题问题3线程模型问题二高性能的三个主题三Netty高性能之道异步非阻塞通信零拷贝内存池高效的Reactor线程模型Reactor单线程模型Reactor多线程模型主从Reactor多线程模型无锁化的串行设计理念高效的并发编程高性能的序列化框架灵活的TCP参数配置能...

2018-02-13 17:02:59 1212

原创 深入分析 Java I/O (五)Netty基础简介

一JAVA NIO AIO的不足之处二Netty介绍三代码示例主要代码讲解四Netty的重要慨念Netty线程机制ByteBufChannelChannelPipeline和ChannelHandler责任链和适配器的应用ChannelInboundHandler类举例ChannelOutboundHandler类举例五Channel的生命周期六Netty...

2018-02-11 13:56:39 904

原创 深入分析 Java I/O (四)AIO

一异步IO模型二JAVA AIO框架简析代码示例要点讲解一、异步IO模型异步IO则采用“订阅-通知”模式:即应用程序向操作系统注册IO监听,然后继续做自己的事情。当操作系统发生IO事件,并且准备好数据后,在主动通知应用程序,触发相应的函数和同步IO一样,异步IO也是由操作系统进行支持的。微软的windows系统提供了一种异步IO技术:IOCP(I/O C...

2018-02-09 17:34:47 6285

原创 深入分析 Java I/O (三)NIO

一多路复用IO模型场景描述多路复用IO实现方式二NIOChannelBufferSelector三JAVA NIO 框架简要设计分析代码示例四多路复用IO的优缺点一、多路复用IO模型场景描述一个餐厅同时有100位客人到店,当然到店后第一件要做的事情就是点菜。但是问题来了,餐厅老板为了节约人力成本目前只有一位大堂服务员拿着唯一的一本菜单等...

2018-02-09 15:16:21 768 1

原创 深入分析 Java I/O (二)BIO

一BIO编程最原始BIO存在的问题一请求一线程BIO代码演示存在的问题伪异步IO编程代码演示二服务器端的执行效果三阻塞的问题根源一BIO编程最原始BIO网络编程的基本模型是C/S模型,即两个进程间的通信。服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接...

2018-02-07 18:54:15 660

原创 深入分析 Java I/O (一)概述

一Java 的 IO 类库基于字节的 IO 操作接口基于字符的 IO 操作接口字节与字符的转化接口二磁盘 IO 工作机制三Java Socket 的工作机制建立通信链路数据传输四NIO 的工作方式BIO 带来的挑战NIO 的工作机制Buffer 的工作方式五IO 调优磁盘 IO 优化性能检测提升 IO 性能网络 IO 优化同步与异步阻塞与非阻...

2018-02-06 17:55:44 1247 1

原创 数据结构与算法(六)树&二叉树

一树的相关概念二二叉搜索树查找插入遍历查找最值删除节点三二叉树遍历示例我们知道,有序数组可以利用二分查找法快速的查找特定的值,时间复杂度为O(log2N),但是插入数据时很慢,时间复杂度为O(N);链表的插入和删除速度都很快,时间复杂度为O(1),但是查找特定值很慢,时间复杂度为O(N)。那么,有没有一种数据结构既能像有序数组那样快速的查找数据,又能像链表那样快速的插

2018-01-29 19:45:28 432

原创 数据结构与算法(五)链表

一 单向链表二 双向链表三 循环链表谈到链表之前,在说一下线性表。线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。顺序存储结构就是两个相邻的元素在内存中也是相邻的。优点是查询的时间复杂度为O(1),通过首地址

2018-01-28 19:14:35 220

原创 数据结构与算法(四)队列

一队列定义二 假上溢三 队列的顺序存储四队列的应用一、队列定义队列(Queue)也是一种运算受限的线性表,它的运算限制与栈不同,是两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端称为队头 (Front),队列的操作原则是先进先出的,所以队列又称作FIFO表(First In First

2018-01-28 19:10:20 300

原创 数据结构与算法(三)堆

一定义二创建及排序一、定义堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。 其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。 举例来说,对于n个元素的序列{R0, R1, … , Rn}当且仅当满足下列关系之一时,称之为堆: (1) Ri (2) Ri >= R2i+1 且 Ri >= R2i+

2018-01-28 19:00:02 237

原创 数据结构与算法(二)栈

一栈的定义二栈的顺序存储三栈的链式存储四 栈的应用一、栈的定义栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示:结论:后进先出(Last In First Out),简称为LIFO线性表。 栈的基本运算有六种:构造空栈:InitStack(S)、判栈空: StackEmpty(S)、判栈满: StackFull

2018-01-28 17:59:31 555

原创 数据结构与算法(一)线性表

一定义二特征三数组实现线性表四链表实现线性表一、定义线性表:n个数据元素的有序集合。线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的

2018-01-28 14:29:14 325

原创 Java与设计模式(二十八)行为型--命令模式

一概述二解决的问题三模式中的角色四模式解读五JDK涉及到的设计模式六模式总结优点缺点适用场景一、概述命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。二、解决的问题用于“行为请求者”与

2018-01-26 19:32:11 188

原创 Java与设计模式(二十七)行为型--责任链模式

一概述二解决的问题三模式中的角色四模式解读五JDK涉及到的设计模式六模式总结优点缺点适用场景一、概述责任链模式避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。二、解决的问题如果有多个对象都有可能接受请求,可以避免请求发送者与接收者耦合在一起。三、模式中的角

2018-01-26 18:45:48 218

原创 Java与设计模式(二十六)行为型--迭代器模式

一概述二 解决的问题三模式中的角色四模式解读五JDK涉及到的设计模式六模式总结优点缺点适用场景一、概述迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。二、 解决的问题遍历整个整合对象三、模式中的角色1、抽象迭代器(Iterator):定义出遍历元素所需的接口。2、具体迭代器(ConcreteIter

2018-01-26 17:30:03 197

原创 Java与设计模式(二十五)行为型--观察者模式

一概述二解决的问题三模式中的角色四模式解读五JDK涉及到的设计模式六模式总结优点缺点适用场景当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式一、概述有时被称作发布/订阅模式,观察者模式定义了对象之间的一对多的依赖关系,这样一来,当一个对象改变状态时,它的

2018-01-26 16:50:54 199

原创 Java与设计模式(二十四)行为型--模板模式

一定义二模式中的角色三模式解读四JDK涉及到的设计模式五模式总结优点缺点适用场景在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。一、定义定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以

2018-01-25 21:15:52 178

原创 Java与设计模式(二十三)行为型--策略模式

一定义二解决的问题三模式中的角色四模式解读五JDK涉及到的设计模式六模式总结优点缺点适用场景在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。

2018-01-24 19:07:13 161

原创 Java与设计模式(二十二)结构型--代理模式

一定义二解决的问题三模式中的角色四模式解读五JDK涉及到的设计模式六模式总结与其他模式比较优点缺点适用场景在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。一、定义为其他对象提供一种代理以控制对这个对象的访问。二、解决的问题在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象

2018-01-23 18:05:55 155

原创 Java与设计模式(二十一)结构型--享元模式

一定义二解决的问题三模式中的角色四模式解读五JDK涉及到的设计模式六模式总结优缺点适用场景享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。一、定义运用共享技术有效地支持大量细粒度的对象。二、解决的问题在有大

2018-01-23 16:35:27 173

原创 Java与设计模式(二十)结构型--外观模式

一定义二解决的问题三模式中的角色四模式解读五模式总结优点缺点适用场景外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。一、定义提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易访问。二

2018-01-23 16:00:32 183

原创 Java与设计模式(十九)结构型--装饰器模式

一定义二解决的问题三模式中的角色四装饰模式的类图五JDK涉及到的设计模式六装饰模式总结优点缺点适用场景一、定义动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。

2018-01-23 15:08:09 231

原创 Java与设计模式(十八)结构型--组合模式

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。

2018-01-23 13:54:03 181

原创 Java与设计模式(十七)结构型--过滤器模式

过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。

2018-01-23 13:50:09 191

原创 Java与设计模式(十六)结构型--桥接模式

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。

2018-01-23 13:48:09 152

在虚拟机中用u盘安装系统

快照功能 虚拟机中提供的快照功能,可能将系统还原到快照点上。 在虚拟机中用u盘安装系统

2013-09-17

java开发利器myeclipse全面详解

myeclipse 全面详解,真的不错,很适合初学者,讲的也很全面。

2013-09-17

oracle优化

总结的很全面的oracle优化。值得你拥有。

2013-09-17

空空如也

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

TA关注的人

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