springboot集成dubbo生產者&消費者方法


1. pom.xml添加maven依賴

        <!--spring-boot-starter-dubbo-->
        <dependency>
            <groupId>com.gitee.reger</groupId>
            <artifactId>spring-boot-starter-dubbo</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- 引入zookeeper,去除其中的log4j,否則會因為日志原因導致堆棧溢出 -->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--Dubbo的API-->
        <dependency>
            <groupId>com.test</groupId>
            <artifactId>test-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

 

2. application.yml增加dubbo配置信息

spring:
  dubbo:
    application:
      name: demo-consumer
    base-package: com.test.api # dubbo服務發布者所在的包
    registry:
      address: 127.0.0.1 # zookeeper注冊中心的地址
      port: 2181   # zookeeper注冊中心的端口
      protocol: zookeeper
      register: true
    protocol:
      name: dubbo
      port: 20880
      accesslog: true
    provider:
      retries: 1
      delay: -1

3. 啟動類增加Dubbo注解

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

 4. 生產者service接口定義

package com.demo.api;


public interface TestServiceApi {
    /**
     * 輸出問候
     */
    void sayHello();
}

5. 生產者接口實現(注意@Service的包路徑是dubbo的包路徑, 不是Spring的

package com.demo.api.impl;

import com.alibaba.dubbo.config.annotation.Service;

@Service
public class TestServiceApiImpl implements TestServiceApi {
    /**
     * 輸出問候
     */
  @Override    
  public void sayHello() { return "Hello world!"; } }

 

6. 消費者調用示例

import com.alibaba.dubbo.config.annotation.Reference;
import com.demo.api.TestServiceApi;

@Reference private TestServiceApi testServiceApi; public void hello() { String result = testServiceApi.sayHello(); System.out.println("result = " + result); }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM