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;
}


}
posted @ 2019-05-06 19:46  草木物语  阅读(1405)  评论(0编辑  收藏  举报