上一页 1 2 3 4 5 6 7 ··· 11 下一页

2019年9月30日

摘要: Eureka 系列(03)Spring Cloud 自动装配原理 [TOC] 0. "Spring Cloud 系列目录 Eureka 篇" 本文主要是分析 Spring Cloud 是如何整合 Eureka 的,但不会具体分析 Eureka 的源码,之后的文章会对 Eureka 的源码做一个比较具 阅读全文
posted @ 2019-09-30 08:44 binarylei 阅读(1604) 评论(0) 推荐(0) 编辑

2019年9月29日

摘要: Eureka 系列(02)Eureka 一致性协议 "Eureka" 是由 Netflix 基于 AP 模型的服务发现中间件,包括服务发现服务器和客户端的。相关文档推荐:一是 "Spring Cloud Eureka 官网" ,二是 "Eureka源码解析" 。 本系列源码分析基于 spring c 阅读全文
posted @ 2019-09-29 07:49 binarylei 阅读(7202) 评论(0) 推荐(0) 编辑
摘要: Eureka 系列(01)最简使用姿态 "Eureka" 是由 Netflix 公司的服务发现中间件,包括服务发现服务器和客户端的。 "Spring Cloud Eureka 官网文档" [TOC] 0. "Spring Cloud 系列目录 Eureka 篇" 1. 服务发现与发现 1.1 服务发 阅读全文
posted @ 2019-09-29 07:46 binarylei 阅读(832) 评论(0) 推荐(0) 编辑

2019年9月26日

摘要: Feign 系列(05)Spring Cloud OpenFeign 源码解析 [TOC] __Spring Cloud 系列目录()__ 在 "上一篇" 文章中我们分析 Feign 参数解析的整个流程,Feign 原生已经支持 Feign、JAX RS 1/2 声明式规范,本文着重关注 Sprin 阅读全文
posted @ 2019-09-26 22:25 binarylei 阅读(1856) 评论(0) 推荐(2) 编辑

2019年9月24日

摘要: Feign 系列(04)Contract 源码解析 [TOC] __Spring Cloud 系列目录()__ 在 "上一篇" 文章中我们大致分析了一下 的工作原理,那 到底是如何适配 Feign、JAX RS 1/2 的 REST 声明式注解,将方法的参数解析为 Http 的请求行、请求头、请求体 阅读全文
posted @ 2019-09-24 06:14 binarylei 阅读(1538) 评论(0) 推荐(0) 编辑
摘要: Feign 系列(01)最简使用姿态 [TOC] __Spring Cloud 系列目录()__ 更多使用案例见 "Feign Github 官网" 1. 引入 maven 依赖 2. 基本用法 __总结:__ 实际上是创建了一个 GitHub 的动态代理。 3. Feign 声明式注解 Feign 阅读全文
posted @ 2019-09-24 06:09 binarylei 阅读(1112) 评论(0) 推荐(0) 编辑

2019年9月21日

摘要: Spring Cloud [TOC] 相关文档 1. Spring Cloud 官网: 2. Spring Cloud 中文文档: 3. Spring Cloud 翟永超: Eureka "Eureka" 是由 Netflix 基于 AP 模型的服务发现中间件,包括服务发现服务器和客户端的。相关文档 阅读全文
posted @ 2019-09-21 17:51 binarylei 阅读(1536) 评论(0) 推荐(0) 编辑
摘要: Feign 系列(03)Feign 工作原理 [TOC] __Spring Cloud 系列目录()__ 1. Feign 是如何设计的 首先回顾一下 的基本用法: __总结:__ 使用时分成两步:一是生成 Feign 的动态代理;二是 Feign 执行。 图1:Feign 的整体设计 __总结:_ 阅读全文
posted @ 2019-09-21 14:23 binarylei 阅读(8017) 评论(0) 推荐(5) 编辑
摘要: Feign 系列(02)Why Feign [toc] 1. 什么是 Feign 的英文表意为“假装,伪装,变形”, 是一个 Http 请求调用的轻量级框架,可以以 Java 接口注解的方式调用 Http 请求,而不用像 Java 中通过封装 HTTP 请求报文的方式直接调用。 通过处理注解,将请求 阅读全文
posted @ 2019-09-21 09:47 binarylei 阅读(858) 评论(0) 推荐(0) 编辑

2019年9月1日

