SpringBoot2.1.9+dubbo2.7.3+Nacos1.1.4构建你的微服务体系

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 使用最新版的DUBBO构建你的微服务体系!

NACOS注册中心


  • 从github下载最新版本的nacos


  • 上传至服务器并解压


  • 单机启动sh startup.sh -m standalone



1.png


项目框架


本次案例包含三个组件


  • 公共接口层 dubbo-api


  • 生产者  dubbo-provider


  • 消费者 dubbo-consumer 代码目录如下:


2.png


父目录dubbo-demo


父目录主要是定义公共组件依赖,版本号,pom文件如下


<projectxmlns="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><packaging>pom</packaging><modules><module>dubbo-api</module><module>dubbo-provider</module><module>dubbo-consumer</module></modules><groupId>com.jianzh5</groupId><artifactId>dubbo-demo</artifactId><version>1.0-SNAPSHOT</version><properties><java.version>1.8</java.version><netty-all.version>4.0.35.Final</netty-all.version><spring-boot.version>2.1.9.RELEASE</spring-boot.version><dubbo.version>2.7.3</dubbo.version><nacos-client.version>1.1.4</nacos-client.version></properties><dependencyManagement><dependencies><!--SpringBoot--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><!--ApacheDubbo--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-bom</artifactId><version>${dubbo.version}</version><type>pom</type><scope>import</scope></dependency><!--DubboRegistryNacos--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-nacos</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>${nacos-client.version}</version></dependency><!--DubboSpringBootStarter--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>${dubbo.version}</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring</artifactId></exclusion><exclusion><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency><!--接口--><dependency><groupId>com.jianzh5</groupId><artifactId>dubbo-api</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>


在pom文件中直接依赖接口,这样生产者和消费者都可以使用了


接口层dubbo-api定义


pom


<projectxmlns="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"><parent><artifactId>dubbo-demo</artifactId><groupId>com.jianzh5</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.jianzh5</groupId><artifactId>dubbo-api</artifactId><packaging>jar</packaging></project>


定义真实的接口


/*** @author jianzh5* @date 2019/11/5 10:45*/publicinterfaceHelloService {
StringsayHello();
}


生产者dubbo-provider


pom


<projectxmlns="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"><parent><artifactId>dubbo-demo</artifactId><groupId>com.jianzh5</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.jianzh5</groupId><artifactId>dubbo-provider</artifactId><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!--Dubbo--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId></dependency><!--DubboRegistryNacos--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-nacos</artifactId></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></dependency><dependency><groupId>com.jianzh5</groupId><artifactId>dubbo-api</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>


配置文件application.xml


dubbo.application.name=dubbo-providerdubbo.registry.address=nacos://192.168.136.129:8848dubbo.scan.base-packages=com.jianzh5.provider.service.impldubbo.protocol.port=20881dubbo.protocol.name=dubbo


接口实现


@ServicepublicclassHelloServiceImplimplementsHelloService {
publicStringsayHello() {
return"欢迎关注微信公众号:JAVA日知录";
    }
}


注意这里的@service引用的是org.apache.dubbo.config.annotation.Service,不要引用错了


启动类


@SpringBootApplication@EnableDubbopublicclassPrivoderBootstrap {
publicstaticvoidmain(String[] args) {
SpringApplication.run(PrivoderBootstrap.class, args);
    }
}


需要引入@EnableDubbo注解


消费者dubbo-consumer


pom


<projectxmlns="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"><parent><artifactId>dubbo-demo</artifactId><groupId>com.jianzh5</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.jianzh5</groupId><artifactId>dubbo-consumer</artifactId><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><!--Dubbo--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId></dependency><!--DubboRegistryNacos--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-nacos</artifactId></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></dependency><dependency><groupId>com.jianzh5</groupId><artifactId>dubbo-api</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>


配置文件application.properties


spring.application.name=dubbo-consumerdubbo.registry.address=nacos://192.168.136.129:8848server.port=9090


消费者HelloController


/*** @author jianzh5* @date 2019/11/5 11:29*/@RestControllerpublicclassHelloController {
@ReferenceprivateHelloServicehelloService;
@GetMapping("/sayHello")
publicStringsayHello(){
returnhelloService.sayHello();
    }
}



使用@Reference注解注入HelloService


接口启动类


@SpringBootApplicationpublicclassConsumerBootstrap {
publicstaticvoidmain(String[] args) {
SpringApplication.run(ConsumerBootstrap.class, args);
    }
}


项目启动


  • 启动生产者 dubbo-provider


  • 启动消费者 dubbo-consumer


  • 查看nacos控制台,观察是否注册


3.png


访问浏览器http://localhost:9090/sayHello查看接口返回

目录
相关文章
|
10月前
|
监控 网络协议 Nacos
Nacos:构建微服务架构的基石
Nacos:构建微服务架构的基石
380 2
|
9月前
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
1621 82
高效搭建Nacos:实现微服务的服务注册与配置中心
|
7月前
|
Cloud Native Java Nacos
springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析
通过本文,我们详细介绍了如何在 Spring Cloud 和 Spring Boot 中集成 Nacos 进行服务注册和配置管理,并对 Nacos 的源码进行了初步分析。Nacos 作为一个强大的服务注册和配置管理平台,为微服务架构提供
2779 14
|
8月前
|
监控 Java Nacos
使用Spring Boot集成Nacos
通过上述步骤,Spring Boot应用可以成功集成Nacos,利用Nacos的服务发现和配置管理功能来提升微服务架构的灵活性和可维护性。通过这种集成,开发者可以更高效地管理和部署微服务。
2192 17
|
6月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
|
10月前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
168 5
|
10月前
|
Dubbo Cloud Native 应用服务中间件
阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。
在云原生时代,微服务架构成为主流。阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。示例代码展示了如何在项目中实现两者的整合,通过 Nacos 动态调整服务状态和配置,适应多变的业务需求。
292 2
|
10月前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
221 4

热门文章

最新文章