06 2020 档案

摘要:6.1 客户端 BootStrap 6.1.1 Channel 简介 在 Netty 中,Channel 是一个 Socket 的抽象,它为用户提供了关于 Socket 状态(是否是连接还是断开)以及对 Socket 的读写等操作。每当 Netty 建立了一个连接后, 都创建一个对应的 Channe 阅读全文

posted @ 2020-06-17 00:32 FLGB 阅读(197) 评论(0) 推荐(0) |

摘要:4.背景介绍 4.1.1 Netty 惊人的性能数据 通过使用 Netty(NIO 框架)相比于传统基于 Java 序列化+BIO(同步阻塞 IO)的通信框架,性能提升了 8 倍多。事 实上,我对这个数据并不感到惊讶,根据我多的 NIO 编程经验,通过选择合适的 NIO 框架,精心的设计 React 阅读全文

posted @ 2020-06-13 23:26 FLGB 阅读(760) 评论(0) 推荐(0) |

摘要:3.1 RPC 概述 下面的这张图,大概很多小伙伴都见到过,这是 Dubbo 官网中的一张图描述了项目架构的演进过程 它描述了每一种架构需要的具体配置和组织形态。当网站流量很小时,只需一个应用,将所有功能都部署在一起, 以减少部署节点和成本,我们通常会采用单一应用架构。之后出现了 ORM 框架,主要 阅读全文

posted @ 2020-06-11 21:21 FLGB 阅读(244) 评论(0) 推荐(0) |

摘要:参考代码: https://github.com/FLGBetter/tomcat-rpc-demo 阅读全文

posted @ 2020-06-11 21:02 FLGB 阅读(253) 评论(0) 推荐(0) |

摘要:2.1 Java NIO 三件套 在 NIO 中有几个核心对象需要掌握:缓冲区(Buffer)、选择器(Selector)、通道(Channel)。 2.1.1 缓冲区 Buffer 1.Buffer 操作基本 API 缓冲区实际上是一个容器对象,更直接的说,其实就是一个数组,在 NIO 库中,所有 阅读全文

posted @ 2020-06-09 22:06 FLGB 阅读(678) 评论(0) 推荐(0) |

摘要:Java IO 演进之路 1.1 必须明白的几个概念 1.1.1 阻塞(Block)和非阻塞(Non-Block) 阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候。 阻塞:往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否则一直等待在那里。 非阻塞:当 阅读全文

posted @ 2020-06-08 00:45 FLGB 阅读(294) 评论(0) 推荐(0) |

摘要:什么是线程池 在 Java 中,如果每个请求到达就创建一个新线程,创建和销毁线程花费的时间和消耗的系统 资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。 如果在一个 Jvm 里创建太多的线程,可能会使系统由于过度消耗内存或“切换过度”而导致系统资源不足 为了解决这个问题,就有了线 阅读全文

posted @ 2020-06-07 22:55 FLGB 阅读(806) 评论(0) 推荐(0) |

摘要:我相信大家都有使用过分布式消息队列,比如 ActiveMQ、kafka、RabbitMQ 等等,消息队列的是有可以使得程序之 间实现解耦,提升程序响应的效率。如果我们把多线程环境比作是分布式的话,那么线程与线程之间是不是也可以使用这种消息队列的方式进行数据通 信和解耦呢? 阻塞队列的使用案例 注册成 阅读全文

posted @ 2020-06-07 22:30 FLGB 阅读(664) 评论(0) 推荐(0) |

摘要:Condition 在前面学习 synchronized 的时候,有讲到 wait/notify 的基本使用,结合 synchronized 可以实现对线程的通信。 那么这个时候我就在思考了,既然 J.U.C 里面提供了锁的实现机制,那 J.U.C 里面有没有提供类似的线程通信的工具呢? 于是找阿找 阅读全文

posted @ 2020-06-01 00:42 FLGB 阅读(749) 评论(0) 推荐(0) |

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3