RSS

Posts in 2021

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

    Thursday, January 14, 2021 in Golang

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

    更多

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

    Thursday, January 14, 2021 in Golang

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

    更多

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

    Thursday, January 14, 2021 in 社区动态

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

    更多

  • Native Image

    Thursday, January 14, 2021 in 生态集成

    dubbo项目支持native-image 概述 ​ 本文档将介绍将dubbo项目接入GraalVM,进行native-image编译为二进制的方式,以及我们为了达到这个目的做了哪些工作。 ​ GraalVM的核心就是Graal编译器,一款优秀的JIT编译器。它即可以当作JIT编译器使用,也可以用作提前编译的静态编译器。它将完成编译的主要工作。 ​ 关于GraalVm …

    更多

  • Go 版本入 Dubbo 生态一周年

    Thursday, January 14, 2021 in Golang

    去年 5 月,阿里开源的高性能 RPC 框架 Dubbo 从 ASF 毕业并晋升顶级项目,同时,还宣布 Go 语言版本的 Dubbo-go 正式加入 Dubbo 官方生态。 经过一年的发展, Dubbo-go 在技术和社区运营方面都已经有了不错的成绩。Dubbo-go 是 Dubbo 的完整 Go 语言实现,在功能实现和技术路径上与 Dubbo 有不同程度的对标,项目团队预计很快便可以追平 Java 版的功能。当然,也是因为基于 Go 语言开发,Dubbo-go 更易上手, …

    更多

  • Dubbo-go应用维度注册模型

    Thursday, January 14, 2021 in Golang

    Dubbo 3.0 将至。其最重要的一点就是服务自省,其基础即是应用维度的注册模型,作为目前与 Dubbo 在功能上完全对齐的 Dubbo-go,已于 本年【2020 年】7 月份发布了其 v1.5.0 版本,实现了该模型,为年底实现与 Dubbo 3.0 对齐的新版本奠定了基础。 Dubbo-go 作为 Dubbo 的 Go 语言版本,因跨语言之故,二者针对同一模型的实现必然有较大差异,故本文注重讨论 Dubbo-go 社区自身对该模型的理解和实现,以及其与 Dubbo 之间的差异。 1 …

    更多

  • dubbo-go-hessian2 v1.7.0

    Thursday, January 14, 2021 in 版本发布

    Dubbo-go-hessian2 v1.7.0已发布,详见 https://github.com/apache/dubbo-go-hessian2/releases/tag/v1.7.0, 以下对这次更新内容进行详细整理。 另外v1.6.3 将 attachment 类型由 map[string]stiring 改为map[string]interface{} 导致版本不兼容问题,这部分已还原,后续的计划是将dubbo协议的request/response对象整体迁移到dubbogo项目中进行 …

    更多

  • dubbo-go-hessian2 v1.6.0

    Thursday, January 14, 2021 in 版本发布

    1. 增加缓存优化 dubbo-go-hessian2 在解析数据的数据大量使用到了 struct 的结构信息,这部分信息可以缓存起来反复利用,使得性能提升了一倍。优化过程记录可以详细阅读《记一次对 dubbo-go-hessian2 的性能优化》. 对应 pr #179,作者 micln。 2. string 解析性能优化 由于 hessian ( dubbo 序列化协议,下称:hessian )对 string 的定义是16 bit 的 unicode 的 UTF-8 表示形式,字符长度表示 …

    更多

  • dubbo-go 中将 Kubernets 原⽣作为注册中⼼的设计和实现

    Thursday, January 14, 2021 in Golang

    今天这篇⽂章将会介绍 dubbo-go 将 Kubernetes 作为注册中⼼的服务注册的初衷、设计⽅案,以及具体实现。 到⽬前为⽌该⽅案的实现已经被合并到 dubbo-go 的 master 分⽀。具体实现为关于 Kubernetes 的 PullRequest 。 Kubernetes管理资源的哲学 Kubernetes 作为容器集群化管理⽅案管理资源的维度可主观的分为服务进程管理和服务接⼊管理。 服务实例管理,主要体现⽅式为 Pod 设计模式加控制器模式,控制器保证具有特定标签 ( …

    更多

  • dubbo-go 中 REST 协议实现

    Thursday, January 14, 2021 in Golang

    什么是 REST 协议 REST 是 REpresentational State Transfer(表述性状态转移)的简写,是一种软件架构风格。虽然 REST 架构风格不是一定要基于 HTTP 协议进行传输,但是因为 HTTP 协议的通用性和易用性,现在越来越多的 web 服务采用基于 HTTP 协议实现 RESTful 架构。 在 dubbo-go 中的 REST 协议指的是一种基于 HTTP 协议的远程调用方式。简单的来讲,REST 协议就是把dubbo 服务发布成 RESTful …

    更多