摘要:
Sentinel 触发限流的实现类为 FlowSlot。我们再来简单思考一下,要实现触发限流,至少需要完成如下几件事情: 收集实时调用信息。 设置触发限流规则 根据限流规则与调用信息来决定是否对请求进行限流等。 如何收集实时调用信息在前面的文章中已详细介绍,请带着上述问题开始本节的探讨。 1、初始 阅读全文
摘要:
前言 负载均衡是指在集群中,将多个数据请求分散在不同单元上进行执行,主要为了提高系统容错能力和加强系统对数据的处理能力。 在 Dubbo 中,一次服务的调用就是对所有实体域 Invoker 的一次筛选过滤,最终选定具体调用的 Invoker。首先在 Directory 中获取全部 Invoker 列 阅读全文
摘要:
1.调优的目的 1.控制GC的行为:GC是一个后台处理,但是它也是会消耗系统性能的,因此经常会根据系统运行的程序的特性来更改GC行为。 2.控制JVM堆栈大小:JVM在内存分配上不需要你修改,但是当你的程序新生代对象在某个时间段产生的比较多的时候,就需要控制新生代的堆大小,同时,还要需要控制总的JV 阅读全文
摘要:
SPI(Service Provider Interface) 本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。 在Java中SPI是被用来设计给服务提供商做插件使用的。基于策略模式 来实现动态加载的机制 。我们在程序只定义一 阅读全文
摘要:
SPI 全称为 Service Provider Interface,是一种服务发现机制。 当程序运行调用接口时,会根据配置文件或默认规则信息加载对应的实现类。所以在程序中并没有直接指定使用接口的哪个实现,而是在外部进行装配。 要想了解 Dubbo 的设计与实现,其中 Dubbo SPI 加载机制是 阅读全文
摘要:
线程作为操作系统中最少调度单位,在当前系统的运行环境中,一般都拥有多核处理器,为了更好的充分利用 CPU,掌握其正确使用方式,能更高效的使程序运行。同时,在 Java 面试中,也是极其重要的一个模块。 线程简介 一个独立运行的程序是一个进程,一个进程中可以包含一个或多个线程,每个线程都有属于自己的一 阅读全文