会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
莫那鲁道的技术博客
虽生犹死,向死而生。 https://thinkinjava.cn https://github.com/stateis0
首页
新随笔
联系
管理
[置顶]
EXP 一款 Java 插件化热插拔框架
摘要: Java extension plugin and hot swap plugin(Java 扩展点/插件系统,支持热插拔,旨在解决本地化软件的功能定制问题)
阅读全文
posted @ 2023-08-14 21:11 莫那-鲁道
阅读(1705)
评论(6)
推荐(2)
2023年10月14日
Springboot 加密方案探讨
摘要: 背景 toB 的本地化 java 应用程序,通常是部署在客户机器上,为了保护知识产权,我们需要将核心代码(例如 Lience,Billing,Pay 等)进行加密或混淆,防止使用 jadx 等工具轻易反编译。同时,为了更深层的保护程序,也要防止三方依赖细节被窥探; 业界方案 ProGuard 简介:
阅读全文
posted @ 2023-10-14 17:42 莫那-鲁道
阅读(1392)
评论(0)
推荐(1)
2022年4月4日
深入理解 Skywalking Agent
摘要: 概述 Agent 功能介绍 + 整体结构 + 设计 插件机制详解 Trace Segment Span 详解 异步 Trace 详解 如何正确地编写插件并防止内存泄漏 扩展:如何基于 Skywalking 打造全链路压测 总结与参考 概述 在 APM 和全链路监控领域,Skywalking 是非常有
阅读全文
posted @ 2022-04-04 18:02 莫那-鲁道
阅读(4257)
评论(0)
推荐(0)
2021年11月3日
Zuul 2.1.5 设计分析
摘要: 前言 https://github.com/Netflix/zuul zuul 是 SpringCloud 家族老兵,使用 Java 微服务大部分都在使用 zuul 作为网关。既然他如此重要,那么我们就来分析一下。本文分析的是 zuul 2.1.5版本。 调用链路 首先,我们知道,zuul 基于 N
阅读全文
posted @ 2021-11-03 22:23 莫那-鲁道
阅读(240)
评论(0)
推荐(0)
基于 Canal 设计可扩展、高可用 binlog 同步集群
摘要: 问题 https://github.com/alibaba/canal binlog 同步组件,canal 使用是比较广泛的,canal 逻辑架构如图: 部署架构如图: canal 基于主从模式,任务都运行在 master 中,client 从 master 拉取数据。在使用 canal serve
阅读全文
posted @ 2021-11-03 22:19 莫那-鲁道
阅读(514)
评论(0)
推荐(0)
2019年10月29日
如何编写一个 SendFile 服务器
摘要: 如何编写一个 SendFile 服务器 前言 之前讨论零拷贝的时候,我们知道,两台机器之间传输文件,最快的方式就是 send file,众所周知,在 Java 中,该技术对应的则是 FileChannel 类的 transferTo 和 transferFrom 方法。 在平时使用服务器的时候,比如
阅读全文
posted @ 2019-10-29 14:03 莫那-鲁道
阅读(590)
评论(0)
推荐(0)
2019年6月2日
一种单机支持 JavaWeb 容器万级并发的设想
摘要: 当前的大部分 Java web 容器基于 Bio 线程模型,例如常见的 tomcat ,默认 200 线程,即 200 连接。由此带来的问题是,如果想提高并发,或者提高资源利用率,就得加大线程数。 如下图: 于是出现了类 Netty 的 Reactor 线程模型。同时,Java 官方也设计了 Ser
阅读全文
posted @ 2019-06-02 15:55 莫那-鲁道
阅读(1500)
评论(6)
推荐(0)
2019年6月1日
零拷贝
摘要: 前言 零拷贝这三个字,一直是服务器网络编程的关键字,任何性能优化都离不开。在 Java 程序员的世界,常用的零拷贝有 mmap 和 sendFile。那么,他们在 OS 里,到底是怎么样的一个的设计?本文将简单聊聊 mmap 和 sendFile 这两个零拷贝。 传统数据读写的劣势 初学 Java
阅读全文
posted @ 2019-06-01 18:49 莫那-鲁道
阅读(1644)
评论(1)
推荐(0)
2019年2月26日
Canal 源码走读
摘要: 前言 canal 是什么? 引用一下官方回答: 阿里巴巴mysql数据库binlog的增量订阅&消费组件 canal 能做什么? 基于日志增量订阅&消费支持的业务: 1. 数据库镜像 2. 数据库实时备份 3. 多级索引 (卖家和买家各自分库索引) 4. search build 5. 业务cach
阅读全文
posted @ 2019-02-26 17:26 莫那-鲁道
阅读(1486)
评论(1)
推荐(1)
2019年1月25日
一次故障排查过程
摘要: 上周晚上,某环境 ES 出现阻塞, 运行缓慢。于是开始排查问题的过程。 开始 思路:现象是阻塞,通常是 CPU 彪高,导致业务线程分配不到 CPU 时间片,或者内存吃紧,频繁 GC 导致的 STW。 登录到目标服务器,由于 ES 的用户不是 LZ,因此找运维要了 root 权限,登录到服务器。sud
阅读全文
posted @ 2019-01-25 12:50 莫那-鲁道
阅读(1768)
评论(2)
推荐(5)
2019年1月19日
Raft 基础
摘要: 目录 1. 三个状态 Raft 设计了 3 个状态,用于表示节点的状态,分别是跟随者,候选者,领导者。 3 个角色的转换关系和流程: 可以看到,这张图里的几个概念: 2. 什么是任期 目录: 背景:由于机器的物理时间是不可靠的,所以需要一个逻辑时间。称之为任期(term)。 从 2 个阶段开始说起:
阅读全文
posted @ 2019-01-19 14:29 莫那-鲁道
阅读(1185)
评论(2)
推荐(1)
2019年1月16日
扎心一问:分库分表就能无限扩容吗
摘要: 前言 像我这样的菜鸟,总会有各种疑问,刚开始是对 JDK API 的疑问,对 NIO 的疑问,对 JVM 的疑问,当工作几年后,对服务的可用性,可扩展性也有了新的疑问,什么疑问呢?其实是老生常谈的话题:服务的扩容问题。 正常情况下的服务演化之路 让我们从最初开始。 1. 单体应用 每个创业公司基本都
阅读全文
posted @ 2019-01-16 09:14 莫那-鲁道
阅读(2122)
评论(1)
推荐(7)
2019年1月12日
编写你的第一个 Java 版 Raft 分布式 KV 存储
摘要: 本文旨在讲述如何使用 Java 语言实现基于 Raft 算法的,分布式的,KV 结构的存储项目。该项目的背景是为了深入理解 Raft 算法,从而深刻理解分布式环境下数据强一致性该如何实现;该项目的目标是:在复杂的分布式环境中,多个存储节点能够保证数据强一致性。
阅读全文
posted @ 2019-01-12 12:49 莫那-鲁道
阅读(6242)
评论(2)
推荐(2)
2018年10月21日
一张图,让你和面试官聊一个小时的“Java内存模型”
摘要: 如果面试官问你:你了解 Java 内存模型吗?你怎么回答?
阅读全文
posted @ 2018-10-21 21:19 莫那-鲁道
阅读(2117)
评论(3)
推荐(0)
2018年10月20日
框架设计原则(梁飞)
摘要: 读梁飞博客和其分享的 PPT 总结笔记。期待和对此感兴趣的人一起讨论 :)
阅读全文
posted @ 2018-10-20 23:19 莫那-鲁道
阅读(3841)
评论(2)
推荐(4)
谈谈中间件开发
摘要: 谈谈中间件开发
阅读全文
posted @ 2018-10-20 17:02 莫那-鲁道
阅读(12244)
评论(13)
推荐(16)
2018年10月16日
本人开源项目 Lu-Rpc
摘要: 本人开源项目 Lu-Rpc
阅读全文
posted @ 2018-10-16 22:08 莫那-鲁道
阅读(1042)
评论(4)
推荐(1)
2018年10月13日
Netty 粘包 & 拆包 & 编码 & 解码 & 序列化 介绍
摘要: 目录: 1. 粘包 & 拆包及解决方案 ByteToMessageDecoder 2. 基于长度编解码器 3. 基于分割符的编解码器 4. google 的 Protobuf 序列化介绍 5. 其他的 前言 Netty 作为一个网络框架,对 TCP 连接中的问题都做了全面的考虑,比如粘包拆包导致的半
阅读全文
posted @ 2018-10-13 21:39 莫那-鲁道
阅读(1052)
评论(0)
推荐(0)
闪电侠 Netty 小册里的骚操作
摘要: 前言 即使这是一本小册,但基于“不提笔不读书”的理念,仍然有必要总结一下。此小册对于那些“硬杠 Netty 源码 却不曾在千万级生产环境上使用实操”的用户非常有用。当然,对那些没有 Netty 编程经验的人来说,更为有用。 放个小册地址: "[Netty 入门与实战:仿写微信 IM 即时通讯系统"
阅读全文
posted @ 2018-10-13 21:38 莫那-鲁道
阅读(1811)
评论(0)
推荐(0)
2018年10月12日
面试被问烂的 Spring IOC(求求你别再问了)
摘要: 广义的 IOC IoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”。 两种实现: 依赖查找(DL)和依赖注入(DI)。 IOC 和 DI 、DL 的关系(这个 DL,Avalon 和 EJB 就是使用的这种方式实现的 IoC): DL 已经被抛弃,因为他
阅读全文
posted @ 2018-10-12 16:40 莫那-鲁道
阅读(5662)
评论(5)
推荐(5)
下一页