RSS

Posts in 2021

  • getty 开发日志

    Monday, January 11, 2021 in 技术分享

    0 说明 getty是一个go语言实现的网络层引擎,可以处理TCP/UDP/websocket三种网络协议。 2016年6月我在上海做一个即时通讯项目时,接口层的底层网络驱动是当时的同事sanbit写的,原始网络层实现了TCP Server,其命名规范学习了著名的netty。当时这个引擎比较简洁,随着我对这个项目的改进这个网络层引擎也就随之进化了(添加了TCP Client、抽象出了 TCP connection 和 TCP session),至2016年8月份(又添加了websocket) …

    更多

  • dubbo-go 中如何实现远程配置管理?

    Monday, January 11, 2021 in 技术分享

    之前在 Apache/dubbo-go(以下简称 dubbo-go )社区中,有同学希望配置文件不仅可以放于本地,还可以放于配置管理中心里。那么,放在本地和配置管理中心究竟有哪些不一样呢? 放在本地,每次更新需要重启,配置文件管理困难,无法做到实时更新即刻生效。此外,本地文件还依赖人工版本控制,在微服务的场景下,大大的增加了运维的成本与难度。 而配置管理中心提供了统一的配置文件管理,支持文件更新、实时同步、统一版本控制、权限管理等功能。 目标 基于以上几个背景, …

    更多

  • dubbo-go tps limit

    Monday, January 11, 2021 in 技术分享

    前言 Apache Dubbo是由阿里开源的一个RPC框架,除了基本的RPC功能以外,还提供了一整套的服务治理相关功能。目前它已经是Apache基金会下的顶级项目。 而dubbogo则是dubbo的go语言实现。 最近在dubbogo的todo list上发现,它还没有实现TPS Limit的模块,于是就抽空实现了这个部分。 TPS limit实际上就是限流,比如说限制一分钟内某个接口只能访问200次,超过这个次数,则会被拒绝服务。在Dubbo的Java版本上,只有一个实现,就 …

    更多

  • Dubbo Go 踩坑记

    Monday, January 11, 2021 in 技术分享

    扯淡 前尘 由于我的一个项目需要做公司用户鉴权,而组内其他小伙伴刚好有一个 dubbo 的鉴权 rpc ,一开始我是打算直接的读 redis 数据然后自己做解密。工作进行到一半,由于考虑到如果以后这个服务有任何变动,我这边要有联动行为,所以改用 go 来调用 dubbo 的 rpc ,于是我在 github 上找到了 雨神 的 dubbogo (PS: 这个是 dubbo-go 前身)。不得不说,雨神是热心的人儿啊,当时还帮着我调试代码。最后也是接入了一个阉割版的吧,主要是当时 hessian2 …

    更多

  • Dubbo Go 的前世今生

    Monday, January 11, 2021 in 技术分享

    dubbo-go 是目前 Dubbo 多语言生态最火热的项目。dubbo-go 最早的版本应该要追溯到 2016 年,由社区于雨同学编写 dubbo-go 的初版。当时很多东西没有现成的轮子,如 Go 语言没有像 netty 一样的基于事件的网络处理引擎、 hessian2 协议没有 Go 语言版本实现,加上当时 Dubbo 也没有开始重新维护。所以从协议库到网络引擎,再到上层 dubbo-go ,其实都是从零开始写的。 在 2018 年,携程开始做 Go 语言的一些中间件以搭建内部的 Go 语 …

    更多

  • Dubbo Go 快速开始

    Monday, January 11, 2021 in 技术分享

    环境 Go编程环境 启动zookeeper服务,也可以使用远程实例 从服务端开始 第一步:编写 Provider 结构体和提供服务的方法 https://github.com/dubbogo/dubbo-samples/blob/master/golang/helloworld/dubbo/go-server/app/user.go 编写需要被编码的结构体,由于使用 Hessian2 作为编码协议,User 需要实现 JavaClassName 方法,它的返回值在dubbo中对 …

    更多

  • Dubbo Go 回顾与展望

    Monday, January 11, 2021 in 技术分享

    Dubbo 是阿里于 2011 年开源的一款高性能 RPC 框架,在 Java 生态中具有不小的影响力。2019年5月21日,Dubbo 从 Apache 软件基金会毕业,成为 Apache 顶级项目。目前,毕业后的 Dubbo 项目的生态中已经正式官宣引入了 Go 语言,发布了 Dubbogo 项目。本文即是对 Dubbogo 这一项目的完整回顾与真实展望。由蚂蚁金服中间件技术专家于雨和携程基础中台研发部工程师方银城合作完成。 一 Dubbogo 整体框架 先介绍一下 dubbogo 的缘起, …

    更多

  • Dubbo Go 发布

    Monday, January 11, 2021 in 技术分享

    5 月 21 日,经过一年多的孵化,Apache Dubbo 从 Apache 软件基金会毕业,成为 Apache 顶级项目。 Dubbo 是阿里于 2011 年开源的一款高性能 RPC 框架,在 Java 生态中具有不小的影响力。当初经历过一段被外界诟病的“停止维护”灰暗时光,后来在 2017 年 Dubbo 浪子回头,官方宣布重新重点维护。 重新启航的 Dubbo 将首要目标定位于重新激活社区,赢回开发者的信任,并且逐渐将 Dubbo 打造成一个国际化与现代化的项目,目前距离宣布重启已经过了 …

    更多

  • Dubbo Go 中 metrics 的设计

    Monday, January 11, 2021 in 技术分享

    最近因为要在 Apache/dubbo-go(以下简称 dubbo-go )里面实现类似的这个 metrics 功能,于是花了很多时间去了解现在 Dubbo 里面的 metrics 是怎么实现的。该部分,实际上是被放在一个独立的项目里面,即 metrics ,见 https://github.com/flycash/dubbo-go/tree/feature/MetricsFilter 下 metrics 子目录。 总体上来说,Dubbo 的 metrics 是一个从设计到实现都非常优秀的模块, …

    更多

Posts in 2020

  • Dubbo-Api-Docs -- Apache Dubbo文档展示&测试工具

    Tuesday, December 22, 2020 in 技术分享

    Dubbo-Api-Docs 背景 Swagger 是一个规范和完整的前端框架,用于生成,描述,调用和可视化 RESTful 风格的 Web 服务. Swagger 规范也逐渐发展成为了 OpenAPI 规范. Springfox 是一个集成了Swagger,基于 Sring MVC/Spring Webflux 实现的一个 Swagger 描述文件生成框架,通过使用它定义的 一些描述接口的注解自动生成Swagger的描述文件, 使 Swagger 能够展示并调用接口. 相信很多人都听说和使用 …

    更多