zoukankan      html  css  js  c++  java
  • dubbo的使用

    dubbo现在用的也不多,基本都在用spring cloud那一套,所以不详细写这个dubbo了。

    1.zookeeper的安装

    2.demo示例

    我们需要把提供者注册到dubbo注册中心,消费者去订阅

    2.1:新建一个空的项目,先不建module

     2.2:新建提供者(provider)模块

    file->new->module,选择spring initializr

    勾选上web

     新建service及其实现类

    public interface ProviderService {
        String provideSomething();
    }
     
     
    package com.sunsas.provider.service.impl;
    
    import com.sunsas.provider.service.ProviderService;
    import com.alibaba.dubbo.config.annotation.Service;
    import org.springframework.stereotype.Component;
    
    @Component
    //将服务发布出去,注意此Service是dubbo包的
    @Service
    public class ProviderServiceImpl implements ProviderService {
        @Override
        public String provideSomething() {
            return "something";
        }
    }

     引入dubbo依赖

    <!-- 引入spring-boot-starter以及dubbo和curator的依赖 -->
            <dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>0.2.0</version>
            </dependency>

     修改application.properties

    server.port=8082
    # 服务名称,保持唯一
    dubbo.application.name=provider
    # zookeeper地址,用于从中获取注册的服务
    dubbo.registry.address=zookeeper://127.0.0.1:2181
    
    dubbo.scan.base-packages=com.sunsas.provider.service

    appliacation 类加上@EnableDubbo注解

    @EnableDubbo
    @SpringBootApplication
    public class ProviderApplication {
        public static void main(String[] args) {
            SpringApplication.run(ProviderApplication.class, args);
        }
    }

    启动provider项目,注意需要先启动zookeeper。

    2.3:新建消费者(consumer)模块

    file->new->module,选择spring initializr,同样选中web模块,引入dubbo依赖

    <!-- 引入spring-boot-starter以及dubbo和curator的依赖 -->
            <dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>0.2.0</version>
            </dependency>

    修改application.properties

    server.port=8081
    # 服务名称,保持唯一
    dubbo.application.name=consumer
    # zookeeper地址,用于从中获取注册的服务
    dubbo.registry.address=zookeeper://127.0.0.1:2181

    新建service类,这里直接用类,没有实现接口。

    import com.alibaba.dubbo.config.annotation.Reference;
    import com.sunsas.provider.service.ProviderService;
    import org.springframework.stereotype.Service;
    
    @Service
    public class ConsumerService {
        @Reference
        private ProviderService providerService;
    
        public String consumer(){
            return providerService.provideSomething();
        }
    }

    还要复制provider中的ProviderService

    package com.sunsas.provider.service;

    public interface ProviderService {
    String provideSomething();
    }

    新建controller测试接口

    import com.sunsas.comsumer.service.ConsumerService;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    
    @RestController
    public class TestController {
        @Resource
        private ConsumerService consumerService;
    
        @RequestMapping("/test")
        public String test(){
            return consumerService.consumer();
        }
    }

    结构如图:

    发送请求测试

    http://localhost:8081/test

    需要注意的是复制ProviderService路劲要一致,否则可能空指针。

  • 相关阅读:
    字符流与字节流的区别
    向文件尾部追加内容
    Hashmap实现原理及扩容机制详解
    HashMap的put和get方法原理
    关于数字化工厂&智能工厂建设 IT 经验总结
    @所有人,网易数字+大会报名通道正式开启!
    WinForm程序打包1之快速入门
    解决安装.NET Framework不受信任的根证书
    Cannot resolve com.sun:tools:1.8.0 错误解决
    IDEA 2020报“java:程序包XXXX不存在”或“java:找不到符号”
  • 原文地址:https://www.cnblogs.com/SunSAS/p/12254997.html
Copyright © 2011-2022 走看看