本人开源项目 Lu-Rpc Lu-Rpc 是个专为学习者准备的 RPC 框架, 初始架构非常简单, 可供初学者扩展和学习. Lu 可以认为是中文世界的撸, 即撸 Rpc— 造个 Rpc 轮子. Lu-Rpc 架构图如下: Lu-Rpc 的领域模型设计借鉴 Dubbo, 服务域没有明显的界限. 核心域就是 Invoker, 非常合适作为核心领域模型的接口. 会话域可以是Request,也可以是 Invocation. 这个问 2018-10-16 my open source
使用 Cglib 实现多重代理 由于 Cglib 本身的设计,无法实现在 Proxy 外面再包装一层 Proxy(JDK Proxy 可以),通常会报如下错误: 12345678Caused by: java.lang.ClassFormatError: Duplicate method name "newInstance" with signature "..........at java.la 2018-10-05 Spring
框架设计上的十点基本常识 最近一直在开发框架,对框架的设计有很多的疑惑,梁飞大神的这篇文章让我有了更多认识.这里收藏一下.也推荐阅读原文 :) API 和 SPI 分离(用户 API 和 扩展 API 分离) 实体域(核心领域模型), 服务域,会话域 在重要的过程上设置拦截接口(过滤器),允许外置行为,这是基本扩展方式 在重要的状态上留出监听事件接口 接口职责要单一,具有可组合性 微核插件式,平等对待第三方。 2018-10-04 Java 设计
Think in Life a. 对的事情要坚持, 知道错了及时调整 + 4,如何分清对错?需要多吃点亏。 b. 性格很难改,诚实很重要 + 2,诚实对自己,知之为知之,不知为不知 c. 关注事物本质 + 3,平常心 + 1 e. 性价比就是性能不好 f. 社交很累,知心朋友不多,知心就好。最重要的是友谊,要宽容,要友善,要诚实,有几个好朋友就足够了 g. 做对的事情,然后把事情做对 + 1 i. 有些机会总会错过,只要抓住 2018-10-03 扯淡
简简单单写一个 Redis 客户端 前言这篇文章很简单,就是写一个 Java 版本的 Redis Client,而且不是一个生产级别的项目,只是一个验证类型的 demo。用于了解“实现一个 Redis Client” 需要注意哪些事情。 思考 首先,Redis 是一个服务器,有 ip,有端口,那么,我们就可以用 Java 的 Socket 来和他交互,也可以用 telnet 来交互。说白了,就是一个 TCP 服务器,只要打开了 T 2018-10-01 Redis
SOFA RPC 客户端设计模式 图片来自 SOFA 官方。 图片来自 SOFA 官方。 笔者画的对应的 UML: 解释一下:User 就是用户使用的 API,会被 InvocationHandler 拦截,然后被实现了 Invoker 接口的具体实现类拦截,从这里开始,最核心的方法,就是:SofaResponse invoke(SofaRequest request) , 这个方法一直到上图中 Cluster 向 Remo 2018-09-09 SOFA
Netty LineBasedFrameDecoder 剖析(Netty Bug) 前言Netty 自带多个粘包拆包解码器。今天介绍 LineBasedFrameDecoder,换行符解码器。看起来简单,但当前版本(2018-09-04)是一个 bug,此 bug 截止本文发布时,已被修复。 属性分析 maxLength (每个完整的包的最大长度) failFast (是否快速失败,默认 false) discarding (是否进入丢弃模式) discardedBytes 丢弃 2018-09-04 Netty
闲书 <<当我跑步时,我谈些什么>> 摘抄 前言由于感觉到身体状态没有以前好了, 所以, 最近开始跑步, 大概坚持了一个月了已经,感觉不错, 耐力变的好了很多, 工作状态也好了很多,令人欣慰的是, 体重也下降了 5Kg. 和朋友谈及跑步, 他是个半马跑者, 很优秀. 交谈间提及村上的这本书, 其实之前我也听过,但没有买来看, 这次趁着跑步的节奏和当当打4折的节奏,就买来看了, 前后不到一天看完了.很薄.但感触很多. 这里就将我个人感触较多的 2018-09-01 扯淡
总结一次 Pika 迁移遇到的坑 目录: 前言 背景 方案 迁移步骤详细 坑点统计 总结 前言这段时间一直在弄数据迁移,需要把阿里云经典网络的中间件等基础设施迁移到 VPC 网络,包括 Pika,代理 Pika 的 Codis,zookeeper ,Sentinel 等。 其中,pika 的坑是最多的(大概是用户少的原因?)。这里简单的把迁移方案,再到迁移过程遇到的坑总结一下,方便后人,也方便回溯。 1 背景整件事情的大背 2018-08-23 Redis