albon arith

一些总结,欢迎交流

基于系统负载的动态限流组件 dynamic-limiter

基于系统负载的动态限流组件 dynamic-limiter 背景 动态限流原理 测试效果 总结 基于系统负载的动态限流组件 dynamic-limiter 最早发在了:Qunar 技术沙龙 背景 一个系统的处理能力是有限的,当请求量超过处理能力时,通常会引起排队,造成响应时...

2018-01-05 22:59:50

阅读数:325

评论数:0

系统设计:关于高可用系统的一些技术方案

系统设计关于高可用系统的一些技术方案 高可用方法论 扩展 隔离 解耦 限流 分类 漏桶算法 令牌桶算法 滑动窗口计数法 动态限流 降级 熔断 发布相关 模块级自动化测试 灰度发布 回滚 其他 总结 参考资料 系统设计:关于高可用系统的一些技术方案 可靠的系统是业务稳定...

2017-09-17 09:22:32

阅读数:3253

评论数:0

消息队列 RocketMQ 设计学习

消息队列 RocketMQ 设计学习 概述 一个消息队列的实现需要关注哪些问题点?需要实现哪些功能? 先说最通用的功能,任何系统都需要考虑的功能: 系统结构 高可用 高性能 再说,MQ 特有的功能: Message Order At Least Once 消息查询 消息堆积能力 ...

2018-05-21 14:40:54

阅读数:1

评论数:0

分布式事务解决方案总结

分布式事务 两阶段提交协议 Paxos 算法 本地消息表 TCC 事务 Saga 模式 阿里的分布式事务处理方案 GTS 参考资料 分布式事务 两阶段提交协议 两阶段提交协议是用来处理分布式事务的。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其...

2018-03-13 17:20:24

阅读数:96

评论数:0

DirectByteBuffer 里的堆外内存何时释放?

DirectByteBuffer 里的堆外内存何时释放? 简要答案 DirectByteBuffer 在分配堆外内存时: 先要通过 Bits.reserveMemory 来看看是否还有可用的内存,是否达到了堆外内存的上限?有的话,占坑。 通过 unsafe.allocateMemory...

2018-03-11 22:14:07

阅读数:52

评论数:0

利用 Java Agent 和 Instrument 技术录制线上流量

利用 Java Agent 和 Instrument 技术录制线上流量 Java Instrument 技术 遇到的难题 自动打包依赖 ClassNotFound 问题 HttpServletRequest body 只能 get 一次 利用 Java Agent 和 Inst...

2018-02-04 11:06:17

阅读数:126

评论数:0

性能优化案例(一):通过修改路由算法提升系统性能

性能优化案例一通过修改路由算法提升系统性能 概述 系统结构 优化方法 优化效果 性能优化案例(一):通过修改路由算法提升系统性能 概述 一般性能优化方法有两种:一是,从代码层面优化,提升某个方法的性能,从而提升单机性能;二是,从系统结构层面优化,通过减少无用功,来减少资源...

2018-02-03 19:25:30

阅读数:105

评论数:0

Netty 权威指南笔记(八):EventLoopGroup 和线程模型

