dubbo的简单使用

环境搭建

安装ZK

以zk为注册中心,windows的安装看下面这个链接就可以
https://blog.csdn.net/qq_33316784/article/details/88563482

POM引入

pom引入就不一一介绍了 我会把源码放到git上,这里就看下下面这俩吧 代表着dubbo使用的是dubbo,序列化使用的是hessian

 <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-remoting-netty4</artifactId>
                <version>${dubbo.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.dubbo</groupId>
                        <artifactId>dubbo-remoting-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-serialization-hessian2</artifactId>
                <version>${dubbo.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.dubbo</groupId>
                        <artifactId>dubbo-common</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

代码

整体目录结构如下
在这里插入图片描述

API部分

public interface HelloService {
    String  sayHello(String name);
}

provider

配置文件

跟eureka差不多 都是定义注册时候的一些名称

dubbo.application.name=service-provider4
dubbo.protocol.name=rmi
dubbo.protocol.port=20889
dubbo.application.owner=zimu

启动类

需要注册到zk,并且扫描配置文件和实际提供的文件夹

 @Configuration
    @EnableDubbo(scanBasePackages = "com.demo.service.impl")
    @PropertySource("classpath:/dubbo-provider.properties")
    static  class  ProviderConfiguration{
        @Bean
        public RegistryConfig   registryConfig(){
            RegistryConfig  registryConfig  = new RegistryConfig();
            registryConfig.setAddress("zookeeper://127.0.0.1:2181?timeout=10000");
            //registryConfig.setTimeout(10000);
            return   registryConfig;
        }
    }

service

继承刚刚的API实现该接口

//这个service 是dubbo的 代表服务的提供者
@Service
public class HelloServiceImpl   implements HelloService {
    @Override
    public String sayHello(String name) {
        System.out.println(name);
        return "hello:"+name;
    }

消费者

配置文件

需要配置zk的地址和服务的名称

dubbo.application.name=service-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.consumer.timeout=4000

dubbo.application.qosEnable=true
dubbo.application.qosPort=33333
dubbo.application.qosAcceptForeignIp=false

启动类

扫描配置文件 扫描实际消费的文件夹

@Configuration
    @PropertySource("classpath:/dubbo-consumer.properties")
    @ComponentScan(basePackages = "com.demo.bean")
    @EnableDubbo
    static  class  ConsumerConfiguration{

    }

消费的service

@Component
public class ComsumerComponet {
    @Reference
    private HelloService helloService;
    public String  sayHello(String name){
        return  helloService.sayHello(name);
    }

}

运行

服务提供者 收到消息
在这里插入图片描述

消费者接收到返回的消息
在这里插入图片描述下面这个图是ZK的 表明注册提供者成功注册
在这里插入图片描述
代码地址
https://gitee.com/anlushan/dubbodemo.git


版权声明:本文为u010215318原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。