• 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路劲要一致,否则可能空指针。

  • 相关阅读:
    【C#4.0图解教程】笔记(第19章~第25章)
    【C#4.0图解教程】笔记(第9章~第18章)
    【C#4.0图解教程】笔记(第1章~第8章)
    平衡二叉树(AVL Tree)
    整数中1出现的次数(从1到n整数中1出现的次数)
    java实现回溯算法
    输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
    怎么用Markdown在github上写书,并用pages展示
    二叉搜索树与双向链表
    复杂链表的复制
  • 原文地址:https://www.cnblogs.com/SunSAS/p/12254997.html
Copyright © 2020-2023  润新知