自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

vincent

一个对coding有独特追求的人。

转载 太厉害了,终于有人能把TCP/IP 协议讲的明明白白了
原力计划

一图看完本文一、 计算机网络体系结构分层计算机网络体系结构分层计算机网络体系结构分层不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。二、 TCP/IP 基础1. TCP/IP 的具体含义从字面意义上讲,有人可能会认为...

2020-05-25 11:17:17 78754 156

原创 三种实现分布式锁的方式

一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几台机器上然后做负载均...

2018-06-14 15:01:57 90695 35

原创 一口气说出 4 种分布式一致性 Session 实现方式

作者: 程序员通事https://www.cnblogs.com/goodAndyxublog/archive/2020/07/17/13327412.html前言公司有一个 Web 管理系统,使用 Tomcat 进行部署。由于是后台管理系统,所有的网页都需要登录授权之后才能进行相应的操作。起初这个系统的用的人也不多,为了节省资源,这个系统仅仅只是单机部署。后来随着用的人越来越多,单机已经有点扛不住了,于是我决定再部署了一台机器。这时后端系统有两台服务,于是我们使用 Nginx 作.

2020-07-29 10:15:43 54

原创 一网打尽,Mybatis架构与原理

作者:消失erwww.jianshu.com/p/15781ec742f2MyBatis功能架构设计功能架构讲解:我们把Mybatis的功能架构分为三层: API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。 基础支撑层:负责最基础的功能支.

2020-07-28 20:41:07 68

原创 面试官问 Spring AOP 中两种代理模式的区别,我懵逼了
原力计划

基本介绍代理模式是一种结构性设计模式。为对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,并允许在将请求提交给对象前后进行一些处理。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。代理模式主要有三种不同的形式:静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的 .class 文件就已经存在了 动态代理(JDK 代理、接口代理):在程序运行时运用反射机制动态创建而成,动态就是在程序运行时生成的,而不是编译时。 cgli

2020-06-29 20:30:58 696

原创 布隆过滤器究竟是什么,这一篇给讲的明明白白的
原力计划

作者:jack_xujuejin.im/post/5e9c110151882573793e8940不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,在面试中面试官问到怎么避免缓存穿透,你的第一反应可能就是布隆过滤器,缓存穿透=布隆过滤器成了标配,但具体什么是布隆过滤器,怎么使用布隆过滤器不是很清楚,那今天我们就来把它说清楚,讲明白。缓存穿透大家看下这幅图,用户可能进行了一次条件错误的查询,这时候redis是不存在的,按照常规流程就是去数据库找了,可...

2020-06-12 14:23:27 1368

原创 别再说,不懂什么是图数据了
原力计划

在众多不同的数据模型里,关系数据模型自20世纪80年代就处于统治地位,而且出现了不少巨头,如Oracle、MySQL和MSSQL,它们也被称为关系数据库管理系统(RDBMS)。然而,随着关系数据库使用范围的不断扩大,也暴露出一些它始终无法解决问题,其中最主要的是数据建模中的一些缺陷和问题,以及在大数据量和多服务器之上进行水平伸缩的限制。同时,互联网发展也产生了一些新的趋势变化:用户、系统和传感器产生的数据量呈指数增长,其增长速度因大部分数据量集中在Amazon、Google和其他云服务的分布式系统...

2020-06-11 11:13:14 3466

原创 细谈八种架构设计模式及其优缺点概述
原力计划

作者:风平浪静如马一、什么是架构我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是骨架,如下图所示:人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤。架构对于软件的重要性不亚于骨架对人类身体的重要性。二、. 什么是设计模式这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提..

2020-06-02 12:12:36 5129

转载 面试官:小伙子,听说你看过 ThreadLocal 源码?(万字图文深度解析)
原力计划

前言话不多说,直接进入今天的主题,本文的主要内容如下图所示:全文共10000+字,31张图,这篇文章同样耗费了不少的时间和精力才创作完成,请大家点点关注+点赞,感谢。源于壹枝花算不算浪漫 ,作者壹枝花算不算浪漫。对于ThreadLocal,大家的第一反应可能是很简单呀,线程的变量副本,每个线程隔离。那这里有几个问题大家可以思考一下:ThreadLocal的key是弱引用,那么在 threadLocal.get()的时候,发生GC之后,key是否为null? Thr...

2020-05-25 08:54:44 10263 3

转载 终于有人把 Docker 讲清楚了
原力计划

一、简介1、了解Docker的前生LXCLXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于:(1)与宿主机使用同一个内核,性能损耗小;(2)不需要指令级模拟;(3)不需要即时(Just-in-time)编译;(4)...

2020-05-25 08:50:49 13184

