# Nacos 服务发现-Spring Cloud Alibaba 综合架构实战(四) -实现 service2 子模块。

Nacos 服务发现-Spring Cloud Alibaba 综合架构实战(四) -实现 service2 子模块。

1、在 service2 子模块下的 service-2-api 二级子工程中,定义服务接口 创建 ProviderService.java


/***   C:\java-test\idea2019\nacos_discovery\nacos-micro-service\service-2\service-2-api\src\main\java\djh\it\microservice\service2\api\ProviderService.java**   2024-4-13 在 service2 子模块下的二级子模块 service-2-api 二级子工程中,定义服务接口*   创建 ProviderService.java 接口类。*/package djh.it.microservice.service2.api;public interface ProviderService {String service();
}

2、在 service2 子模块下的二级子模块 service-2-server 二级子工程的 pom.xml 配置文件中, 引入 service-2-api 二级子模块依赖,以创建 ProviderService.java 接口的 实现类, 并加入其他依赖项。


<?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"><parent><artifactId>service-2</artifactId><groupId>djh.it</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>service-2-server</artifactId><dependencies><!-- 引入 service-2-api 二级子模块依赖 --><dependency><groupId>djh.it</groupId><artifactId>service-2-api</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- 引入 nacos 配置管理 依赖项 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- 引入 nacos 服务发现 依赖项 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- 引入 dubbo 依赖项 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-dubbo</artifactId></dependency></dependencies></project><!-- C:\java-test\idea2019\nacos_discovery\nacos-micro-service\service-2\service-2-server\pom.xml -->

3、在 service2 子模块下的二级子模块 service-2-server 二级子工程中, 创建 ProviderServiceImpl.java 实现类,实现 Dubbo 服务。


/***   C:\java-test\idea2019\nacos_discovery\nacos-micro-service\service-2\service-2-server\src\main\java\djh\it\microservice\service2\service\ProviderServiceImpl.java**   2024-4-13 在 service2 子模块下的二级子模块 service-2-server 二级子工程中,*   创建 ProviderServiceImpl.java 实现类,实现 Dubbo 服务。*/package djh.it.microservice.service2.service;import djh.it.microservice.service2.api.ProviderService;@org.apache.dubbo.config.annotation.Service
public class ProviderServiceImpl implements ProviderService {public String service() {return "Provider invoke";}
}

4、在 service2 子模块下的二级子模块 service-2-server 二级子工程中, 创建 配置文件 bootstrap.yaml


## C:\java-test\idea2019\nacos_discovery\nacos-micro-service\service-2\service-2-server\src\main\resources\bootstrap.ymlserver:# port: 56040  # 启动端口port: ${port:56040}  # 启动端口设置为动态传参,如果未传参数,默认端口为 56040
#  servlet:
#    context-path: /application1spring:application:name: service2  #spring应用名, # 注意 FeignClient 不支持名字带下划线main:allow-bean-definition-overriding: true # SpringBoot2.1 需要设定。cloud:nacos:config:  # 表示配置管理server-addr: 127.0.0.1:8848  # 配置中心地址file-extension: yaml  # 配置文件后缀名。namespace: b75c342f-8aeb-4f5a-a1d3-21f0738d7960  # dev开发环境(nacos-1.1.3)。group: NACOS_MICROSERVICE_GROUP  # xx业务组。discovery:  # 表示服务发现server-addr: 127.0.0.1:8848  # nacos服务器地址namespace: b75c342f-8aeb-4f5a-a1d3-21f0738d7960  # dev开发环境(nacos-1.1.3)cluster-name: DEFAULTdubbo:  # dubbo 服务配置scan:# dubbo 服务扫描基准包base-packages: djh.it.microserviceprotocol:# dubbo 协议name: dubbo# dubbo 协议端口port: ${dubbo_port:20891}registry:address: nacos://127.0.0.1:8848application:qos-enable: false # dubbo 运维服务是否开启consumer:check: false  # 启动时就否检查依赖的服务。

5、在 service2 子模块下的二级子模块 service-2-server 二级子工程中, 创建启动类 Service2Bootstrap.java


/***   C:\java-test\idea2019\nacos_discovery\nacos-micro-service\service-2\service-2-server\src\main\java\djh\it\microservice\service2\Service2Bootstrap.java**   2024-4-13 在 service2 子模块下的二级子模块 service-2-server 二级子工程中,*   创建启动类 Service2Bootstrap.java*/package djh.it.microservice.service2;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
public class Service2Bootstrap {public static void main(String[] args) {SpringApplication.run(Service2Bootstrap.class, args);}
}

6、在 service2 子模块下的二级子模块 service-2-server 二级子工程中, 运行 启动类 Service2Bootstrap.java 进行测试。

浏览器地址栏输入:http://127.0.0.1:8848/nacos

依次打开 【dev】–》【服务列表】发现 有了 【service2】服务名,
点击【详情】,可以看到端口是 我们设置的 20891。

在这里插入图片描述
在这里插入图片描述

