记录一次dubbo项目实战
一、案例说明存在2个系统,A系统和B系统,A系统调用B系统的接口获取数据,用于查询用户列表。
你为什么吃不透Dubbo源码?这样看既不浪费时间又高效
对于Dubbo源码,首先,你需要先能在项目中引入Dubbo,以及能够使用基本功能,基于这个基础之上,正确的阅读顺序应该是这样
从一个Demo说起Dubbo3
简介2017年的9月份,阿里宣布重启Dubbo的开发维护,并且后续又将Dubbo捐献给了Apache,经过多年的发展已经发布到3.X版本了,Dubbo重启维护之后是否有值得我们期待的功能呢,下面就来看看吧。Apache Dubbo 是一款微服务框架,为大规模微服务实践提供高性能 RPC 通信、流
Dubbo服务治理之灰度发布方案(版本发布控制影响范围)
方案背景背景:基于Dubbo服务的治理,是否可以支持业务级别的灰度发布、是否基于业务参数的路由转发。例如以GIS为例,当发布一个新版本时,是否可以以按照解析地址或合作伙伴来区分,版本发布之初,只希望地址为:广东省的解析请求发送到新版本,而其他的地址请求还是使用旧版;或者根据合作伙伴例如UCP(优享
源码分析Dubbo tps过滤器器实现原理
本文将重点分析一下dubbo限流的另外一个方式,tps过滤器。@Activate(group = Constants.PROVIDER, value = Constants.TPS_LIMIT_RATE_KEY)过滤器作用服务调用tps过滤器使用场景对Dubbo服务提供者实现限流(tps
源码分析Dubbo 泛化调用与泛化实现原理
本文将重点分析Dubbo的两个重要特性:泛化调用与泛化实现。泛化引用:通常是服务调用方没有引入API包,也就不包含接口中的实体类,故服务调用方只能提供Map形式的数据,由服务提供者根据Map转化成对应的实体。泛化实现泛化实现,是指服务提供者未引入API包,也就不包含接口用于传输数据的实体
源码分析Dubbo服务提供者、服务消费者并发度控制机制
本文将详细分析<dubbo:service executes=""/>与<dubbo:reference actives = “”/>的实现机制,深入探讨Dubbo自身的保护机制。源码分析ExecuteLimitFilter@Activate(gro
源码分析Dubbo服务调用日志(accesslog参数)实现原理
谈到服务调用日志,大家恐怕第一想到就是如果开启了这个参数,会影响性能。那真实的情况是怎么样了?性能损耗到底有多大呢?在实践中我们如何使用该功能呢?本文将详细分析Dubbo accesslog实现原理。AccessLogFilter概述过滤器作用记录调用日志。使用场景记录服务提供者端
源码分析Dubbo异步调用与事件回调机制
本文将详细分析Dubbo服务异步调用与事件回调机制。异步调用与事件回调机制TTY异步回调事件回调异步调用与事件回调机制在Dubbo中,引入特定的过滤器FutureFilter来处理异步调用相关的逻辑,其定义如下:1@Activate(group = Constants.CO
源码分析Dubbo监控中心实现原理
Dubbo监控的基本实现原理就是在服务调用时收集服务调用并发度、服务响应时间,然后以一定频率向监控中心汇报统计数据。MonitorFilter过滤器过滤器作用监控过滤器,向监控中心汇报服务调用数据。使用场景搭建监控中心监控Dubbo服务调用。阻断条件非阻断过滤器。Monito
Dubbo Filter机制概述
从上文可知,在服务的调用或消费端发送请求命令中,Dubbo引入过滤器链机制来实现功能的包装(或扩展)。Dubbo很多功能,例如泛化调用、并发控制等都是基于Filter机制实现的,系统默认的Filter在/dubbo-rpc-api/src/main/resources/META-INF/dubbo/
源码分析Dubbo服务调用-服务提供者如何处理请求命令与再谈Invoker
本文将重点剖析服务调用流程,也就是消费端通过网络发起RPC服务调用时,服务提供者是如何进行服务请求响应的。Dubbo服务调用流程了解过Netty网络编程的童鞋们应该知道,netty的命令处理基于ChannelHandler(事件处理链),编码、网络传输、解码、处理等,下面是关于NettyServ
源码分析kryo对象序列化实现原理
本文主要梳理Kryo序列化基本实现。重点剖析Kryo#writeClassAndObject、Kryo#readClassAndObject方法。Kryo对象序列化原理kryo对象序列化入口为Kryo的writeClassAndObject。Kryo#writeClassAndObject
源码分析kryo对java基础数据类型与Stirng类型的序列化反序列化机制
kryo序列化原理用过dubbo的开发人员,在选取序列化时都会根据“经验”来选kryo为序列化,其原因是序列化协议非常高效,超过java原生序列化协议、hessian2协议,那kryo为什么高效呢?序列化协议,所谓的高效,通常应该从两方面考虑:序列化后的二进制序列大小。(核心)序列化、反序
Dubbo序列化概述
Dubbo序列化支持java、compactedjava、nativejava、fastjson、fst、hessian2、kryo,其中默认hessian2。其中java、compactedjava、nativejava属于原生java的序列化。整个Dubbo序列化的类设机机器优雅,职责单一,其
源码分析Dubbo编码解码实现原理(Dubbo协议)
本节主要介绍了Dubbo协议的编码方式,涉及协议头、协议体具体的编码规则,默认使用Dubbo协议,其核心类图如下:在Dubbo整个框架中,codec2的可选值为dubbo、thrift,本文将重点分析Dubbo协议的编码解码。本文主要以Dubbo协议为例进行展开,其他通信方式,例如Thrift
源码分析Dubbo网络通信NettyClient实现原理
在源码分析Dubbo通讯篇之网络核心类一文中已给出Dubbo netty client的启动流程,如下图:以Dubbo协议为例,DubboProtocol#refer中,在创建Invoker时,通过getClient方法,开始Client(连接的)创建过程,先重点看一下: 1private
源码分析Dubbo NettyServer与HeaderExchangeServer
本文主要分析一下NettyServer,HeaderExchangeServer实现细节。NettyServerNettyServer整个类图如下:首先从全貌上大概看一下NettyServer对象所持有的属性:AbstractPeer1、private final ChannelHa
源码分析Dubbo线程池实现原理
本文主要分析Dubbo线程池的构建过程,主要介绍官方文档中有关于ThreadPool的种类:fixed固定大小线程池,启动时建立线程,不关闭,一致持有。(缺省)cached缓存线程池,空闲一分钟,线程会消费,需要时重新创建新线程。limited可伸缩线程池,但池中的线程数只会增长不会收
源码分析Dubbo事件派发机制
本节将主要学习Dubbo是如何使用Netty来实现网络通讯的。从官网我们得知,Dubbo协议是使用单一长连接来进行网络传输,也就是说服务调用方持久与服务提供者建立一条连接,所有的服务调用调用信息通过。一条TCP连接进行传输,在网络层至少要考虑如下问题:服务端,客户端网络通讯模型(线程模型)

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

内存泄漏是指无用对象持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。随着垃圾回收器活动的增加以及内存占用的不断增加,程序性能会逐渐表现出来下降,极端情况下,会引发OutOfMemoryError导致程序崩溃。本期总结了社区所有的内存泄漏实战案例,同样也是干货+实战,帮你攻克内存泄漏问题!
10篇文章22014阅读量
程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得程序在正常运行的前提下,获得更高的用户体验和运行效率。
13篇文章22306阅读量