一般情况下,I/O 复用机制需要事件分发器(event dispatcher)。 事件分发器的作用,即将那些读写事件源分发给各读写事件的处理者,就像送快递的在楼下喊: 谁谁谁的快递到了, 快来拿吧!开发人员在开始的时候需要在分发器那里注册感兴趣的事件,并提供相应的处理者(event handler...

2017-11-16 23:51:22

阅读数:173

评论数:0

Netty 权威指南笔记(七):ChannelPipeline 和 ChannelHandler 源码分析

Netty 的 ChannelPipeline 和 ChannelHandler 机制类似于 Servlet 和 Filter 过滤器,这类拦截器实际上是职责链模式的一种变形,主要是为了方便事件的拦截和用户业务逻辑的定制。 Servlet Filter 过滤器提供了一种面向对象的模块化机制,用来...

2017-11-07 14:14:33

阅读数:418

评论数:0

Netty 权威指南笔记(六):Channel 解读

JDK 的 NIO 类库中,提供了 SocketChannel 和 ServerSocketChannel 用于非阻塞 I/O 操作。类似于 NIO 的 Channel,Netty 提供了自己的 Channel 和其子类实现。

2017-11-06 09:48:35

阅读数:192

评论数:0

Netty 权威指南笔记(五):ByteBuf 源码解读

Java 本身提供了 ByteBuffer 类,为什么 Netty 还要搞一个 ByteBuf 类呢?因为 ByteBuffer 类有着许多缺点: 1. ByteBuffer 长度固定,无法动态伸缩。 2. ByteBuffer 只有一个位置指针 position,读写的时候需要手工调用 fli...

2017-11-03 14:04:10

阅读数:305

评论数:0

Netty 权威指南笔记(四):架构剖析

对 Netty 的架构进行剖析,学习其设计,便于在今后的架构设计中,设计出高性能、高可靠、可扩展的产品。

2017-11-02 12:54:04

阅读数:222

评论数:0

Netty 权威指南笔记(三):TCP 粘包和拆包

TCP 是一个“流”协议,所谓“流”就是没有界限的一串数据。大家可以想像河流里的水,期间并没有分界线。TCP 底层并不了解上层业务数据的具体含义,它会根据 TCP 缓冲区的实际情况进行包的划分。所以,在业务上,一个完整的包可能会被 TCP 拆分成多个包进行发送,也有可能把多个小的包,封装成一个大的...

2017-11-01 15:33:07

阅读数:163

评论数:0

《深入理解 Java 内存模型》笔记总结

简单的说,内存模型描述了某个程序的可能行为。内存模型包含一组规则,规定了一个线程的写操作何时对另一个线程可见。在程序行为满足这些规则的情况下,JVM 可以自由地进行代码转换,比如重排序和非必要的同步移除,代码转换往往是为了提升性能。

2017-10-31 10:29:14

阅读数:170

评论数:0

Netty 权威指南笔记(二):Java NIO 和 Netty 对比

Netty 是业界流行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都说首屈一指的,也已经得到了成百上千商用项目的验证。Netty 框架都有什么优点呢? 1. API 使用简单,开发门槛低。 2. 功能强大,预置多种编解码功能,支持多种主流协议。 3. 定制能力强,...

2017-10-30 15:29:22

阅读数:1601

评论数:1

Netty 权威指南笔记(一):网络 I/O 模型和 Java NIO 入门

网络 I/O 模型和 Java NIO 入门Java I/O 模型的实现离不开底层操作系统的支持,所以这里先讲一下 Linux 网络 I/O 模型。Linux 网络 I/O 模型简介同步阻塞 I/O 模型最常见的模型是

2017-10-29 15:58:30

阅读数:410

评论数:0

Spring 框架学习(四):AOP

Aspect 是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点。从关注点中分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使得解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑代码中不再含有针对特定领域问题代码的调用,业务领域同特定领域问题的关系通过切面来封装、维护,这...

2017-10-26 15:09:37

阅读数:166

评论数:0

Spring 框架学习(三):IoC 容器

IoC 容器的核心是依赖反转模式。许多应用都是由两个或多个类通过彼此的合作来实现业务逻辑的,这是的每个对象都需要与其合作对象的引用。如果这个获取过程要靠自己实现,那将导致代码高度耦合并且难以测试。在 Spring 中通过把依赖对象的获取交给 IoC 容器来完成,在解耦代码的同时提高了代码的可测试性。

2017-10-25 11:15:25

阅读数:211

评论数:0

Spring 框架学习(二):Spring 应用配置文件讲解

初学 Spring 的时候,只是照猫画虎,对于每一项配置的由来并不十分了解。这里,我们深入了解一下,这些配置都起到了什么作用?

2017-10-22 10:29:12

阅读数:151

评论数:0

Spring 框架学习(一):设计理念、整体架构

总结一下,Spring 的设计理念是: 1. IoC 控制反转:降低了对象之前的耦合关系,简化了应用的开发。 2. AOP 面向切面编程:方便以动态的、非侵入的方式,增强服务的功能。 3. 面向接口编程:作为平台,核心功能之外服务,都可以选择不同的技术实现。

2017-10-20 14:21:39

阅读数:403

评论数:0

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