快速上手 dubbo-go

2022-09-01 14:06:24 浏览数 (1)

每次技术调研总会发现自己学不动了怎么办?用已有的知识来拓展要学习的新知识就好了~ by LinkinStar 最近需要调研使用 dubbo,之前完全是 0 基础,对于 dubbo 只存在于听说,今天上手实战一把,告诉你如何快速用 go 上手 dubbo PS:以下的学习方式适用于很多新技术

基本概念

首先学习一个技术首先要看看它的整体架构和基本概念,每个技术都有着自己的名词解释和实现方式,如果文档齐全就简单很多。

http://dubbo.apache.org/zh-cn/docs/user/preface/background.html

大致浏览了背景、需求、架构之后基本上有一个大致概念

其实整体架构和很多微服务的架构都是类似的,就是有一个注册中心管理所有的服务列表,服务提供方先向注册中心注册,而消费方向注册中心请求服务列表,通过服务列表调用最终的服务。总的来说 dubbo 将整个过程封装在了里面,而作为使用者的我们来说更加关心业务实现,它帮我们做好了治理的工作。

然后我抓住了几个我想要知道的重点:

  • 注册中心可替换,官方推荐的是 zk
  • 如果有变更,注册中心将基于长连接推送变更数据给消费者,注册中心,服务提供者,服务消费者三者之间均为长连接
  • 基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用
  • 消费者在本地缓存了提供者列表

实际上手

官网文档中也给出如果使用 golang 开发,那么有 https://github.com/apache/dubbo-go 可以用,那么废话不多说,上手实践一把先。因为你看再多,都比不上实践一把来学的快。

环境搭建

大多数教程就会跟你说,一个 helloWorld 需要 zookeeper 环境,但是不告诉你如何搭建,因为这对于他们来说太简单了,而我不一样,我是 0 基础,那如何快速搭建一个需要调研项目的环境呢?最好的方式就是 docker。

代码语言:javascript复制
version: '3'
services:
  zookeeper:
    image: zookeeper
    ports:
      - 2181:2181
  admin:
    image: apache/dubbo-admin
    depends_on:
      - zookeeper
    ports:
      - 8080:8080
    environment:
      - admin.registry.address=zookeeper://zookeeper:2181
      - admin.config-center=zookeeper://zookeeper:2181
      - admin.metadata-report.address=zookeeper://zookeeper:2181
代码语言:javascript复制
version: '3'
services:
  zookeeper:
    image: zookeeper
    ports:
      - 2181:2181
  admin:
    image: chenchuxin/dubbo-admin
    depends_on:
      - zookeeper
    ports:
      - 8080:8080
    environment:
      - dubbo.registry.address=zookeeper://zookeeper:2181
      - dubbo.admin.root.password=root
      - dubbo.admin.guest.password=guest

上面两个 docker-compose 文件一个是官方提供的管理工具,一个包含的是个人修改之后的管理工具,记住这里有个用户名密码是 root-root,看你喜欢

废话不多说,直接创建 docker-compose.yaml 然后 docker-compose up 你就得到了一个环境,棒

0 人点赞