RSS

Posts in 2021

  • 3.0.1

    Friday, July 02, 2021 in 版本发布

    优化 重构服务自省映射关系,支持地址迁移时直接配置上游应用名 为 Spring 扫描添加缓存 优化配置覆盖逻辑 支持 Servlet 环境下控制 Dubbo 生命周期 添加 ServiceListener 用于监听 ServiceConfig 优化方法回调参数设置 Bug 修复 启用强制校验 更正多注册中心情况下,一个注册中心启动时无地址就销毁的逻辑 移除冗余的日志输出 忽略无效的 MetadataReportConfig 修复消费端启动时 NPE 的情况 修复若干和低版本兼容问题 修复若 …

    更多

  • 应用级服务发现

    Wednesday, June 02, 2021 in 技术分享

    1 服务发现(Service Discovery) 概述 从 Internet 刚开始兴起,如何动态感知后端服务的地址变化就是一个必须要面对的问题,为此人们定义了 DNS 协议,基于此协议,调用方只需要记住由固定字符串组成的域名,就能轻松完成对后端服务的访问,而不用担心流量最终会访问到哪些机器 IP,因为有代理组件会基于 DNS 地址解析后的地址列表,将流量透明的、均匀的分发到不同的后端机器上。 在使用微服务构建复杂的分布式系统时,如何感知 backend 服务实例的动态上下线,也是微服务框架最 …

    更多

  • dubbo-go 白话文

    Saturday, February 20, 2021 in 技术分享

    一、前言 本文基于 dubbogo 1.5.4 版本 最近开始参与 dubbogo 的一些开发测试,之前都是直接拿 samples 的例子验证功能,而这次为了复现一个功能问题,打算从零开始搭建一个 dubbo-go 和 dubbo 调用的工程,踩到了一些新人使用 dubbogo 的坑,把这个过程记录下供大家参考。 通过本文你可以了解到: 如何常规配置 dubbogo 消费方去调用 dubbo 和 dubbogo 服务提供方 通过一个实际的 BUG 介绍解决问题的思路 二、解决问题 2.1 …

    更多

  • 分布式事务框架 seata-golang 通信模型详解

    Friday, January 15, 2021 in 技术分享

    简介 Java 的世界里,大家广泛使用一个高性能网络通信框架 —— netty,很多 RPC 框架都是基于 netty 来实现的。在 golang 的世界里,getty 也是一个类似 netty 的高性能网络通信库。getty 最初由 dubbo-go 项目负责人于雨开发,作为底层通信库在 dubbo-go 中使用。随着 dubbo-go 捐献给 apache 基金会,在社区小伙伴的共同努力下,getty 也最终进入到 apache 这个大家庭,并改名 dubbo-getty。 18 年的时候, …

    更多

  • dubbogo 3.0:牵手 gRPC 走向云原生时代

    Friday, January 15, 2021 in 技术分享

    自从 2011 年 Dubbo 开源之后,被大量中小公司采用,一直是国内最受欢迎的 RPC 框架。2014 年,由于阿里内部组织架构调整,Dubbo 暂停维护了一段时间,之后随着 Spring Cloud 的面世,两个体系在融合中一起助推了微服务的火热。 不过这世界变化快,自从以 docker 为代表的的容器技术和以 K8s 为代表的容器编排技术登上舞台之后,云原生时代到来了。在云原生时代,不可变的基础设施给原有的中间件带来了不可变的中间件基础设施:gRPC 统一了底层通信层;protobuf …

    更多

  • dubbo-go源码笔记(二)客户端调用过程

    Friday, January 15, 2021 in 技术分享

    前言 有了上一篇文章《dubbo-go 源码笔记(一)Server服务暴露过程详解》 的铺垫,可以大致上类比客户端服务类似于服务端启动过程。其中最大的区别是服务端通过zk注册服务,发布自己的ivkURL并订阅事件开启监听;而服务端应该是通过zk注册组件,拿到需要调用的serviceURL,更新invoker并重写用户的RPCService,从而实现对远程过程调用细节的封装。 1. 配置文件和客户端源码 1.1 client配置文件 helloworld提供 …

    更多

  • 都已经十岁的 Apache Dubbo,还能再乘风破浪吗?

    Thursday, January 14, 2021 in 技术分享

    纵观中国开源历史,你真的没法找到第二个像 Dubbo 一样自带争议和讨论热度的开源项目。 一方面,2011 年,它的开源填补了当时生产环境使用的 RPC 框架的空白,一发布就被广泛采用;另一方面,它经历了停止维护、重启维护后捐献给 Apache 基金会、接着又以顶级项目的身份毕业。 面对多疑的开发者,在云原生时代,Apache Dubbo 将如何延续当前光芒? 今年是 Dubbo 从 Apache 基金会毕业的一周年,同时也是推进 Dubbo 3.0,即全面拥抱云原生的重要一年。 …

    更多

  • 记一次在 mosn 对 dubbo、dubbo-go-hessian2 的性能优化

    Thursday, January 14, 2021 in 技术分享

    背景 蚂蚁内部对 Service Mesh 的稳定性和性能要求是比较高的,内部 mosn 广泛用于生产环境。在云上和开源社区,RPC 领域 dubbo 和 spring cloud 同样广泛用于生产环境,我们在 mosn 基础上,支持了 dubbo 和 spring cloud 流量代理。我们发现在支持 dubbo 协议过程中,经过 Mesh 流量代理后,性能有非常大的性能损耗,在大商户落地 Mesh 中也对性能有较高要求,因此本文会重点描述在基于 Go …

    更多

  • 解构 Dubbo-go 的核心注册引擎 Nacos

    Thursday, January 14, 2021 in 技术分享

    近几年,随着Go语言社区逐渐发展和壮大,越来越多的公司开始尝试采用Go搭建微服务体系,也涌现了一批Go的微服务框架,如go-micro、go-kit、Dubbo-go等,跟微服务治理相关的组件也逐渐开始在Go生态发力,如Sentinel、Hystrix等都推出了Go语言版本,而作为微服务框架的核心引擎–注册中心,也是必不可缺少的组件,市面已经有多款注册中心支持Go语言,应该如何选择呢?我们可以对目前主流的支持Go语言的注册中心做个对比。 根据上表的对比我们可以从以下几个维度得出结论: …

    更多

  • 涂鸦智能 dubbo-go 亿级流量的实践与探索

    Thursday, January 14, 2021 in 技术分享

    dubbo 是一个基于 Java 开发的高性能的轻量级 RPC 框架,dubbo 提供了丰富的服务治理功能和优秀的扩展能力。而 dubbo-go 在 java 与 golang 之间提供统一的服务化能力与标准,是涂鸦智能目前最需要解决的主要问题。本文分为实践和快速接入两部分,分享在涂鸦智能的 dubbo-go 实战经验,意在帮助用户快速接入 dubbo-go RPC 框架,希望能让大家少走些弯路。 另外,文中的测试代码基于 dubbo-go版本 v1.4.0。 dubbo-go …

    更多