原创 一篇吃透,Java集合框架综述
原力计划

一、集合框架图简化图:说明:对于以上的框架图有如下几点说明1、所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。2、集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。3、抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。4、实现类:8个实现类(实线表示),对接口的具体实现...

2020-05-21 20:08:06 5707

原创 阿里巴巴为什么不用 ZooKeeper 做服务发现?
原力计划

站在未来的路口,回望历史的迷途,常常会很有意思,因为我们会不经意地兴起疯狂的念头,例如如果当年某事提前发生了,而另外一件事又没有发生会怎样?一如当年的奥匈帝国皇位继承人斐迪南大公夫妇如果没有被塞尔维亚族热血青年普林西普枪杀会怎样,又如若当年的丘老道没有经过牛家村会怎样?2008 年底,淘宝开启一个叫做“五彩石”的内部重构项目,这个项目后来成为了淘宝服务化、面向分布式走自研之路,走出了互联网中间件体系之始,而淘宝服务注册中心 ConfigServer 于同年诞生。2008 年前后,Yahoo 这...

2020-05-20 14:39:52 3820 3

原创 厉害了,分布式数据库中间件ShardingSphere毕业成为Apache顶级项目!

全球最大的开源软件基金会 Apache 软件基金会(以下简称 Apache)于北京时间 2020年4 月 15 日宣布 Apache ShardingSphere毕业成为 Apache 顶级项目。ShardingSphere于2018年11月10日捐赠给Apache并启动孵化。之后在导师的指导下,由孵化器管理委员会成员进行经营和孵化,在2020年3月28日在Apache孵化器以10 票支持一次性通过毕业提案投票。4月15日,Apache董事会通过ShardingSphere毕业决议,结束了为期17...

2020-05-20 14:38:01 3396

原创 彻底理解 SpringIOC、DI,这篇文章就够了
原力计划

前言你可能会有如下问题:1、想看Spring源码,但是不知道应当如何入手去看,对整个Bean的流程没有概念,碰到相关问题也没有头绪如何下手2、看过几遍源码,没办法彻底理解,没什么感觉,没过一阵子又忘了本文将结合实际问题,由问题引出源码,并在解释时会尽量以图表的形式让你一步一步彻底理解Spring Bean的IOC、DI、生命周期、作用域等。先看一个循环依赖问题现象循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖...

2020-05-18 11:12:22 5647

原创 浅析VO、DTO、DO、PO的概念、区别和用处

本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念:概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提...

2020-05-14 10:27:20 1764

原创 从session、cookie到token以及JWT

前言主要讲token和jwt技术,关于session和cookie文章很多,简单提一下。session和cookie现在一般都是session和cookie一起用,一起提。但是他们俩其实不是一定要在一起。首先牢记一点,http协议是无状态的。就是说,一个请求过来,服务器不知道这个请求的用户是不是已经登录过了,不知道他的状态。只能再把这个请求重定向到登陆页面。这样用户就疯了,怎么一直让我登录。所以,前人想了一个办法,在第一次登录后,在服务器端记录一个会话id(sessionId).

2020-05-13 14:16:17 5327

原创 这才是微服务划分的正确姿势,值得学习!
原力计划

前言我们知道微服务是一种理念,没有确切的定义和边界,好比设计原则,是属于抽象的概念。在定义不明确的情况下谈划分也是一种各说各话,具体问题需要具体分析,所以这篇文章谈到的划分也不是绝对标准,仅供参考。有人说微服不难,难的是服务的划分,虽然我持保留意见。但是从侧面也反应了划分具有一定的困难。这里的矛盾在于粒度。如果粒度太大了,分和不分似乎都差不多;如果粒度太小了,聚合、发布、调用链、调试等都是坑。以下谈到的拆分是前人经验的总结,我罗列了三种行家的拆分姿势,每个的的经验和视野不同,各有偏颇,我在这里.

2020-05-12 20:20:29 4339

原创 99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!
原力计划

罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活。对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手撸一个简易版的 Lombok,让你理解这个热门技术背后的执行原理,以及它的优缺点分析。简介在讲原理之前,我们先来复习一下 Lombok (老司机可以直接跳过本段看原理部分的内容)。Lombok 是一个非常热门的开源项目 (github.com/rzwitserloo…),使用它可以...

2020-05-11 08:55:14 10214

原创 记住这四点,彻底搞懂Redis到底快在哪里

前言Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数据结构和算法组成。Redis还提供了键过期,发布订阅,事务,Lua脚本,哨兵,Cluster等功能。Redis执行命令的速度非常快,根据官方给的性能可以达到10w+qps。那么本文主要介绍到底Redis快在哪里,主要有以下几点:开发语言 纯内存访问 单线程 非阻塞多路I/O复用机制...

