用隧道协议实现不同dubbo集群间的透明通信

用隧道协议实现不同dubbo集群间的透明通信 前言 笔者最近完成了一个非常有意思的隧道机制(已在产线运行),可以让注册到不同zookeeper之间的dubbo集群之间能够正常进行通信。如下图所示: 例如图中A/B两个网络隔离的集群,两者只能通过专线进行通信。但是对于在里面的应用来说,调用另外一个集群 ... »

Dubbo 就是靠它崭露头角!(身为开源框架很重要的一点)

Hola,我是 yes。 经过了 RPC 核心和 Dubbo 微内核两篇文章后,今天终于要稍稍深入一波 Dubbo 了。 作为一个通用的 RPC 框架,性能是很重要的一环,而易用性和扩展性也极为重要。 简单地、无侵入式地扩展和定制 RPC 各阶段功能是很多团队的述求,Dubbo 就满足了这些需求。 ... »

Solon rpc 1.2.18 发布,突出Rpc特性

Solon 是一个微型的Java RPC开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,3500多次的commit;内核保持0.1m的身材,超高的跑分,良好的使用体验。支持:Rpc、Rest api、Mvc 多种开发模式。 Solon 强调:克制 + 简洁 + 开放的原则;力求:更 ... »

操作系统微内核和Dubbo微内核,有何不同?

你好,我是 yes。 在之前的文章已经提到了 RPC 的核心,想必一个 RPC 通信大致的流程和基本原理已经清晰了。 这篇文章借着 Dubbo 来说说微内核这种设计思想,不会扯到 Dubbo 某个具体细节实现上,和 Dubbo 强相关的内容会在之后的文章写到。 所以今天的重点在微内核,而这个概念我最 ... »

微服务痛点-基于Dubbo + Seata的分布式事务(TCC模式)

前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 对于Seata不太了解的朋友,可以看下我之前写的文章: 微服务开发的最大痛点-分布式事务SEATA ... »

RPC 核心,万变不离其宗

微信搜 「yes的练级攻略」干货满满,不然来掐我,回复【123】一份20W字的算法刷题笔记等你来领。 个人文章汇总:https://github.com/yessimida/yes 欢迎 star ! Hola,我是 yes。 在了解 Dubbo 之前有必要先来剖析一波 RPC ,先搞清 RPC 原 ... »

dobbo QOS 端口占用问题

解决方案 QoS参数可以通过如下方式进行配置 系统属性 -Ddubbo.application.qos.enable=true -Ddubbo.application.qos.port=33333 -Ddubbo.application.qos.accept.foreign.ip=false dub ... »

Dubbo系列之 (七)网络层那些事(2)

辅助链接 Dubbo系列之 (一)SPI扩展 Dubbo系列之 (二)Registry注册中心-注册(1) Dubbo系列之 (三)Registry注册中心-注册(2) Dubbo系列之 (四)服务订阅(1) Dubbo系列之 (五)服务订阅(2) Dubbo系列之 (六)服务订阅(3) Dubbo ... »

从一段 Dubbo 源码到 CPU 分支预测的一次探险之旅

每个时代,都不会亏待会学习的人。 大家好,我是 yes。 这次本来是打算写一篇 RocketMQ 相关文章的,但是被插队了,我也是没想到的。 说来也是巧最近在看 Dubbo 源码,然后发现了一处很奇怪的代码,于是就有了这篇文章,让我们来看一下这段代码,它属于 ChannelEventRunnable ... »

Solon集成(02)- 轻松吃下小馒头 Dubbo

Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 Solon详解(五)- Solon扩展机制之Solon Plugin Solon详解(六)- Sol ... »

Dubbo 高危漏洞!原来都是反序列化惹得祸

前言 这周收到外部合作同事推送的一篇文章,【漏洞通告】Apache Dubbo Provider默认反序列化远程代码执行漏洞(CVE-2020-1948)通告。 按照文章披露的漏洞影响范围,可以说是当前所有的 Dubbo 的版本都有这个问题。 无独有偶,这周在 Github 自己的仓库上推送几行改动 ... »

快来!我从源码中学习到了一招Dubbo的骚操作!

文本分析了Dubbo回声测试功能的实现原理。发现框架在做动态代理的时候神不知鬼不觉的搞了一些事情。使用障眼法,优雅的实现了一些功能,很值得我们学习借鉴。看完之后不由感叹一声:这代码,确实是“骚”。 ... »

dubbo源码解析之负载均衡

在分布式系统中,负载均衡是必不可少的一个模块,dubbo 中提供了五种负载均衡的实现,在阅读这块源码之前,建议先学习负载均衡的基础知识。把看源码当做一个印证自己心中所想的过程,这样会得到事半功倍的效果 以下源码分析基于 dubbo 2.77 版本 类结构 先来看一下这一块的类结构图 大部分算法都是在 ... »

Dubbo源码笔记-服务注册

今天来简单做一下Dubbo服务注册部分源码学习手记。 一、Dubbo配置解析 目前Dubbo最多的用法就是跟Spring集成,既然跟Spring集成,那么,Dubbo对象的实例化都将交由Spring统一处理。而Dubbo配置,对于Spring来说其实就是自定标签。这里Dubbo自定义标签解析类,在D ... »

吐血输出:2万字长文带你细细盘点五种负载均衡策略。

2020年5月15日,Dubbo发布2.7.7版本。其中就包含新增了一个最短响应时间的负载均衡策略。至此Dubbo官方支持了五种负载均衡策略了。本文通过2万余字,对每一个策略都进行了详细分析,进行了多版本之间的对比,从对比中看差异,从差异中学思想。通过对比可以了解各个策略在不断解决bug中的演变。 ... »

Dubbo源码阅读-服务导出

Dubbo服务导出过程始于Spring容器发布刷新事件,Dubbo在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一部分是前置工作,主要用于检查参数,组装URL。第二部分是导出服务,包含导出服务到本地 (JVM),和导出服务到远程两个过程。第三部分是向注册中心注册服务,用于服务 ... »

一文搞明白位运算、补码、反码、原码

在平时看各种框架的源码的过程中,经常会看到一些位移运算,所以作为一个Java开发者是一定掌握位移运算的。 正数位移运算 Java中有三个位移运算: :右移 :无符号右移 我们直接看一下Demo: 乍一眼看到上面Demo的打印结果,你应该是懵逼的,接下来我来解释一下这个结果到底是如何运算出来的。 上面 ... »