摘要: Spring Cloud Alibaba Nacos 目录 学习资料 1. "Nacos 官网(https://nacos.io/zh cn/docs/what is nacos.html)" 2. "Nacos 程序猿DD(http://blog.didispace.com/tags/Nacos/ 阅读全文
posted @ 2019-09-01 10:46 binarylei 阅读(498) 评论(0) 推荐(0) 编辑

2019年7月7日

摘要: NIO 源码分析(05) Channel 源码分析 [toc] __Netty 系列目录()__ 一、Channel 类图 __功能说明:__ 提供了 Channel 响应 thread.interrupt(),支持中断操作,最重要的两个方法是 begin 和 end。 提供了 Channel 注册 阅读全文
posted @ 2019-07-07 18:21 binarylei 阅读(799) 评论(0) 推荐(0) 编辑
摘要: NIO 源码分析(04) 从 SelectorProvider 看 JDK SPI 机制 [toc] __Netty 系列目录()__ SelectorProvider 定义了创建 Selector、ServerSocketChannel、SocketChannel 等方法,采用 JDK 的 Ser 阅读全文
posted @ 2019-07-07 18:13 binarylei 阅读(1534) 评论(0) 推荐(0) 编辑
摘要: NIO 源码分析(03) 从 BIO 到 NIO [toc] __Netty 系列目录()__ 一、NIO 三大组件 Channels、Buffers、Selectors 1.1 Channel 和 Buffer 基本上,所有的 IO 在 NIO 中都从一个 Channel 开始。Channel 有 阅读全文
posted @ 2019-07-07 09:01 binarylei 阅读(491) 评论(0) 推荐(0) 编辑

2019年7月6日

摘要: NIO 源码分析(02 2) BIO 源码分析 Socket [toc] __Netty 系列目录()__ 在上一篇文章中详细分析了 ServerSocket 的源码,Socket 和 ServerSocket 一样也只是一个门面模式,真正的实现也是 SocksSocketImpl,所以关于 set 阅读全文
posted @ 2019-07-06 21:56 binarylei 阅读(558) 评论(0) 推荐(0) 编辑
摘要: NIO 源码分析(02 1) BIO 源码分析 [toc] __Netty 系列目录()__ 一、BIO 最简使用姿势 __(1) JDK BIO 启动服务典型场景__ ok,代码已经完成!!!下面我们和 Linux 下的网络编程进行对比。 __(2) Linux BIO 启动服务典型场景__ 对比 阅读全文
posted @ 2019-07-06 11:19 binarylei 阅读(1383) 评论(1) 推荐(2) 编辑

2019年7月4日

摘要: NIO 源码分析(01) NIO 最简用法 [toc] __Netty 系列目录()__ Java NIO 主要由三个部分组成:Channel、Buffer 和 Selector。在分析源码前最好对 NIO 的基本用法和 Linux NIO 在一个基本的了解。 1. "NIO 入门" 2. "Lin 阅读全文
posted @ 2019-07-04 21:20 binarylei 阅读(544) 评论(0) 推荐(0) 编辑
摘要: Linux NIO 系列(04 4) select、poll、epoll 对比 [toc] __Netty 系列目录()__ 既然 select/poll/epoll 都是 I/O 多路复用的具体的实现,之所以现在同时存在,其实他们也是不同历史时期的产物 select 出现是 1984 年在 BSD 阅读全文
posted @ 2019-07-04 06:05 binarylei 阅读(2697) 评论(1) 推荐(1) 编辑

2019年7月3日

摘要: Linux NIO 系列(04 3) epoll [toc] __Netty 系列目录()__ 一、why epoll 1.1 select 模型的缺点 1. 句柄限制:单个进程能够监视的文件描述符的数量存在最大限制,通常是 1024,当然可以更改数量,但由于select采用轮询的方式扫描文件描述符 阅读全文
posted @ 2019-07-03 07:31 binarylei 阅读(557) 评论(0) 推荐(0) 编辑
摘要: Linux NIO 系列(04 2) poll [toc] __Netty 系列目录()__ 一、select 和 poll 比较 select() 和 poll() 系统调用的本质一样,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量 阅读全文
posted @ 2019-07-03 06:23 binarylei 阅读(393) 评论(0) 推荐(0) 编辑
摘要: Linux NIO 系列(04 1) select [toc] __Netty 系列目录()__ select 系统调用的的用途是:在一段指定的时间内,监听用户感兴趣的文件描述符上可读、可写和异常等事件。 一、select 机制的优势 为什么会出现 select 模型? 先看一下下面的这句代码: i 阅读全文
posted @ 2019-07-03 06:04 binarylei 阅读(538) 评论(0) 推荐(0) 编辑