2020-05-10 10:04:47 2818

原创 一口气说出6种,@Transactional注解的失效场景
原力计划

引言之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败。所以今天简单的和大家分享一下@Transactional相关的知识。@Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是莫名其妙的就失效了。一、事务事务管理在系统开发中是不可缺少的一部分,Spring提供了很好...

2020-05-09 11:56:52 11082 1

原创 全网最全的分库分表方案
原力计划

一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库。2、CPU瓶颈第一种:SQL问题,如SQL中

2020-05-08 20:22:30 10328 1

原创 别再问我 new 字符串创建了几个对象了!我来证明给你看!
原力计划

我想所有 Java 程序员都曾被这个 new String 的问题困扰过,这是一道高频的 Java 面试题,但可惜的是网上众说纷纭,竟然找不到标准的答案。有人说创建了 1 个对象,也有人说创建了 2 个对象,还有人说可能创建了 1 个或 2 个对象,但谁都没有拿出干掉对方的证据,这就让我们这帮吃瓜群众们陷入了两难之中,不知道到底该信谁得。但是今天就斗胆和大家聊聊这个话题,顺便再拿出点证据。以目前的情况来看,关于 new String("xxx") 创建对象个数的答案有 3 种:有人说创建了...

2020-05-08 20:05:27 8646 4

原创 我们已经不用AOP做操作日志了!
原力计划

