zoukankan      html  css  js  c++  java
  • dubbo学习实践(2)之Dubbo入门Demo

    开篇之前,先来了解下dubbo服务治理与技术架构,直接看图

    image

    dubbo技术架构图:

    image

    1. 新建dubbo项目,目录结构如下

    image

    代码说明:

    1.代码分为Provider(服务提供方)与consumer(服务订阅方)两块
    2.服务提供方Provider提供服务,服务通过接口定义,订阅方也需要引入接口定义,故可以把接口定义拿出来,单独创建项目存放,构建好后,可以放到私有仓库中,供各个相关服务项目引用
    3.dubbo通过动态代理方式,构建服务接口的实例对象进行服务调用
    

    2. 添加dubbo依赖,采用consul做注册中心,默认zookeeper

    image

    3. 服务注册方式,先采用推荐方式xml,没有使用注册中心

    • 在resource文件夹下,创建META-INF.spring文件夹,在文件夹下,创建provider.xml文件

      image

      image

    • 创建service接口及实现

      image

      image

    4. 创建consumer客户端程序,配置好文件,同provider

    • 在resource文件夹下,创建META-INF.spring文件夹,在文件夹下,consumer.xml文件

      image

    • 在程序注入口出,构建IHelloService服务,调用服务方法

      image

    5. 运行provider和consumer

    • Provider:

      image

    • Consumer客户端:

      image

    • 成功调用了helloBoy方法

    6. 使用zookeeper为注册中心

    • 修改配置文件,zookeeper地址:192.168.231.132:2181
    • 修改provider和consumer配置文件:

      image

    • 如果是 zookeeper 集群的话,使用下面的方式
        <dubbo:registry protocol="zookeeper" address="192.168.11.129:2181,192.168.11.137:2181,192.168.11.138:2181"/>
      
    • 运行provider,报错

      image

    • 需要引入curator包(curator-framework和curator-recipes)

      image

      image

    • 运行还报错(zookeeper not connected)

      image
      解决:配置文件,添加超时时间
      image

    • 运行provider成功

      image

    • 运行Consumer成功

      image

    参考文献:
    Dubbo入门到实战:https://segmentfault.com/a/1190000019896723

    Demo代码仓库:
    https://gitee.com/xujk-27400861/springboot-dubbo/

  • 相关阅读:
    go多种uuid生成方式
    go访问mysql基本语法
    go实现分布式唯一ID-snowflake(雪花算法)
    指定时间生成cron表达式
    zookeeper注册与发现
    短地址服务(二)
    java-redis
    短地址服务(一)
    cron表达式详解
    以后本blog所有内容全部转移,并在自建blog更新
  • 原文地址:https://www.cnblogs.com/kunwn/p/14608879.html
Copyright © 2011-2022 走看看