2019年7月2日

摘要: Linux NIO 系列(03) 非阻塞式 IO [toc] __Netty 系列目录()__ 一、非阻塞式 IO 阻塞和非阻塞 I/O 是设备访问的两种不同模式,驱动程序可以灵活地支持这两种用户空间对设备的访问方式。 一般我们在 open() 文件或打开文件后通过 iocntl() 或 fcntl 阅读全文
posted @ 2019-07-02 21:53 binarylei 阅读(478) 评论(0) 推荐(0) 编辑
摘要: Linux NIO 系列(02) 阻塞式 IO [toc] __Netty 系列目录()__ 一、环境准备 yum install y gcc nc man socket 帮助手册 "关于 Linux 下 man 手册的安装和使用点击这里" 1.1 代码演示 __(1) 编译__ [root@loc 阅读全文
posted @ 2019-07-02 21:15 binarylei 阅读(712) 评论(0) 推荐(0) 编辑

2019年6月27日

摘要: netty源码分析 Recycler 对象池的设计 1. 《netty源码分析4 Recycler对象池的设计》: 2. 《Netty 对象池实践优化》: 3. 《Netty轻量级对象池实现分析》: [toc] 一、为什么需要对象池 减少创建对象时内存分配的消耗,对象的内存分配机制见: 对象进行重用 阅读全文
posted @ 2019-06-27 08:30 binarylei 阅读(848) 评论(0) 推荐(0) 编辑

2019年6月8日

摘要: 序列化之 TLV [toc] 通信协议可以理解两个节点之间为了协同工作实现信息交换,协商一定的规则和约定,例如规定字节序,各个字段类型,使用什么压缩算法或加密算法等。常见的有 tcp,udo,http,sip 等常见协议。协议有流程规范和编码规范。流程如呼叫流程等信令流程,编码规范规定所有信令和数据 阅读全文
posted @ 2019-06-08 20:09 binarylei 阅读(940) 评论(0) 推荐(0) 编辑

2019年6月7日

摘要: Java 序列化和反序列化(三)Serializable 源码分析 2 [toc] 在上一篇文章中围绕 ObjectOutputStream writeObject 讲解了一下序列化的整个流程,这中间很多地方涉及到了 ObjectStreamClass 和 ObjectStreamField 这两个 阅读全文
posted @ 2019-06-07 22:15 binarylei 阅读(1495) 评论(1) 推荐(2) 编辑
摘要: Java 序列化和反序列化(二)Serializable 源码分析 1 [toc] 在上一篇文章中讲解了一下 Serializable 的大致用法,本节重点关注 Java 序列化的实现,围绕 ObjectOutputStream writeObject 方法展开。 1. Java 序列化接口 Jav 阅读全文
posted @ 2019-06-07 12:11 binarylei 阅读(1657) 评论(0) 推荐(0) 编辑
摘要: Java 序列化和反序列化(一)Serializable 使用场景 [toc] 以下为 Java 序列化系列文章: "1. Java 序列化和反序列化(一)Serializable 使用场景" "2. Java 序列化和反序列化(二)Serializable 源码分析 1" "3. Java 序列化 阅读全文
posted @ 2019-06-07 07:08 binarylei 阅读(5007) 评论(0) 推荐(1) 编辑

2019年6月3日

摘要: JUC源码分析 其它工具类(一)ThreadLocalRandom ThreadLocalRandom 是 JDK7 在 JUC 包下新增的随机数生成器,它解决了 Random 在多线程下多个线程竞争内部唯一的原子性种子变量而导致大量线程自旋重试的不足。需要注意的是 Random 本身是线程安全的。 阅读全文
posted @ 2019-06-03 07:14 binarylei 阅读(892) 评论(0) 推荐(1) 编辑

2019年6月2日

摘要: JUC源码分析 线程池篇(三)ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor 继承自 ThreadPoolExecutor。它主要用来在给定的延迟之后运行任务,或者定期执行任务。ScheduledThreadPoolExecutor 的 阅读全文
posted @ 2019-06-02 15:21 binarylei 阅读(378) 评论(0) 推荐(0) 编辑

2019年6月1日

摘要: JUC源码分析 线程池篇(二)FutureTask JDK5 之后提供了 Callable 和 Future 接口,通过它们就可以在任务执行完毕之后得到任务的执行结果。本文从源代码角度分析下具体的实现原理。 1. 接口介绍 1.1 Callable 接口 对于需要执行的任务需要实现 Callable 阅读全文
posted @ 2019-06-01 11:07 binarylei 阅读(377) 评论(0) 推荐(0) 编辑

2019年5月31日

摘要: JUC源码分析 线程池篇(三)Timer Timer 是 java.util 包提供的一个定时任务调度器,在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。 1. Timer 类结构 Timer 由 TimerThread,TaskQueue ,TimerTask 组 阅读全文
posted @ 2019-05-31 19:35 binarylei 阅读(459) 评论(0) 推荐(0) 编辑

2019年5月30日

摘要: JUC源码分析 线程池篇(一):ThreadPoolExecutor Java 中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来 3 个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 阅读全文
posted @ 2019-05-30 21:06 binarylei 阅读(370) 评论(0) 推荐(0) 编辑

2019年5月29日

摘要: JUC源码分析 集合篇:并发类容器介绍 同步类容器是 __线程安全__ 的,如 Vector、HashTable 等容器的同步功能都是由 等工厂方法去创建实现的,底层使用 synchronized 关键字,每次只有一个线程访问容器。这明显不满足高并发的需求。 __JDK1.8 中的并发类容器__ 非 阅读全文
posted @ 2019-05-29 19:41 binarylei 阅读(375) 评论(0) 推荐(0) 编辑

2019年5月28日

摘要: JUC源码分析 集合篇(十)LinkedTransferQueue LinkedTransferQueue(LTQ) 相比 BlockingQueue 更进一步,生产者会一直阻塞直到所添加到队列的元素被某一个消费者所消费(不仅仅是添加到队列里就完事)。新添加的 transfer 方法用来实现这种约束 阅读全文
posted @ 2019-05-28 21:35 binarylei 阅读(768) 评论(0) 推荐(0) 编辑

2019年5月26日

摘要: JUC源码分析 集合篇(九)SynchronousQueue SynchronousQueue 是一个同步阻塞队列,它的每个插入操作都要等待其他线程相应的移除操作,反之亦然。SynchronousQueue 像是生产者和消费者的会合通道,它比较适合“切换”或“传递”这种场景:一个线程必须同步等待另外 阅读全文
posted @ 2019-05-26 21:39 binarylei 阅读(395) 评论(0) 推荐(0) 编辑
摘要: JUC源码分析 集合篇(八)DelayQueue __DelayQueue 是一个支持延时获取元素的无界阻塞队列。队列使用 PriorityQueue 来实现。__ 队列中的元素必须实现 Delayed 接口,在创建元素时可以指定多久才能从队列中获取当前元素。只有在延迟期满时才能从队列中提取元素。 阅读全文
posted @ 2019-05-26 17:52 binarylei 阅读(418) 评论(0) 推荐(0) 编辑
摘要: JUC源码分析 集合篇(七)PriorityBlockingQueue __PriorityBlockingQueue 是带优先级的无界阻塞队列,每次出队都返回优先级最高的元素,是二叉树最小堆的实现。__ PriorityBlockingQueue 数据结构和 PriorityQueue 一致,而线 阅读全文
posted @ 2019-05-26 14:54 binarylei 阅读(234) 评论(0) 推荐(0) 编辑
摘要: JUC源码分析 集合篇(六)LinkedBlockingQueue 1. 数据结构 LinkedBlockingQueue 和 ConcurrentLinkedQueue 一样都是由 head 节点和 last 节点组成,每个节点(Node)由节点元素(item)和指向下一个节点(next)的引用组 阅读全文
posted @ 2019-05-26 08:58 binarylei 阅读(198) 评论(0) 推荐(0) 编辑

2019年5月25日

摘要: JUC源码分析 集合篇(四)CopyOnWriteArrayList Copy On Write 简称 COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容 Copy 出去形成一个新的内容然后再改,这是一种延时懒惰策略。 阅读全文
posted @ 2019-05-25 20:23 binarylei 阅读(293) 评论(0) 推荐(0) 编辑
摘要: JUC源码分析 集合篇(三)ConcurrentLinkedQueue 在并发编程中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列有两种方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现。 阅读全文
posted @ 2019-05-25 18:14 binarylei 阅读(348) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 11 下一页

导航