01 如何使用Dubbo

目录

一、dubbo能做什么?

二、Java中如何使用dubbo?

1、定义服务

2、实现并注册服务

3、订阅服务


一、dubbo能做什么?

        dubbo能够提供高性能RPC调用,服务自动发现与注册,提高系统可伸缩性,可视化服务治理。

二、Java中如何使用dubbo?

1、定义服务

创建子模块(以下称api模块),定义服务接口与实体(实现序列化)

//定义服务接口
public interface DemoService {
   HelloRsp sayHello(HelloReq req);
}
//请求与响应实体
@Data
public class HelloReq implements Serializable {
    private String msg;
}
@Data
public class HelloRsp implements Serializable {
    private String msg;

}

2、实现并注册服务

  创建服务提供方(provider),依赖api模块;

  实现服务接口DemoService

import org.apache.dubbo.config.annotation.Service;

// dubbo 注解service,version指定版本
@Service(version = "1.0")
public class DemoServiceImpl implements DemoService {

    @Override
    public HelloRsp sayHello(HelloReq req) {
        HelloRsp rsp = new HelloRsp();
        rsp.setMsg(req.getMsg() + " reply: Hello!")
        return rsp ;
    }
}

   配置yml注册服务

dubbo:
  application:
    name: provider
  registry:
    address: zookeeper://ip:port?backup=backip1:backport1,backip2:backport2
    timeout: 6000
  #元中心地址
  metadata-report:
    address: zookeeper://ip:port?backup=backip1:backport1,backip2:backport2
  protocol:
    #协议名称
    name: dubbo
    port: 20880
  scan:
    base-packages: com.demo.service

3、订阅服务

  创建服务消费者(consumer),依赖api模块;

  配置yml发现服务

dubbo:
  application:
    name: consumer
  registry:
    address: zookeeper://ip:port?backup=backip1:backport1,backip2:backport2

  注入代理并调用


public class Test{
        
    //对应的version
    @Reference(version = "1.0", parameters = {"unicast", "false"})
    private DemoService demoService;

    public void run() throws Exception {
        System.out.println(demoService.sayHello());
    }
}
### DubboZookeeper的集成与使用 Dubbo 是一个高性能、轻量级的开源分布式服务框架,而 Zookeeper 是一个分布式协调服务,常用于服务注册与发现。在 Dubbo 中,Zookeeper 被广泛用作其注册中心,实现服务提供者与消费者的动态注册和发现。 #### 配置服务提供者 在 Dubbo 中,服务提供者需要向 Zookeeper 注册自身提供的服务。可以通过以下配置来实现: ```xml <!-- 指定Zookeeper注册中心 --> <dubbo:registry address="zookeeper://localhost:2181" /> <!-- 应用名称 --> <dubbo:application name="dubbo-provider" /> <!-- 暴露的服务接口 --> <dubbo:service interface="com.example.ServiceAPI" ref="serviceImpl" /> <!-- 服务实现 --> <bean id="serviceImpl" class="com.example.ServiceAPIImpl" /> ``` 在上述配置中,`dubbo:registry` 标签指定了 Zookeeper 的地址,`dubbo:application` 标签定义了应用的名称,`dubbo:service` 标签则用于暴露服务接口[^4]。 #### 配置服务消费者 服务消费者需要从 Zookeeper 获取服务提供者的信息,并调用相应的服务。配置如下: ```xml <!-- 指定Zookeeper注册中心 --> <dubbo:registry address="zookeeper://localhost:2181" /> <!-- 应用名称 --> <dubbo:application name="dubbo-consumer" /> <!-- 引用远程服务 --> <dubbo:reference id="consumerService" interface="com.example.ServiceAPI" /> ``` 在该配置中,`dubbo:reference` 标签用于声明需要引用的远程服务接口,Dubbo 会自动从 Zookeeper 获取服务提供者的信息并进行远程调用[^4]。 #### 使用 Spring Boot 配置 在 Spring Boot 项目中,可以通过 `application.properties` 文件来配置 DubboZookeeper 的集成: ```properties # 设置应用名称 dubbo.application.name=consumer-demo01 # 设置Zookeeper地址 dubbo.registry.address=zookeeper://192.168.2.10:2181 ``` 通过这些简单的配置,Spring Boot 项目就能够轻松地集成 DubboZookeeper,实现服务的注册与发现[^3]。 #### 安装与部署 在开发环境中,可以先安装 ZookeeperDubbo Admin,以便更好地管理和监控服务。Zookeeper 可以在 Windows 或 Linux 系统上安装,而 Dubbo Admin 则可以通过 Maven 构建并部署到 Tomcat 等 Web 容器中[^1]。 #### 示例项目 对于希望快速上手的开发者,可以参考 GitHub 上的示例项目,该项目展示了如何一步步搭建一个使用 Dubbo 结合 Zookeeper 和 Spring 的 Demo 工程。示例项目地址:[https://github.com/bingyue/dubbodemo](https://github.com/bingyue/dubbodemo)[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值