7、在 service1 子模块下的二级子模块 service-1-server 二级子工程中的 pom.xml 配置文件中, 引入 service2 子模块下的二级子模块 service-2-api 接口模块。


<?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"><parent><artifactId>service-1</artifactId><groupId>djh.it</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>service-1-server</artifactId><dependencies><!-- 引入 service-1-api 二级子模块依赖 --><dependency><groupId>djh.it</groupId><artifactId>service-1-api</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- 引入 service-2-api 二级子模块依赖 --><dependency><groupId>djh.it</groupId><artifactId>service-2-api</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- 引入 nacos 配置管理 依赖项 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- 引入 nacos 服务发现 依赖项 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- 引入 dubbo 依赖项 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-dubbo</artifactId></dependency></dependencies></project><!-- C:\java-test\idea2019\nacos_discovery\nacos-micro-service\service-1\service-1-server\pom.xml -->

8、在 service1 子模块下的二级子模块 service-1-server 二级子工程的, ConsumerServiceImpl.java 类中,注入 service。


/***   C:\java-test\idea2019\nacos_discovery\nacos-micro-service\service-1\service-1-server\src\main\java\djh\it\microservice\service1\service\ConsumerServiceImpl.java**   2024-4-12  在 service1 子模块下的二级子模块 service-1-server 二级子工程中,*   创建 ConsumerServiceImpl.java 类,实现 Dubbo 服务。*/package djh.it.microservice.service1.service;import djh.it.microservice.service1.api.ConsumerService;
import djh.it.microservice.service2.api.ProviderService;@org.apache.dubbo.config.annotation.Service  //此注解标记此类的方法暴露为 dubbo 接口
public class ConsumerServiceImpl implements ConsumerService {//注入service@org.apache.dubbo.config.annotation.ReferenceProviderService providerService;// dubbo 服务 接口实现内容public String service() {//远程调用String service = providerService.service();return "Consumer invoke | " + service;}
}

9、重启 ApplicationBootstrap.java, Service1Bootstrap.java, Service2Bootstrap.java 三个启动类。进行测试。

再次 在浏览器地址栏输入:http://localhost:56020/application1/service
输出结果变为:test | Consumer invoke | Provider invoke

在这里插入图片描述
在这里插入图片描述

上一节关联代码点击如下:
Nacos 服务发现-Spring Cloud Alibaba 综合架构实战(三) -实现 application1 子模块 调用 service1 子模块的 service-1-api

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/820425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java开发指南 | 第三篇】Java 空行、强制类型转换及基本数据类型

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 Java 空行强制类型转换Java 基本数据类型内置数据类型引用类型 Java 空行 空白行或者有注释的行&#xff0c;Java 编译器都会忽略掉。 强制类型转换 当需要将一个数据类型转换为另一个数据类型时&#xff0c…

Cat6 屏蔽与非屏蔽:决定最佳选择

Cat6 电缆通常用于现代网络中的高速以太网数据传输。它们有两种类型&#xff1a;屏蔽 &#xff08;STP&#xff09; 和非屏蔽 &#xff08;UTP&#xff09;。这两种电缆之间的主要区别在于它们对电磁干扰 &#xff08;EMI&#xff09; 和串扰的抵抗力。 屏蔽 Cat6 电缆具有额外…

python代码打包exe文件

创建和激活虚拟环境 创建虚拟环境 首先让我们创建一个虚拟环境。你可以使用 venv 模块来创建一个虚拟环境。以下是创建虚拟环境的步骤&#xff1a; 打开终端&#xff08;或命令提示符&#xff09;&#xff1a;进入你想要创建虚拟环境的目录。 运行以下命令来创建虚拟环境&a…

谷歌pixel6/7pro等手机WiFi不能上网,显示网络连接受限

