微服务注册中心nacos学习:先尝试使用它,然后撸它源码搞懂它。

在这里整理一下自己之前集成nacos的内容。

我的github地址:https://github.com/mrxiaobai-wen/springcloud_study.git

前置条件:下载nacos并安装启动。

服务提供者集成

创建一个Spring Cloud项目,即nacos-server-spring-cloud。

引入Nacos的依赖

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

配置nacos连接

bootstrap.yml配置内容:

server:
port: 8021 spring:
application:
name: nacos-server-spring-cloud
cloud:
nacos:
discovery:
server-addr: http://localhost:8848
config:
server-addr: http://localhost:8848
file-extension: yaml

在application.yml中添加一个ceshi.version配置,用于后面测试nacos配置中心:

ceshi:
version: dev

创建启动类

@SpringBootApplication
@EnableDiscoveryClient
@EnableConfigurationProperties
public class NacosServerSpringCloudApplication { @Resource
private ConfigBean configBean; public static void main(String[] args) {
SpringApplication.run(NacosServerSpringCloudApplication.class, args);
} @RestController
class EchoController {
@RequestMapping(value = "/server/echo/{string}", method = RequestMethod.GET)
public String echo(@PathVariable String string) {
return "Hello Nacos Discovery " + string + " 当前版本:" + configBean.getVersion();
}
} }
@ConfigurationProperties("ceshi")
@Component
public class ConfigBean { public String version; public String getVersion() {
return version;
} public void setVersion(String version) {
this.version = version;
}
}

就这样,启动上面的NacosServerSpringCloudApplication后,就可以在本地nacos服务列表中查看到当前服务了,然后在nacos配置中心里面新建一个nacos-server-spring-cloud.yml文件,变更发布ceshi.version的值,然后访问localhost:8021/server/echo/{string}就可以看到变更的内容了。

这样就简单的完成了服务注册和配置动态管理。

采坑

我在最开始的时候,将bootstrap.yml的内容放在application.yml中,然后在配置中心一起发布,但是配置变更一直没有生效。然后经过一番摸索后,拆成了bootstrap.yml和application.yml两个配置文件后,配置动态变更生效了。

Spring Cloud获取数据的时候,其dataId的拼接格式为:${prefix} - ${spring.profiles.active} . ${file-extension}。其中prefix默认为spring.application.name的值,如果配置了多环境,spring.profiles.active即为配置的环境的值。

服务消费者集成

创建一个Spring Cloud项目,即nacos-consumer-spring-cloud。

依赖与上面一致。application.yml配置也与上面一致。

创建启动类

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerSpringCloudApplication { public static void main(String[] args) {
SpringApplication.run(NacosConsumerSpringCloudApplication.class, args);
} @LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
} @RestController
public class TestController { private final RestTemplate restTemplate; @Autowired
public TestController(RestTemplate restTemplate) {this.restTemplate = restTemplate;} @RequestMapping(value = "/consumer/echo/{str}", method = RequestMethod.GET)
public String echo(@PathVariable String str) {
return restTemplate.getForObject("http://nacos-server-spring-cloud/server/echo/" + str, String.class);
}
}
}

然后将上面的nacos-server-spring-cloud和这个消费服务一起启动。然后访问当前的消费服务,访问/consumer/echo/{str}接口,可以看到请求最终转到了上面的那个服务中。

而我们的请求地址是http://nacos-server-spring-cloud/server/echo/,这就是注册中心的作用,我们不用关注server服务的具体地址,只是请求nacos-server-spring-cloud即可。