前言用户在操作我们系统的过程中,针对一些重要的业务数据进行增删改查的时候,我们希望记录一下用户的操作行为,以便发生问题时能及时的找到依据,这种日志就是业务系统的操作日志。本篇我们来探讨下常见操作日志的实现方案和可行性常见的操作日志类型用户登录日志 重要数据查询日志 (但电商可能不重要的数据也做埋点,比如在淘宝上你搜索什么商品,即使不买,一段时间内首页也会给你推荐类似的...

2020-05-07 09:37:51 8362 1

原创 还在为生成分布式ID发愁?UUID、数据库、算法、Redis、Leaf 来帮忙
原力计划

前言一般单机或者单数据库的项目可能规模比较小,适应的场景也比较有限,平台的访问量和业务量都较小,业务ID的生成方式比较原始但是够用,它并没有给这样的系统带来问题和瓶颈,所以这种情况下我们并没有对此给予太多的关注。但是对于大厂的那种大规模复杂业务、分布式高并发的应用场景,显然这种ID的生成方式不会像小项目一样仅仅依靠简单的数据自增序列来完成,而且在分布式环境下这种方式已经无法满足业务的需求,不仅...

2020-05-02 14:56:58 10525

原创 使用knife4j后,终于放弃了swagger-ui
原力计划

介绍knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!knife4j的前身是swagger-bootstrap-ui,为了契合微服务的架构发展,由于原来swagger-bootstrap-ui采用的是后端Java代码+前端Ui混合打包的方式,在...

2020-05-02 14:42:17 9804

原创 硬核!10种延迟任务实现方式汇总
原力计划

延迟任务要怎么实现?话不多说,直接进入今天的主题,本文的主要内容如下图所示:什么是延迟任务?顾明思议,我们把需要延迟执行的任务叫做延迟任务。延迟任务的使用场景有以下这些:红包 24 小时未被查收,需要延迟执退还业务; 每个月账单日,需要给用户发送当月的对账单; 订单下单之后 30 分钟后,用户如果没有付钱,系统需要自动取消订单。等事件都需要使用延迟任务。...

2020-05-02 13:58:09 9108

原创 终于来了,最全的 HashMap 7 种遍历方式与性能分析
原力计划

随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题。本文先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足,本文主要内容如下图所示:HashMap 遍历HashMap遍历从大的方向来说,可分为以下 4 类: ...

2020-05-02 10:29:38 6871

原创 真香!Java 导出 Excel 表格竟变得如此简单优雅
原力计划

技术选型能够实现「导入/导出 Excel」的第三方常用类库有 Apache poi、Java Excel(JXL)和阿里巴巴开源的 Easyexcel 等。这么多类库该怎么选呢?在这里小编给大家推荐阿里巴巴开源的「Easyexcel」。 性能对比 poi 和 jxl 对内存的消耗很大,在处理大批量的数据时,容易造成内存溢出。比如处理一个 3M 的 Excel,poi 和 jxl 可能需...

2020-05-01 09:46:44 11545

原创 如何基于Canal 和 Kafka,实现 MySQL 的 Binlog 近实时同步?

随着业务系统架构基本完备,数据层面的建设比较薄弱,目前工作重心在于搭建一个小型的数据平台。优先级比较高的一个任务就是需要近实时同步业务系统的数据(包括保存、更新或者软删除)到一个另一个数据源,持久化之前需要清洗数据并且构建一个相对合理的便于后续业务数据统计、标签系统构建等扩展功能的数据模型。基于当前团队的资源和能力,优先调研了Alibaba开源中间件Canal的使用。这篇文章简单...

2020-04-29 16:05:06 8483

原创 面试必问:Java 内存模型的3个特性
原力计划

前言Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能得到一致效果的「机制及规范」。JMM与Java内存区域是两个容易混淆的概念,这两者既有差别又有联系:区别「两者是不同的概念层次」。「Java 内存模型是抽象的,它是用来描述一组规则」,通过这个规则来控制...

2020-04-28 19:29:07 4437

原创 一文搞定,手撸Springboot + aop + Lua分布式限流的最佳实践
原力计划

一、什么是限流?为什么要限流?不知道大家有没有坐过帝都的地铁,就是进地铁站都要排队的那种,为什么要这样摆长龙转圈圈?答案就是为了限流!因为一趟地铁的运力是有限的,一下挤进去太多人会造成站台的拥挤、列车的超载,存在一定的安全隐患。同理,我们的程序也是一样,它处理请求的能力也是有限的,一旦请求多到超出它的处理极限就会崩溃。为了不出现最坏的崩溃情况,只能耽误一下大家进站的时间。限流是...

2020-04-28 10:34:01 9720

原创 还在使用if else写代码?试试 “策略模式” 吧!
原力计划

我们使用的app大多都有分享的功能,我们可以选择分享到不同的地方,比如微博、微信、QQ等等,虽然是同一个内容,但是分享到不同的平台就会有不同的处理方式,比如要跳转到不同的app或者直接复制链接等等。如果让你来实现这个功能,你会如何实现呢? 如果你对设计模式不熟悉,那么第一反应就是有if...else或者switch语句来进行条件判断,根据用户的不同选择而使用不同的处理方...

2020-04-27 20:33:45 8941 29

原创 一个秒杀系统的设计思考

前言秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。整体思考首先从高维度出发,整体思考问题。秒杀无外乎解决两个核心问题...

2020-04-25 16:43:31 3759

原创 消息队列探秘 – RabbitMQ 消息队列工作原理
原力计划

1. 历史RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,...

2020-04-25 10:48:25 10877

原创 两小时入门 Docker

1、引言1.1 Docker是什么Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 使用 Google 公司推出的 Go 语言 进行开发实现。docker是linux容器的一种封装,提供简单易用的容器...

2020-04-14 10:03:47 3504

原创 一文搞定,SpringBoot 集成 Apollo 配置中心
原力计划

1、背景随着程序功能的日益复杂,程序的配置日益增多,各种功能的开关、参数的配置、服务器的地址……对程序配置的期望值也越来越高,配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制…… 在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。因此 Apollo 配置中心应运而生!2、简介Apollo(阿波罗)是携程框架部门...

2020-03-27 13:46:35 8120 4

原创 半小时搞定,规则引擎Drools 集成 springboot 热加载

前言: 如果对drools还不是特别熟悉的,可以看下 《规则引擎Drools 之 初识drools》这篇文章; 本文源码,github 传送门:https://github.com/vincent9309/drools:一、项目搭建流程二、项目目录结构三、springboot集成drools1.pom文件引入依赖 <dependency&...

2020-03-12 13:37:38 8419

原创 别再说你不会,规则引擎Drools了

一、规则引擎的由来有一天运营想弄一个积分策略,计算额外积分金额,规则如下:订单原价金额 100以下, 不加分;100-500 加100分;500-1000 加500分;1000 以上 加1000分;传统java业务实现如下:public class JavaScoreExample { public static void main(String[...

2020-03-12 11:21:31 4312

原创 IDEA 之 代码神器:Easycode 拒绝重复编码

Easycode是idea的一个插件,可以直接对数据的表生成entity、controller、service、dao、mapper无需任何编码,简单而强大。1、安装(EasyCode)我这里的话是已经那装好了。建议大家在安装一个插件,叫做Lombok。Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toS...

2020-02-13 13:36:45 7432 2

原创 Netty 学习 之(2)TCP网关详解

关注,私信赠送netty源码分析学习视频 !netty是什么介绍物联网设备网关技术架构设计(Session 管理、心跳管理、数据上行、数据下行)说明NioEventLoop 是 Netty 的 Reactor 线程,其角色:Boss Group:作为服务端 Acceptor 线程,用于 accept 客户端链接,并转发给 WorkerGroup 中的线程。 Work...

2020-02-10 14:21:28 6086

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