平面设计和建设网站的区别,大数据开发是做什么的,专业长春网站建设哪家好,公司做网站的开支会计分录怎么做Nacos简介
在2中学习了服务治理中心eureka#xff0c;而本节的nacos来自springcloud alibaba。
Nacos也是一个服务注册和管理的组件。
Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理
官方文档
快速开始 | Spring Cloud Alibaba (aliyun.com)
概述 | Spring C…Nacos简介
在2中学习了服务治理中心eureka而本节的nacos来自springcloud alibaba。
Nacos也是一个服务注册和管理的组件。
Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理
官方文档
快速开始 | Spring Cloud Alibaba (aliyun.com)
概述 | Spring Cloud Alibaba (aliyun.com)
Nacos Spring Cloud 快速开始
安装启动
Nacos 快速开始 访问http://127.0.0.1:8848/nacos/ 示例
可以使用官方示例
spring-cloud-alibaba/spring-cloud-alibaba-examples/nacos-example/nacos-config-example at 2022.x · alibaba/spring-cloud-alibaba · GitHub 参考官方教程快速开始 | Spring Cloud Alibaba (aliyun.com)
Nacos 来实现分布式环境下的配置管理和服务注册发现。
配置管理
这节讲的是如何通过应用实现对nacos的配置进行管理
通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更这里的配置是指nacos本身的配置可以对nacos添加配置更新配置。Nacos Spring Cloud 快速开始 如果要在您的项目中使用 Nacos 来实现配置管理需要进行以下操作确保 Nacos Server 已启动 需要在 pom.xml 文件中引入 group ID 为 com.alibaba.cloud 和 artifact ID 为 spring-cloud-starter-alibaba-nacos-config 的 starter dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId
/dependency在应用的 /src/main/resources/application.yaml 配置文件中配置 Nacos Config 地址并引入服务配置 spring:cloud:nacos:serverAddr: 127.0.0.1:8848config:import:- nacos:nacos-config-example.properties?refreshtrue完成上述两步后应用会从 Nacos Server 中获取相应的配置并添加在 Spring Environment 的 PropertySources 中。假设我们通过 Nacos 作为配置中心保存应用服务的部分配置有以下几种方式实现 BeanAutoRefreshConfigExample通过将配置信息配置为bean支持配置变自动刷新ConfigListenerExample监听配置信息DockingInterfaceExample对接 Nacos 接口通过接口完成对配置信息增删改查ValueAnnotationExample通过 Value 注解进行配置信息获取。示例代码给出了这几种方式 调用 Nacos Open API 向 Nacos Server 发布配置 命令行方式 $ curl -X POST http://127.0.0.1:8848/nacos/v1/cs/configs?dataIdnacos-config-example.propertiesgroupDEFAULT_GROUPcontentspring.cloud.nacos.config.serverAddr127.0.0.1:8848%0Aspring.cloud.nacos.config.prefixPREFIX%0Aspring.cloud.nacos.config.groupGROUP%0Aspring.cloud.nacos.config.namespaceNAMESPACE控制台方式推荐使用 dataId为nacos-config-example.properties
group为DEFAULT_GROUP配置内容如下 spring.cloud.nacos.config.serveraddr127.0.0.1:8848
spring.cloud.nacos.config.prefixPREFIX
spring.cloud.nacos.config.groupGROUP
spring.cloud.nacos.config.namespaceNAMESPACE 添加后的配置 报错不支持java 17需要在project structure将SDK设置为JDK17运行解决。 请求 http://127.0.0.1:18084/nacos/bean 地址可以看到成功从 Nacos 配置中心中获取了数据。
$ curl http://127.0.0.1:18084/nacos/bean响应结果
{serverAddr: 127.0.0.1:8848,prefix: PREFIX,namespace: NAMESPACE,group:GROUP
}这里返回的是BeanAutoRefreshConfigExample读取到的nacos的配置。
在命令行终端执行以下命令刷新 Nacos 的配置信息
$ curl -X POST http://127.0.0.1:8848/nacos/v1/cs/configs?dataIdnacos-config-example.propertiesgroupDEFAULT_GROUPcontentspring.cloud.nacos.config.serveraddr127.0.0.1:8848%0Aspring.cloud.nacos.config.prefixPREFIX%0Aspring.cloud.nacos.config.groupDEFAULT_GROUP%0Aspring.cloud.nacos.config.namespaceNAMESPACE修改nacos的配置
再次请求 http://127.0.0.1:18084/nacos/bean 地址可以看到应用已经从 Nacos 中获取到了最新的数据。
$ curl http://127.0.0.1:18084/nacos/bean响应结果
{serverAddr: 127.0.0.1:8848,prefix: PREFIX,namespace: NAMESPACE,group: DEFAULT_GROUP
}服务注册与发现 服务注册是指服务被注册到nacos中nacos可以对服务进行管理。
服务发现是指当一个服务consumer请求另一个服务provider时由nacos发现 providerconsumer才去获取provider提供的服务。如果没有nacosconsumer找不到provider。
服务注册 将服务注册到Nacos中
微服务的节点都需要注册到服务注册中心 1加依赖
需要在 pom.xml 文件中引入 group ID 为 com.alibaba.cloud 和 artifact ID 为 spring-cloud-starter-alibaba-nacos-discovery 的 starter
dependency groupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId
/dependency2加配置
添加应用配置在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址
spring.cloud.nacos.discovery.server-addr127.0.0.1:8848
spring.application.nameservice-provider #这里的name配置了服务的名称。
server.port180823加注解 使用 EnableDiscoveryClient 注解开启服务注册与发现功能 SpringBootApplication
EnableDiscoveryClient
public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);}RestControllerclass EchoController {GetMapping(value /echo/{string})public String echo(PathVariable String string) {return string;}}
}启动应用并验证 启动provider应用 IDE直接启动找到 nacos-discovery-provider-example 项目的主类 ProviderApplication执行 main 方法启动应用。报错 提示找不到或无法加载主类 com.alibaba.cloud.examples.ProviderApplication
rebuild清除IDEA缓存都没解决
单独打开这个服务运行就可以了 发现服务已被注册到Nacos 服务发现
这一节涉及到了另外的组件feign需要前置知识。
启动nacos-discovery-consumer-example 访问127.0.0.1:18083/echo-rest/1234 返回的是provider的/echo/string方法的结果说明消费者请求到了提供者提供的服务。 请求 http://127.0.0.1:18083/echo-feign/12345 地址可以看到响应显示了 nacos-discovery-provider-example 返回的消息 hello Nacos Discovery 12345证明服务发现生效。