如何从下载的视频查到原网站,西宁网站建设西宁,湖南住房和城乡建设厅官网,为什么打开谷歌浏览器是2345网址导航nacos配置与使用 nacos初步使用nacos安装与配置创建命名空间 nacos使用与配置创建新项目作为父项目 创建nacos服务端项目pom.xmlapplication.yml启动类 创建nacos客户端项目pom.xml application.yml启动类 启动测试 nacos配置负载均衡改造生产者nacos-provider-projectcontroll… nacos配置与使用 nacos初步使用nacos安装与配置创建命名空间 nacos使用与配置创建新项目作为父项目 创建nacos服务端项目pom.xmlapplication.yml启动类 创建nacos客户端项目pom.xml application.yml启动类 启动测试 nacos配置负载均衡改造生产者nacos-provider-projectcontroller层 改造消费者nacos-consumer-project配置负载均衡controller 测试 nacos配置中心创建命名空间修改生产者nacos-provider-project增加一个配置文件bootstrap.properties在controller层增加注解RefreshScope 测试 nacos初步使用
Nacos 是阿里巴巴推出来的一个新开源项目这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 简单来说nacos可以用来管理一个springcloud项目中各个模块与组件。安装运行nacos后可以在专门的页面上看到注册进nacos的各个模块的信息。 以上是个人理解如有不对可在评论区纠正。
nacos安装与配置
GitHub下载地址 在此目录下进入cmd 输入命令startup.cmd -m standalone 访问控制台中的地址用户名密码都是nacos 如果这里访问页面的IP地址与本机地址不同说明nacos使用了虚拟网卡。如果想要ip地址为本机ip需要在网络适配器中禁用虚拟卡
创建命名空间 创建成功后系统会生成一个唯一的id这个id写在生产者与消费者的yml文件中下文已写出。这样nacos会将项目中的服务注册到指定的命名空间中避免多个项目混淆。
nacos使用与配置
创建新项目作为父项目
创建新项目后删除src文件夹只保留pom.xml pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.hzx/groupIdartifactIdtestmaven32springcloud/artifactIdversion1.0-SNAPSHOT/versionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.3.2.RELEASE/version/parentdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId/dependency!--spring cloud alibaba 2.2.6.RELEASE--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.2.6.RELEASE/versiontypepom/typescopeimport/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
/project我的springboot版本是2.3.2对应的springcloud-alibaba版本是2.2.6。需要注意springboot和springcloud alibaba版本要相对应。
创建nacos服务端项目
名字是nacos-provider-project
pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtestmaven32springcloud/artifactIdgroupIdcom.hzx/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdnacos-provider-project/artifactIddependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion2.3.2.RELEASE/version/dependency!--discovery依赖是用来注册到nacos客户端的--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2.2.7.RELEASE/version/dependency!--config依赖是用来完成配置中心功能--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion2.2.7.RELEASE/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build/projectapplication.yml
server:port: 8081
spring:cloud:nacos:discovery:server-addr: http://192.168.220.1:8848namespace: 8302a253-b30a-4a13-bdeb-0caf566317b9application:name: nacos-provider启动类
SpringBootApplication
EnableDiscoveryClient
public class StartNacosProvider{public static void main(String[] args) throws Exception {SpringApplication.run(StartNacosProvider.class, args);}
}创建nacos客户端项目
名字是nacos-consumer-project
pom.xml
与服务端的pom.xml依赖一致
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtestmaven32springcloud/artifactIdgroupIdcom.hzx/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdnacos-consumer-project/artifactIddependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion2.3.2.RELEASE/version/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2.2.7.RELEASE/version/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion2.2.7.RELEASE/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build
/projectapplication.yml
server:port: 8091
spring:cloud:nacos:discovery:server-addr: http://192.168.220.1:8848namespace: 8302a253-b30a-4a13-bdeb-0caf566317b9application:name: nacos-consumer启动类
SpringBootApplication
EnableDiscoveryClient
public class StartNacosConsumer {public static void main(String[] args) throws Exception {SpringApplication.run(StartNacosConsumer.class, args);}
}启动测试
先启动服务端再启动客户端 在nacos网站可以看到服务已经注册进nacos中 nacos配置负载均衡
改造生产者nacos-provider-project
controller层
RestController
public class ProviderController {Value(${server.port})private String port;RequestMapping(value /nacos/provider/get/{id},method RequestMethod.GET)public String getNacosProvider(PathVariable Integer id){return 使用provider中的方法端口号port传来参数id;}
}改造消费者nacos-consumer-project
配置负载均衡
Configuration
public class ConsumerConfig {BeanLoadBalancedpublic RestTemplate getRestTemplate(){return new RestTemplate();}
}controller
RestController
public class ConsumerController {Autowiredprivate RestTemplate restTemplate;RequestMapping(value /nacos/consumer/get/{id},method RequestMethod.GET)public String getNacosConsumer(PathVariable Integer id){return restTemplate.getForObject(http://nacos-provider/nacos/provider/get/id,String.class);}
}测试
现在启动两个生产者,先启动一个生产者然后修改一下端口号再启动一个生产者 现在有两个 生产者端口号分别为8081和8082。 启动消费者消费者端口号为8091 现在通过apifox调用消费者的接口 根据返回值可以看到消费者分别调用了两个生产者的接口达成负载均衡的效果。 可以在nacos网站未各个生产者分配权重。权重越高被访问的频率越高权重设置为0则实例完全不会被访问。 使用负载均衡可以合理利用资源服务器性能有差异当实例部署在性能不同的机器上时可以通过设置权重让性能好的机器承担更多的用户请求另外在升级服务时通过调整权重进行平滑升级例如把实例1权重调节为0用户只能去调用实例2、实例3的情况待实例1升级后也可以将实例1的权重设置为0.1让一部分用户先体验实例1稳定后再调高权重。 nacos配置中心
SpringCLoud Alibaba的Nacos相对于SpringCloud而言实现了Eureka和Config和Ribbon的作用上面已经介绍了nacos对应eureka可ribbon的内容下面介绍config的内容。 nacos的配置中心中所有服务使用nacos上面的配置不走本地配置。
创建命名空间
现在nacos网站上创建一个新的命名空间
修改生产者nacos-provider-project
增加一个配置文件bootstrap.properties
配置文件是先加载bootstrap再加载application所有读取nacos的配置写在bootstrap配置里。
spring.application.namenacos-provide-config-center
spring.cloud.nacos.config.server-addrhttp://192.168.220.1:8848
spring.cloud.nacos.config.file-extensionyaml
spring.cloud.nacos.config.namespace8302a253-b30a-4a13-bdeb-0caf566317b9
spring.profiles.activedev
spring.cloud.nacos.config.refresh-enabledtrue在nacos网站里同样需要配置
bootstrap.properties文件中输入的内容与在网页里配置的内容相一致
application.name会对应nacos上面配置文件的dataid值server-addr是nacos的地址file-extension是对应nacos上面配置文件的扩展名namespace是对应nacos上面配置文件所属的命名空间active是表示后缀使用哪个配置文件例如nacos-provide-config-center-dev.yamlnacos-provide-config-center-test.yamlrefresh-enabled是开启配置文件自动刷新修改nacos的配置文件后默认不会自动刷新除非重启服务。注意需要结合RefreshScope注解一起使用在controller层增加注解RefreshScope 测试
启动生产者与消费者后可以在nacos网站的配置中看到端口号与本地不同。