东莞规划局官方网站,福建省网站建设有限公司,营销型网站多少钱,富阳网站建设报价文章目录Nacos详细使用操作文档(图文详细)1、安装2、Nacos作为注册中心2.1、Nacos服务注册【ICRMS】2.2、Nacos 服务调用2.2.1、Feign 远程调用【Personnel】2.2.2)、RestTemplateRibbon 远程调用【Personnel】3、Nacos作为配置中心4、Nacos 命令空间5、Nacos配置文件参数详解N…
文章目录Nacos详细使用操作文档(图文详细)1、安装2、Nacos作为注册中心2.1、Nacos服务注册【ICRMS】2.2、Nacos 服务调用2.2.1、Feign 远程调用【Personnel】2.2.2)、RestTemplateRibbon 远程调用【Personnel】3、Nacos作为配置中心4、Nacos 命令空间5、Nacos配置文件参数详解Nacos详细使用操作文档(图文详细)
1、安装
官方链接: https://nacos.io/zh-cn/docs/what-is-nacos.html参考地址(单机版): https://blog.csdn.net/weixin_44187730/article/details/104263230参考地址(集群版): https://blog.csdn.net/weixin_44187730/article/details/104552937
2、Nacos作为注册中心
2.1、Nacos服务注册【ICRMS】
1、导入服务发现功能的jar包
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId
/dependency2、开启服务注册发现功能
package com.moonpac.icrms.config;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;/*** Copyright (C), 2016-2022 MP* ClassName: ICRMSCloudConfig* Author: hf* Date: 2022/9/4 16:07* Description: ICRMS服务 - 关于Nacos配置-服务注册-服务发现-Feign远程调用*/
Configuration
EnableDiscoveryClient
EnableFeignClients(basePackages com.moonpac.icrms.feign)
public class ICRMSCloudConfig {}
3、编写bootstrap.yaml配置、指定Nacos的服务地址
spring:application:#服务名称name: aiops-icrmscloud:nacos:discovery:# 集群方式多个地址以,分割server-addr: 10.173.28.204:88482.2、Nacos 服务调用
2.2.1、Feign 远程调用【Personnel】
①、导入feign进行远程调用功能
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId
/dependency②、消费端调用写法,声明式调用【声明调用接口】
package com.moonpac.personnel.feign;import com.moonpac.personnel.feign.fallback.ICRMSTestFeignServiceFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;/*** Copyright (C), 2016-2022 MP* ClassName: ICRMSTestController* Author: hf* Date: 2022/9/4 16:27* Description: ICRMS 测试Feign调用*/
FeignClient(//指定服务名,nacos注册的服务名name aiops-icrms,//指定容错类-当远程调用失败时进入容错类中fallbackFactory ICRMSTestFeignServiceFallbackFactory.class
)
//指定公共请求前缀
RequestMapping(/icrms)
public interface ICRMSTestFeignService {GetMapping(/list)ListString list();
}③、Feign容错类
package com.moonpac.personnel.feign.fallback;import com.moonpac.personnel.feign.ICRMSTestFeignService;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;import java.util.Arrays;
import java.util.List;/*** Copyright (C), 2016-2022 MP* ClassName: ICRMSTestServiceFallbackFactory* Author: hf* Date: 2022/9/4 16:29* Description: Feign 远程调用容错*/
Service
Slf4j
public class ICRMSTestFeignServiceFallbackFactory implements FallbackFactoryICRMSTestFeignService {Overridepublic ICRMSTestFeignService create(Throwable throwable) {//捕获到异常throwable.printStackTrace();return new ICRMSTestFeignService() {//捕获到异常Overridepublic ListString list() {return Arrays.asList(Feign远程调用报错了...,错了);}};}
}④、配置类
package com.moonpac.personnel.config;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;/*** Copyright (C), 2016-2022 MP* ClassName: PersonnelCloudConfig* Author: hf* Date: 2022/9/4 16:23* Description: Personnel服务关于Nacos配置-服务注册-服务发现-Feign远程调用*/
Configuration
EnableDiscoveryClient
EnableFeignClients(basePackages com.moonpac.personnel.feign)
public class PersonnelCloudConfig {}⑤、controller写法
package com.moonpac.personnel.controller;import com.moonpac.personnel.feign.ICRMSTestFeignService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** Copyright (C), 2016-2022 MP* ClassName: PersonnelFeignController* Author: hf* Date: 2022/9/4 16:43* Description: Feign 远程调用服务*/
Slf4j
RestController
RequestMapping(/personnel)
RequiredArgsConstructor
public class PersonnelFeignController {private final ICRMSTestFeignService icrmsTestFeignService;GetMapping(/list)public Object list() {//远程调用开始,即将通过Feign 远程调用接口log.info(远程调用开始,即将通过Feign 远程调用其它服务接口...);return icrmsTestFeignService.list();}}⑥、调用效果 2.2.2)、RestTemplateRibbon 远程调用【Personnel】
① 配置类
package com.moonpac.personnel.config;import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;/*** Copyright (C), 2016-2022 MP* ClassName: PersonnelRestTemplateConfig* Author: hf* Date: 2022/9/4 16:59* Description: Personnel 用户中心服务 RestTemplate配置*/
Configuration
public class PersonnelRestTemplateConfig {LoadBalancedBeanpublic RestTemplate restTemplate() {return new RestTemplate();}
}② controller写法
package com.moonpac.personnel.controller;import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;/*** Copyright (C), 2016-2022 MP* ClassName: PersonnelTemplateController* Author: hf* Date: 2022/9/4 16:43* Description: RestTemplate 远程调用服务*/
Slf4j
RestController
RequestMapping(/personnel/template)
RequiredArgsConstructor
public class PersonnelTemplateController {private static final String ICRMS_SERVER_ADDR http://aiops-icrms;private final RestTemplate restTemplate;ApiOperation(RestTemplate 测试调用)GetMapping(/list)public Object list() {log.info(RestTemplate 测试远程调用.....);return restTemplate.getForEntity(ICRMS_SERVER_ADDR /icrms/list, Object.class);}}③、调用效果 3、Nacos作为配置中心
配置中心: 集中管理配置、配置动态更新、回滚配置…
1、导入服务发现功能的jar包
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId
/dependency2、创建一个bootstrap.yaml或bootstrap.properties必须叫此名称 SpringBoot默认规则,bootstrap.yaml里面的配置优先于application.yaml配置。
#Nacos 配置中心配置
spring:application:name: aiops-personnelcloud:nacos:config:# nacos 地址server-addr: 10.173.28.204:88483、默认配置规则 dataId 配置文件名 .properties或.yamlprefix−{prefix}-prefix−{spring.profile.active}.${file-extension}前缀-当前环境.文件扩展名 prefix 默认为 spring.application.name 的值也可以通过配置项 spring.cloud.nacos.config.prefix来配置。spring.profile.active 即为当前环境对应的 profile详情可以参考 Spring Boot文档。 注意当 spring.profile.active 为空时对应的连接符 - 也将不存在dataId 的拼接格式变成 prefix.{prefix}.prefix.{file-extension}file-exetension 为配置内容的数据格式可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
aiops-icrms.properties aiops-icrms.yaml 总结: 只需要给Nacos中创建一个dataId名称叫做 当前项目名.properties 当前项目名.yaml
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDBXHlaq-1676619824775)(./images/nacos/604EF494-59ED-4b33-9C22-DC40E94397D0.png)]
4、开启域刷新动态获取配置,实例代码
package com.moonpac.personnel.controller;import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;/*** Copyright (C), 2016-2022 MP* ClassName: PersonnelParamsConfig* Author: hf* Date: 2022/9/4 17:16* Description:*/
Slf4j
RestController
RequestMapping(/personnel/params)
RequiredArgsConstructor
//开启域动态刷新主类配置
RefreshScope
public class PersonnelParamsConfigController {Value(${personnel.version:11})private String personnelVersion;Value(${personnel.content:11})private String personnelContent;ApiOperation(Nacos配置中心测试)GetMapping(/getParams)public Object getP() {HashMapObject, Object hashMap new HashMap(3);hashMap.put(content, personnelContent);hashMap.put(version, personnelVersion);return hashMap;}}
5、所有的配置信息都可以写到Nacos中。
4、Nacos 命令空间
1、Nacos命名空间概念 命名空间:主要用于区分不同环境。默认情况,本项目在public下找 项目名.properties文件 项目名.yamlNacos组: 可以区分不同业务,不同业务不同组。
最佳实践 使用namespace来区分不同的服务【每个服务都有自己的名称空间】。 使用Group来区分不同环境【dev,prod,test】 2、配置命名空间
#Nacos 配置中心配置
spring:application:name: aiops-personnelcloud:nacos:config:# nacos 地址server-addr: 10.173.28.204:8848# 设置默认的文件类型file-extension: yaml# 设置命名空间--此处填写的是ID 重要!!!# 设置命名空间--此处填写的是ID 重要!!!# 设置命名空间--此处填写的是ID 重要!!!namespace: 9dbdfc95-0174-49bd-9c2a-bc276ca41ecc3、Nacos添加管理配置文件 4、加载使用配置
#Nacos 配置中心配置
spring:application:name: aiops-personnelcloud:nacos:config:# nacos 地址server-addr: 10.173.28.204:8848# 设置默认的文件类型file-extension: yaml# 设置命名空间--此处填写的是ID 重要!!!namespace: 9dbdfc95-0174-49bd-9c2a-bc276ca41eccextension-configs:# 批量加载配置文件- {dataId: application-monitor.yaml,group: DEV,refresh: true}- {dataId: application-logback.yaml,group: DEV,refresh: true}- {dataId: application-sentinel.yaml,group: DEV,refresh: true}- {dataId: application-zipkin.yaml,group: DEV,refresh: true}5、Nacos配置文件参数详解
参考链接: https://blog.csdn.net/qq_40309050/article/details/124325382