zoukankan      html  css  js  c++  java
  • dubbo+zookeeper+springboot简单示例

    @

    dubbo+zookeeper+springboot简单示例

    Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

    zookeeper安装使用

    下载地址:
    http://archive.apache.org/dist/zookeeper/

    linux下载安装教程3.4.5:
    https://www.cnblogs.com/lsdb/p/7297731.html

    windows:安装使用教程:
    https://blog.csdn.net/tlk20071/article/details/52028945

    api子模块

    新建maven项目api
    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.xc.dubboxc.api</groupId>
    <artifactId>api</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    </project>
    

    TestService.java

    package com.xc.dubboxc.api;
    public interface TestService {
    public String getTestInfo(String str);
    }
    

    生产者producer

    新建springboot项目producer
    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.xc.dubboxc.producer</groupId>
    <artifactId>producer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>producer</name>
    <description>Demo project for Spring Boot</description>
    
    <properties>
    <java.version>1.8</java.version>
    
    <dubbo.springboot.version>0.2.0</dubbo.springboot.version>
    </properties>
    
    <dependencies>
    
    <dependency>
    <groupId>com.xc.dubboxc.api</groupId>
    <artifactId>api</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    </dependency>
    
    
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    </dependency>
    
    <dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>${dubbo.springboot.version}</version>
    <!--<exclusions>
    <exclusion>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
    </exclusion>
    </exclusions>-->
    </dependency>
    <dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>dubbo-spring-boot-actuator</artifactId>
    <version>${dubbo.springboot.version}</version>
    </dependency>
    
    </dependencies>
    
    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>
    
    </project>
    

    application.yml

    server:
    port: 8088
    
    
    # dubbo  config
    producer:
    service:
    version: 1.0.0
    dubbo:
    scan:
    basePackages: com.xc.dubboxc.producer.producer.service
    application:
    id: dubbo-xc
    name: dubbo-xc
    protocol:
    id: dubbo
    name: dubbo
    host: 127.0.0.1
    port: 20880
    status: server
    threads: 10
    registry:
    id: leysen-registry1
    protocol: zookeeper
    address: 127.0.0.1:2181
    timeout: 30000
    check: false
    

    TestServiceImpl.java

    package com.xc.dubboxc.producer.producer.service;
    
    import com.alibaba.dubbo.config.annotation.Service;
    import com.xc.dubboxc.api.TestService;
    
    @Service(version = "${producer.service.version}")
    public class TestServiceImpl implements TestService {
    
    @Override
    public String getTestInfo(String str) {
    System.out.println("--------2");
    System.out.println("--------1");
    return "111";
    }
    }
    

    消费者consumer

    新建springboot项目consumer
    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.xc.dubboxc</groupId>
    <artifactId>consumer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>consumer</name>
    <description>Demo project for Spring Boot</description>
    
    <properties>
    <java.version>1.8</java.version>
    
    <dubbo.springboot.version>0.2.0</dubbo.springboot.version>
    </properties>
    
    <dependencies>
    
    <dependency>
    <groupId>com.xc.dubboxc.api</groupId>
    <artifactId>api</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    </dependency>
    
    <dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>${dubbo.springboot.version}</version>
    <!--<exclusions>
    <exclusion>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
    </exclusion>
    </exclusions>-->
    </dependency>
    <dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>dubbo-spring-boot-actuator</artifactId>
    <version>${dubbo.springboot.version}</version>
    </dependency>
    
    
    </dependencies>
    
    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>
    
    </project>
    

    application.yml

    server:
    port: 8086
    servlet:
    context-path: /xc
    
    consumer:
    service:
    version: 1.0.0
    
    
    dubbo:
    application:
    id: dubbo-xc
    name: dubbo-xc
    protocol:
    id: dubbo
    name: dubbo
    host: 127.0.0.1
    port: 20880
    status: server
    threads: 10
    registry:
    id: leysen-registry1
    protocol: zookeeper
    address: 127.0.0.1:2181
    timeout: 30000
    check: false
    consumer:
    timeout: 30000
    

    TestController.java

    package com.xc.dubboxc.consumer.controller;
    
    import com.alibaba.dubbo.config.annotation.Reference;
    import com.xc.dubboxc.api.TestService;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController("oaTestController")
    @RequestMapping("/oa/test")
    public class TestController {
    
    @Reference(version = "${consumer.service.version}")
    private TestService testService;
    
    
    @GetMapping("/getTestInfo")
    public String getTestInfo() {
    System.out.println("getTestInfo-------------1");
    String argFlys = testService.getTestInfo(null);
    return argFlys;
    }
    
    
    }
    
  • 相关阅读:
    Android下拉刷新-SwipeRefreshLayout,RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout)
    自定义EditText实现一键删除数据
    Androidstudio 点9图报错的问题
    安卓Design包之CoordinatorLayout配合AppBarLayout,ToolBar,TabLaout的使用
    深入了解Hibernate的缓存使用
    跟大牛之间关于hibernate的一些探讨记录
    oracle第一招之神马都是浮云
    大鹏教你如何开发购物网站(里面都是满满的爱)
    JSTL&EL(程序员必看之一)
    动态网页开发
  • 原文地址:https://www.cnblogs.com/ooo0/p/10821633.html
Copyright © 2011-2022 走看看