SpringCloudAlibaba - 整合 Nacos 实现服务注册与发现
2021-09-21 20:25
811 查看
目录Nacos是什么? 服务发现原理 搭建 Nacos Server Nacos Server 的版本选择 运行 Nacos Server Nacos Client
56c
注册 content-center 内容中心微服务注册 服务发现测试
由于我这里是开发环境,我选择的版本是
ad8
- End -
﹀
﹀
﹀
白嫖有风险
点赞加收藏
前言
记录下
Nacos的整合过程
环境
Win 10 + Spring Cloud 2020.0.1 + Spring Cloud Alibaba 2021.1 + Nacos 2.0.0
Nacos是什么?
Nacos
是一个服务发现组件,也是一个配置服务器,Nacos
解决的两个问题:
1、服务A怎么找到服务B 2、管理微服务的配置
Nacos
官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.htmlNacos
简易架构图
服务发现原理
-
服务发现机制
服务发现机制就是服务消费者总能找到服务提供者的机制,举个例子:服务发现就像手机中 ad8 的名片夹,记录一个人所有的联系方式,通过该名片可以联系到某个人,而当某个联系方式不存在时(服务DOWN)就将其从名片夹中删除。 -
用于生产的服务发现机制:
1、在微服务上做缓存,定时任务发送当前的地址,调用时取缓存中微服务的地址,该做法好处首先是压力小,不用每次都去实时取,其次是即使服务发现组件崩溃也可以取到缓存中的值,只是无法更新缓存中的值。
2、每个微服务实例都向服务发现组件发送心跳(即一次请求),告诉服务发现组件自己是活着的,如果服务发现组件发现某一个实例长时间未向自己发送心跳,即认为该实例已挂,将其健康状态标记为DOWN
,服务消费者即不再调用该实例。
搭建 Nacos Server
Nacos Server 下载地址
https://github.com/alibaba/nacos/releases
Nacos Server 的版本选择
Nacos Server的版本选择参照标准在
spring-cloud-alibaba-dependencies-xxx.pom中有记录,如我的
Spring Cloud Alibaba的版本是
2021.1,其推荐的版本是
1.4.1(生产环境优先选择)
由于我这里是开发环境,我选择的版本是
2.0.0
运行 Nacos Server
- 官方文档:https://nacos.io/zh-cn/docs/quick-start.html
- 解压缩下载好的
Nacos
压缩包 cmd
运行启动命令
startup.cmd -m standalone
- 访问
http://localhost:8848/nacos/#/login
(默认端口是8848)
- 默认登录账号/密码:
nacos/nacos
... Nacos Server 搭建完毕
Nacos Client 注册
user-center 用户 564 中心微服务注册
pom.xml
<?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.4.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.coisini</groupId> <artifactId>user-center</artifactId> <version>0.0.1-SNAPSHOT</version> <name>user-center</name> <description>user-center project for Spring Boot</description> <properties> <java.version>1.8</java.version> <spring-cloud.version>2020.0.1</spring-cloud.version> <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ad8 boot-starter-web</artifactId> </dependency> <!--spring-cloud-starter-{spring cloud子项目的名称}-[{模块名称}]--> <!-- nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <!-- 整合spring cloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- 整合spring cloud alibaba --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
application.yml
spring: application: # 服务名称 name: user-center cloud: nacos: discovery: # 指定nacos server的地址 server-addr: localhost:8848
- 启动项目
- 访问
Nacos
content-center 内容中心微服务注册
pom.xml
依赖同上application.yml
spring: application: # 服务名称 name: content-center cloud: nacos: discovery: # 指定nacos server的地址 server-addr: localhost:8848
- 访问
Nacos
ad8
服务发现测试
- 内容中心编写测试代码
@RestController public class TestController { @Autowired private DiscoveryClient discoveryClient; /** * 测试:服务发现,证明内容中心总能找到用户中心 * @return 用户中心所有实例的地址信息 */ @GetMapping("test") public List<ServiceInstance> getInstances() { // 查询指定服务的所有实例的信息 return discoveryClient.getInstances("user-center"); } }
- 如下所示,内容中心可以获取到用户中心所有实例的地址信息
相关文章推荐
- Spring Cloud Alibaba练习Demo(一):使用Nacos实现服务注册与发现
- Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现
- Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现
- Spring Cloud Alibaba基础教程之Nacos实现服务注册与发现
- Spring Cloud Alibaba(一) 简单实现服务注册与发现
- Spring Cloud Nacos实现分布式环境下的配置管理和服务注册发现
- Spring Cloud Alibaba 实战 之 Nacos 服务注册和发现
- SpringCloud Alibaba从入门到精通教程(二)- 项目中快速集成配置中心·Nacos服务注册发现功能
- Spring Cloud Alibaba(1) 实现服务注册与发现 Nacos Discovery
- SpringCloud学习之【NACOS实现服务的注册与发现】
- Spring Cloud Alibaba | Nacos服务注册与发现
- Spring Cloud Alibaba实现服务配置管理和动态服务发现(使用Nacos)
- Spring Cloud Consul 实现服务注册和发现
- SpringCloud Eureka实现服务注册与发现
- spring cloud搭建微服务second-fiberhome(二):结合consul实现服务注册与服务发现
- SpringCloud-Nacos-服务注册中心-服务发现HelloWorld(服务之间数据的调用RestTemplate)
- Spring Cloud Alibaba之服务发现组件 - Nacos
- SpringCloud-Alibaba-Nacos 服务注册中心&配置中心
- SpringCloud实战 | 第二篇:SpringCloud整合Nacos实现注册中心
- 使用Spring Cloud Consul实现服务的注册和发现