赞
踩
一、Nacos配置安装
二、Provider工程
<?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 https://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.3.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>dubbo_client</artifactId> <version>0.0.1-SNAPSHOT</version> <name>dubbo_client</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <dubbo.version>2.7.7</dubbo.version> <nacos.version>2.1.1.RELEASE</nacos.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Apache Dubbo --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-dependencies-bom</artifactId> <version>${dubbo.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- Dubbo Spring Boot Starter --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.7</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.13.0</version> </dependency> <!-- Nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${nacos.version}</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${nacos.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.example</groupId> <artifactId>dubbo_facade</artifactId> <version>1.0.0</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
spring: application: name: dubbo_server cloud: nacos: server-addr: 127.0.0.1:8848 config: namespace: 9c6b8156-d045-463d-8fe6-4658ce78d0cc file-extension: yml dubbo: protocol: name: dubbo port: 20880 registry: address: nacos://127.0.0.1:8848 application: name: dubbo_server consumer: timeout: 3000 scan: base-packages: com.example.dubbo.service
package com.example.dubbo;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableDubbo
@SpringBootApplication
public class DubboServerApplication {
public static void main(String[] args) {
SpringApplication.run(DubboServerApplication.class, args);
}
}
package com.example.dubbo.service.impl; import com.example.dubbo.facade.service.UserService; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.stereotype.Component; /** * @author liuteng */ @Component @DubboService(timeout = 500, version = "1.0.0", interfaceClass = UserService.class) public class UserServiceImpl implements UserService { @Override public String getUserIdByPhone(String phone) { return "1000000101001"; } }
三、Consumer工程
<?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 https://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.3.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>dubbo_client</artifactId> <version>0.0.1-SNAPSHOT</version> <name>dubbo_client</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <dubbo.version>2.7.7</dubbo.version> <nacos.version>2.1.1.RELEASE</nacos.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Apache Dubbo --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-dependencies-bom</artifactId> <version>${dubbo.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- Dubbo Spring Boot Starter --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.7</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.13.0</version> </dependency> <!-- Nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${nacos.version}</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${nacos.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.example</groupId> <artifactId>dubbo_facade</artifactId> <version>1.0.0</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
server: port: 9090 spring: application: name: dubbo_client cloud: nacos: server-addr: 127.0.0.1:8848 config: namespace: 9c6b8156-d045-463d-8fe6-4658ce78d0cc file-extension: yml dubbo: application: name: dubbo_client registry: address: nacos://127.0.0.1:8848 scan: base-packages: com.example.demo.controller
package com.example.demo;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableDubbo
@SpringBootApplication
public class DubboClientApplication {
public static void main(String[] args) {
SpringApplication.run(DubboClientApplication.class, args);
}
}
package com.example.demo.controller; import com.example.dubbo.facade.service.UserService; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author liuteng */ @RestController @RequestMapping(value = "user/") public class UserController { @DubboReference(version = "1.0.0") private UserService userService; @GetMapping(value = "/getUserIdByPhone") public String getUserIdByPhone(String phone){ return userService.getUserIdByPhone(phone); } }
四、Facade工程
package com.example.dubbo.facade.service;
/**
* @author liuteng
*/
public interface UserService {
String getUserIdByPhone(String phone);
}
五、工程结构
├─dubbo_client ├─src │ ├─main │ ├─java │ │ └─com │ │ └─example │ │ └─demo │ │ └─controller │ │ └─UserController.java │ └─resources │ │ └─bootstrap.yml ├─dubbo_facade ├─src │ └─main │ ├─java │ │ └─com │ │ └─example │ │ └─dubbo │ │ └─facade │ │ └─service │ │ └─UserService.java └─dubbo_server ├─src │ └─main │ ├─java │ │ └─com │ │ └─example │ │ └─dubbo │ │ └─service │ │ └─impl │ │ └─UserServiceImpl.java │ └─resources │ │ └─bootstrap.yml
六、Nacos平台
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。