近期在项目中遇到一个机型出现的问题,先对项目代码进行排查,发现别的设备都能正常运行,就开始来排查机型的问题,特意写出来方便后续查看,也方便其它开发者来自查。 设备机型:Pixel 6a 设备安卓版本:13 该方法无需root,只需要电脑设备安装adb(即Android Debug Bridge…

protobuf 编码原理

简介 Protocol Buffers&#xff08;protobuf&#xff09;&#xff0c;它是 Google 开发的一种数据序列化协议&#xff08;与 XML、JSON 类似&#xff09;。 优点&#xff1a; 效率高&#xff1a;Protobuf 以二进制格式存储数据&#xff0c;比如 XML 和 JSON 等文本格式更紧凑…

C++这个编程语言以后会消失吗,就像以前70后学的编程语言?

随着AI自举编程的到来&#xff0c;绝大多数人类编程语言都会消失&#xff0c;只有 Scratch 这类启智语言作为儿童玩具保留下来。目前看来这一天不远了。 AI自举编程首先无需遵循这种可读文本变为二进制操作码的套路&#xff0c;它本身就是二进制的。而后&#xff0c;一旦智能制…

全局视角观看Python备忘录-英文版

全局视角观看Python备忘录-英文版

十分钟搞定4G转Uart网关:FlexLua低代码助力

在当今的物联网应用中&#xff0c;各种设备之间的连接变得日益重要&#xff0c;而4G转Uart网关设备的出现为设备之间的通信提供了简便的解决方案&#xff0c;推动了物联网技术的不断发展。 4G转Uart网关的通信原理相对简单清晰。它通过4G网络接收数据&#xff0c;然后将数据转换…

Nginx内存池相关源码剖析(六)外部资源释放和内存池销毁

ngx_destroy_pool函数 先执行回调函数释放所有的外部资源&#xff0c;然后free释放所有的大块内存和小块内存。 // 释放外部资源&#xff0c;销毁内存池 void ngx_destroy_pool(ngx_pool_t *pool) {ngx_pool_t *p, *n;ngx_pool_large_t *l;ngx_pool_cleanup_t *…

电脑录制视频软件推荐,帮你找到合适的那一款

随着科技的不断发展&#xff0c;录制视频已成为人们在学习、工作和生活中不可或缺的一部分。电脑录制视频软件作为实现这一目标的重要工具&#xff0c;已经越来越受到用户的青睐。本文将详细介绍三种常用的电脑录制视频软件&#xff0c;帮助用户更好地理解和使用这些工具&#…

高负压采样器

你的未来是你自己创造的&#xff0c;你的路是你自己选择的。走向成功&#xff0c;需要你的勇气和决心&#xff0c;成功不是得到多少&#xff0c;而是付出了多少。当你还在努力时&#xff0c;不要忘记身边的风景——鹤壁永成在你身边 一、高负压瓦斯采取器的用途&#xff1a; 高…

MS SQL Server partition by 函数实战 统计与输出

目录 需求 范例运行环境 表及视图样本设计 数据统计实现 小结 需求 假设有一课程项目&#xff0c;我们需要统计该项目中的课件数量&#xff0c;并提取课程信息&#xff0c;如课程标题名称、排序号等&#xff0c;如果使用 GROUP BY 聚合函数&#xff0c;则只能统计返回课件…

Java集合进阶——泛型

1.泛型 介绍&#xff1a; 泛型可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。 应用场景&#xff1a; 如果在定义类、方法、接口的时候&#xff0c;如果类型不确定&#xff0c;就可以使用泛型。 格式&#xff1a; <数据类型> 注意&#xff1a; 泛型只支持引…

数字化社交的引擎:解析Facebook的影响力

Facebook&#xff0c;作为全球最大的社交媒体平台&#xff0c;已经深深地融入了我们的日常生活和文化中。它不仅仅是一个简单的社交工具&#xff0c;更是一个复杂的数字生态系统&#xff0c;影响着我们的社交模式、文化认同以及信息获取方式。在这篇文章中&#xff0c;我们将深…

【华为】Telnet实验配置

【华为】Telnet 实验配置 应用场景三种认证方式配置注意事项拓扑无认证&#xff08;None&#xff09;交换机配置顺序Telnet ServerTelnet Client测试 密码认证&#xff08;Password&#xff09;配置顺序Telnet ServerTelnet Client测试 AAA认证&#xff08;scheme&#xff09;配…

使用TomCat在idea写一个可以实现分页查询的前后端学生项目04.12

使用TomCat在idea写一个前后端学生项目04.12项目包-CSDN博客 在前端界面需要引入的插件&#xff1a; 在该网站下载需要的插件 Maven Repository: Search/Browse/Explore (mvnrepository.com)https://mvnrepository.com/ 分页查询&#xff1a; 在前端jsp页面使用c:forEach c:…

WordPress 多站点切换域名完整指南:详细步骤和注意事项

因为公司的需要&#xff0c;需要对 WordPress 多站点进行域名切换, 一开始我也找了相关的方案和教程&#xff0c;但是很可惜&#xff0c;国内这一块网上的资料几乎为0&#xff0c;所以我把实现的过程写了一篇文章分享出来&#xff0c;为后来的人铺路。 开始之前&#xff0c;先…

BCLinux8U6系统基线加固致无法su的问题分析

本文对BCLinux8U6系统进行基线加固致无法su的问题分析。 一、问题现象 对BCLinux8U6系统进行基线加固&#xff0c;su切换用户失败&#xff0c;报错信息如下&#xff1a; [ABCDlocalhost ~]$ su - 密码&#xff1a; su: 模块未知 二、问题分析 1、错误排查 出错前&#xf…

el-table使用show-summary合计,但只需要合并某一列

el-table使用show-summary合计&#xff0c;但只需要合并某一列 这里有两种方法&#xff0c;一种是网上的&#xff0c;我会引用他的链接给你们看。 一种是我自己看源码发现的 方法一 这个就是方法一的链接 点击我跳转方法一 方法二 不需要计算的列 去掉prop 然后用插槽显示即可…

设计模式代码实战-抽象工厂模式

1、问题描述 小明家新开了两个工厂用来生产家具&#xff0c;一个生产现代风格的沙发和椅子&#xff0c;一个生产古典风格的沙发和椅子&#xff0c;现在工厂收到了一笔订单&#xff0c;请你帮他设计一个系统&#xff0c;描述订单需要生产家具的信息。 输入试例&#xff1a; 3 …