3.4 Spring Cloud 客户端 Feigh 集成 Nacos 中心| 学习笔记

简介: 快速学习 3.4 Spring Cloud 客户端 Feigh 集成 Nacos 中心。

开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 3.4 Spring Cloud 客户端 Feigh 集成 Nacos 中心】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/60/detail/1097


3.4 Spring Cloud 客户端 Feigh 集成 Nacos 中心

 

内容

一、 重构调用端 Feign 的项目代码

二、 Nacos 的其他功能。

 

本节课讲解如何去改造 Spring Cloud 项目Feign 客户端进行实现微服务的调用,要完成服务的注册和客服端的 Nacos 对接。之前实现的调用例,现在需要同样去改造整个对象,改造步骤在上一节课已经讲解了。

 

一、重构调用端 Feign 的项目代码

1. Java Spring Cloud 微服务调用

(1)POM

<dependency>

<groupld>org.springframework.cloud</groupld>

<artifactld>spring-cloud-starter-alibaba-nacos-discovery</artifactld>

</dependency>

(2)配置

server.port=8080

spring.application.name=microservice-caller

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

(3)代码 REST API

2. 验证 API

3. 测试 Feigh 通过 Nacos 调用后台服务

代码如下:

spring.application.name : nacos-feign

#服务器端口

server- port: 9001

#Nacos 中心

spring.cloud.nacos.discovery. server-addr=127.0.0.1:8848

接下来打开浏览器输入 localhost9001/hi 回车

Taobao Nacos Service2

刷新查看负载均衡:

Taobao Nacos Service1

可以看出是通过 Feigh 客户端来调清后端的服务,这里的后端不仅只写了一个,来看一下这个测试,代码如下:

public class TestController {

@Autowired

orderClient orderClient;

//测试通过代理,调用远程的微服务接口

@RequestMapping(“/hi”)

public String hi( ) {

return orderclient.hi();

}

//测试通过代理,调用远程的微服务接口

@RequestMapping(“/hi”)

public string hi() {

return orderCiient.hi() ; //通过代理后端的 hi

}

//测试通过代理,调用远程的微服务接口

@RequestMapping(“/hello/{name}”)

public string hello(@Pathvariable(value=”name”) String name){

return orderClient.hello( name) ;

} //hi 传了一个参数

@RequestMapping(“/echo/{name}”)

public string hello(@Pathvariable(value=”name”) String name){

return orderClient.hello( name) ;

}  //调用后台服务

}

和之前一样调用了 hello world 服务,来尝试一下 hello 的参数:在浏览器中输入localhost9001/hello/java回车,出现:

Taobao Nacos Service1 java

这里面是参数,name 是 java,比如将 name 换成 haha 即localhost9001/hello/haha 回车,name 换成任意都行:

Taobao Nacos Service2 haha

现在查看注册中心,可以动态的删除服务、隐藏服务、创建服务等。而且可以创建服务,此处若创建服务,服务名为 pay-service,保护阈值为1,分组默认,写上元数据点击确认,如果没写上元数据则这是个不存在的服务。

每个不同空间保存自己的资源,可以定义一个不同的配置然后给不同的阶段去使用。比如这里加一个空间,命名ID为 pre,pre 是预发布环境,点击确定。

可以看到在这里定义的命名空间有四个,命名空间ID即是使用的资源,配置数就是使用的信息。生产环境使用 pro;pre 是预生产环境,一般它会模拟一个生产环境来布置定义;test一般在公司内部的局域网进行测试,预生产环境可以放在 more,生产环境与正式环境比较接近。所以一般情况下就是这四个阶段函数。

然后订阅者列表是空的,服务列表里有2台,默认分组是放在 public 下,服务的默认分组是在 DEFAULT_GROUP 文件下。如果是像淘宝这样几百、几千个服务,那么这里的服务名称、分组名称就很重要了。

后面会结合 Nacos 讲解熔断,因为本身的像 Sentinel 和 Nacos 包括微服务集成是不能直接去使用的,中间需要各种配置。这里介绍一下 Nacos 的其他功能。


二、Nacos 的其他功能

在用户管理里可以修改 Nacos 密码

还可以进行角色管理,输入角色名、用户名进行绑定:

这里还不够智能,比如添加用户 java,密码也是 java,确认密码后点击确定就添加成功了,非常简单;再添加一个用户 spring,密码也为 spring。这样就创建了3个用户,而且还可以在其中更改。

与 Eureka 相比起来这个功能会好用很多,权限也更复杂。在权限管理里可以添加权限,有多种资源名可供选择,这里资源选择 pro(3525862d-58c1-4270-bc9d-bc86e3741961),动作选择读写(rw),角色名为 devops,也就是开发运维。

点击确定,发现不存在,则需要添加角色。在角色管理里选择绑定角色,角色名为Ops,用户名为 java。点击确认,发现添加成功。

再在权限管理中添加权限,发现就能添加上了。这样就会方便很多,实际上集成化之后的完成调用是客服端,服务端,包括 nacos 等都可以利用配置去使用,引用好之后就能进入实战演练,在实际项目中可以直接进行替换

下节课讲解统一配置和熔断限流,本节课就讲解到这里,注意练习。

相关文章
|
1月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
28天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
48 1
|
1月前
|
存储 前端开发 Java
Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能
本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。
239 11
|
28天前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
78 0
|
3月前
|
测试技术 Java Spring
Spring 框架中的测试之道:揭秘单元测试与集成测试的双重保障,你的应用真的安全了吗?
【8月更文挑战第31天】本文以问答形式深入探讨了Spring框架中的测试策略,包括单元测试与集成测试的有效编写方法,及其对提升代码质量和可靠性的重要性。通过具体示例,展示了如何使用`@MockBean`、`@SpringBootTest`等注解来进行服务和控制器的测试,同时介绍了Spring Boot提供的测试工具,如`@DataJpaTest`,以简化数据库测试流程。合理运用这些测试策略和工具,将助力开发者构建更为稳健的软件系统。
54 0
|
3月前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
182 0
|
3月前
|
Java Spring
【Azure 事件中心】Spring Boot 集成 Event Hub(azure-spring-cloud-stream-binder-eventhubs)指定Partition Key有异常消息
【Azure 事件中心】Spring Boot 集成 Event Hub(azure-spring-cloud-stream-binder-eventhubs)指定Partition Key有异常消息
|
2月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
3月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
114 1
|
29天前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
108 1
Springcloud Alibaba + jdk17+nacos 项目实践
下一篇
无影云桌面