记录一次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、字节的几位高阶研发/架构,专注技术分享。

专题推荐

Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。
作者:闪电侠,《跟闪电侠学 Netty》已出版了。书的前半部分是掘金小册中的内容:通过一个完整的 IM 项目入门 Netty;后半部分用了较大的篇幅来介绍 Netty 的底层原理,也会穿插讲一些源码阅读的思路,希望能够帮助到你。
13篇文章21840阅读量
Out of memory (OOM) 是一种操作系统或者程序已经无法再申请到内存的状态。经常是因为所有可用的内存,包括磁盘交换空间都已经被分配了。OOM的官方解释是:Understand the OutOfMemoryError Exception,根据HeapDump性能社区专属讲师公与的总结,常见的OOM有以下10种(其中OOM Killer是操作系统层面的概念)。
11篇文章12748阅读量