# 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.hqwc.cn/news/624572.html

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

相关文章

设定延迟任务和定时任务并优化定时任务

一丶设定延时任务 1.设定延迟任务要求如下 ①在系统中建立easylee用户&#xff0c;设定其密码为easylee ②延迟任务由root用户建立 ③要求在5小时后备份系统中的用户信息文件到/backup中 ④确保延迟任务是使用非交互模式建立 ⑤确保系统中只有root用户和easylee用户可以执…

TypeScript之类

一、类的定义 二、对象的创建 class Person{id:number;name:string;age:number 18;constructor(id:number,name:string){this.id id;this.name name;}introduce():string{return hello,I am ${this.name},and I am ${this.age} years old.} }let person new Person(1,zhan…

普发Pfeiffer CCR263 CCR272 CMR261 CMR273 PBR260 IMR265 TPR265 使用说明手侧

普发Pfeiffer CCR263 CCR272 CMR261 CMR273 PBR260 IMR265 TPR265 使用说明手侧

SQL刷题---2021年11月每天新用户的次日留存率

解题思路&#xff1a; 1.首先算出每个新用户注册的日期,将其命名为表a select uid,min(date(in_time)) dt from tb_user_log group by uid2.计算出每个用户登录的天数,将其命名为表b select uid,date(in_time) dt from tb_user_log union select uid,date(out_time) dt fro…

Ubuntu22.04配置ROS2+PX4仿真环境

Ubuntu22.04配置ROS2PX4仿真环境 主要参考源&#xff1a; https://blog.csdn.net/weixin_44174421/article/details/135827130 https://blog.csdn.net/Zecet/article/details/130474620 一、准备工作 确保网络能够连接到github&#xff0c;出错主要源自于此&#xff1b;确保…

探索分布式系统监控zabbix------------自动发现与自动注册

目录 一、部署 zabbix 服务端 二、部署 zabbix 客户端 2.1环境准备 2.2服务端和客户端都配置时间同步 &#xff08;ntp&#xff09; 2.2.1服务端zbx-server 2.2.2服务端zabbix-agent01客户端 2.3客户端配置时区&#xff0c;与服务器保持一致 2.4设置 zabbix 的下载源&…

深度学习 Lecture 8 决策树

一、决策树模型&#xff08;Decision Tree Model) 椭圆形代表决策节点&#xff08;decison nodes)&#xff0c;矩形节点代表叶节点&#xff08;leaf nodes)&#xff0c;方向上的值代表属性的值&#xff0c; 构建决策树的学习过程&#xff1a; 第一步&#xff1a;决定在根节点…

allure2教程-1-环境搭建

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 自动化测试执行完成后我们需要展示给其他人看&#xff0c;这就要有自动化测试报告了。复杂的测试报告当然可以自己代码实现&#xff0c;但用pytest-html或allure基本也能满足我们生成测试报告的要求了。本小节介绍…

nacos 安装保姆级教程

安装nacos nacosVersion:2.2.3 需要的java版本较高&#xff0c; 所以这里直接安装jdk17&#xff1b; 安装链接见nacos 和jdk 官网&#xff0c;具体选择下面图片中的两个版本哈 本来想直接传到csdn的&#xff0c;结果这边的资料审核还是有点繁琐&#xff0c;然后上传的速度也有点…

oracle数据库怎么查看当前登录的用户?

方法如下&#xff1a; 输入select * from dba_users; 即可。 常用语句&#xff1a; 一&#xff0c;查看数据库里面所有用户&#xff1a; select * from dba_users; 前提是你是有dba权限的帐号&#xff0c;如sys,system。 二&#xff0c;查看你能管理的所有用户&#xff1…

每日一题 — 串联所有单词的子串

30. 串联所有单词的子串 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;因为words里面的每一个字符串的长度都是固定的&#xff0c;所以可以将题转换成字符在字符串中的所有异位词 设出哈希表定义left和right进窗口维护count判断出窗口维护count 代码&#xff1a; …

高分二号卫星(GF-2):中国遥感科技的新高度

​高分二号卫星&#xff08;GF-2&#xff09;是中国在高分辨率地球观测领域的重要成就&#xff0c;其引入了先进的成像技术和灵活的数据获取模式&#xff0c;为地球资源监测、环境保护、城市规划等领域提供了强大的数据支持。本文将深入介绍高分二号卫星的技术特点、成像能力以…