Nacos集成学习入门的更多相关文章

  1. 【笔记】集成学习入门之soft voting classifier和hard voting classifier

    集成学习入门之soft voting classifier和hard voting classifier 集成学习 通过构建并结合多个学习器来完成学习任务,一般是先产生一组"个体学习器&qu ...

  2. 使用sklearn进行集成学习——实践

    系列 <使用sklearn进行集成学习——理论> <使用sklearn进行集成学习——实践> 目录 1 Random Forest和Gradient Tree Boosting ...

  3. 使用sklearn进行集成学习——理论

    系列 <使用sklearn进行集成学习——理论> <使用sklearn进行集成学习——实践> 目录 1 前言2 集成学习是什么?3 偏差和方差 3.1 模型的偏差和方差是什么? ...

  4. [转]使用sklearn进行集成学习——理论

    转:http://www.cnblogs.com/jasonfreak/p/5657196.html 目录 1 前言2 集成学习是什么?3 偏差和方差 3.1 模型的偏差和方差是什么? 3.2 bag ...

  5. [转]使用sklearn进行集成学习——实践

    转:http://www.cnblogs.com/jasonfreak/p/5720137.html 目录 1 Random Forest和Gradient Tree Boosting参数详解2 如何 ...

  6. 【Unity游戏开发】SDK接入与集成——小白入门篇

    一.简介 通常一款游戏开发到后期,一般都会涉及到第三方SDK的接入与集成,对于不熟悉SDK接入的同学来说,接SDK每次都是云里雾里,而熟悉SDK接入的同学又觉得不断地重复做接入SDK工作这样没有成就感 ...

  7. Android studio 安装与配置【Android学习入门】

    终于下定决心认真学习Android开发了. 之前在很多平台看到很多大牛们学习Android的经验和心得,纸上得来终觉浅. 这里推荐stormzhang老师总结的Android学习之路. 为了防止电脑卡 ...

  8. 01-Spring Security框架学习--入门(二)

    一.入门案例 Spring Security 自定义登录界面 通过之前的一节 01-Spring Security框架学习--入门(一)的简单演示,Spring security 使用框架自带的登录界 ...

  9. Spring Cloud - Nacos注册中心入门单机模式及集群模式

    近几年微服务很火,Spring Cloud提供了为服务领域的一整套解决方案.其中Spring Cloud Alibaba是我们SpringCloud的一个子项目,是提供微服务开发的一站式解决方案. 包 ...

随机推荐

  1. Spring Boot 日志各种使用姿势,是时候捋清楚了!

    @ 目录 1. Java 日志概览 1.1 总体概览 1.2 日志级别 1.3 综合对比 1.4 最佳实践 2. Spring Boot 日志实现 2.1 Spring Boot 日志配置 2.2 L ...

  2. 浅谈JAVA代码优化

    JAVA代码的优化分为两个方面: 一.减小代码的体积.二.提高代码的执行效率. ============================================================ ...

  3. 设计模式——责任链(结合Tomcat中Filter机制)

    设计模式:责任链模式 说责任链之前,先引入一个场景,假如规定学生请假小于或等于 2 天,班主任可以批准:小于或等于 7 天,系主任可以批准:小于或等于 10 天,院长可以批准:其他情况不予批准:以此为 ...

  4. 附029.Kubernetes安全之网络策略

    目录 环境构建 基础环境构建 网络测试 安全策略 策略配置 策略测试 ingress方向测试 egress方向测试 to和from行为 默认策略 环境构建 基础环境构建 [root@master01 ...

  5. java基础模拟考试三套试卷

    卷1: 一.单选题(15道,共30分) //1.下列关于JDK.JRE.JVM关系描述正确的是 (A) A:JDK是开发工具,包含了JRE.JRE是运行环境,包含了JVM.JVM是虚拟机,可以保证跨平 ...

  6. EF Core扩展工具记录 批量操作 记录修改删除历史 动态linq

      Microsoft.EntityFrameworkCore.UnitOfWork  Microsoft.EntityFrameworkCore的插件,用于支持存储库,工作单元模式以及支持分布式事务 ...

  7. 对路径binroslyn..的访问被拒绝

    一开始的解决办法就是把bin下的文件都删除了,但是roslyn文件夹下的部分文件一直被占用,必须进程中把vbcscompiler进程干掉,才能删除,再重新编译,就没问题了.

  8. 微信小说分销系统设计之使用百度Echarts地图统计功能统计微信粉丝地域分布情况

    /** 转载请保留博客园原地址以及版权声明,请勿恶意修改,本博客中的内容均属于技术交流,请勿用于商业用途,谢谢配合 *  作者:杨浩瑞  QQ:1420213383  独立博客:http://www. ...

  9. Adnroid 源码学习笔记:Handler 线程间通讯

    常见的使用Handler线程间通讯: 主线程: Handler handler = new Handler() { @Override public void handleMessage(Messag ...

  10. 英特尔® 图形性能分析器(Intel® GPA)

    英特尔图形性能分析器概述 英特尔 GPA 是一套软件工具,它能提供平台级游戏性能分析功能,优化应用性能. 英特尔 GPA 包含以下组件: 英特尔 GPA 监控器 - 将英特尔 GPA 连接至应用(处于 ...