开发者学堂课程【Spring Cloud Alibaba Nacos 详解(上):应用于分布式系统-微服务创建】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/724/detail/12925
应用于分布式系统-微服务创建
内容介绍
一. Nacos 配置管理
二.应用在分布式系统中
三.发布
四.Spring cloud 是什么
五.如何使用
一. Nacos 配置管理
1.用户通过 Nacos serverServer 的控制台集中对多个服务的配置进行管理。
2.各服务统一从 Nacos Server 中获取各自的配置,并监听配置的变化。
二. 应用在分布式系统中
如何应用在分布式系统中,典型的微服务架构使用图,
如图:
使用 Nacos 进行配置管理的具体过程,可以看到 Nacos Serber 就是整个 Nacos 架构服务发现中心,下边的两个Service 就是所说的微服务。
分别是 Provider service 和 Corsumer service 这两个配置都会在两个 Server 当中去发布,这里面要清楚各个微服务要获取监听配置,获取配置指的是远程从Server 当中去获取它的配置文件信息,所谓监听配置就是变更的时候 Nacos Server 会通知这个 Servers 那 Servers 就会获取到最新更新的配置信息,这就是整个配置管理的流程。
三、发布
在创建微服务的时候我们可以在 dev 里面去创建 Data ID 就是我们说的配置文件,接下来要发布配置,发布之后各个微服务要获取配置,首先在 Nocos 当中去发布配置,接下来去创建两个微服务,并且用微服务去获取配置,下面按照这个流程去发布配置这两个微服务我们分别起名为 Service1和 Service2。
首先我们在 Dev的Service当中来发布两个微服务对应的文件,我们来添加配置,首先发布的时候要切到 dev的配置中,我们选择 yaml 格式,这里面进行配置管理测试,我们把流程调通了,之后把配置文件内容改成一个系统所用的配置文件内容,重点是流程得调通,接下来就可以发布,并且Test group就是我们说的定义的组。
接下来用相同的说法来配置Service2,现在我们就把它配置文件的内容写上去,刚才是 Service1 config 现在是 Service 2 config ,点发布,然后就发布成功。
发布成功完了就要获取配置,获取配置就是要把两个微服务建立起来。两个微服务会依赖相同的依赖,通常我们是建立一个副工程,这里我们打开 Idea 然后在这里面新建一个 Project 点完成,然后这里面的 Nacos 副工程就弄好了,这个副工程的主要内容就是它的 pom 文件,我们这里就是规范它的依赖,这里把它的插件拷过来,我们最终把微服务架构当中,将当前比较流行的微服务架构 Spring cloud 以及当前阿里巴巴新出的一套的微服务新出的套件,之后会介绍阿里巴巴里面的 spring 阿里巴巴和 Spring—cloud ,所以我们先把三个依赖加进去,会使用 Spring 的阿里巴巴的套件进行开发,所以这里面需要把 Spring 的阿里巴巴和 spring 的 Cloud 都添加进来,这就是我们说的副工程。
然后刷新一下,接下来我们就要创建微服务,就是两个微服务,一个 Service1 一个 Service2了,这两个微服务,我们知道刚才依赖里面我们依赖了 Spring 阿里巴巴。
四. Spring cloud是什么
Spring Cloud 是一系列框架的有序集合。
它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础 设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,不会独立的去开放,创建这些,但是是集成的中心,都可以用 Spring Boot 的开发风格做到一键启动和部署。
Spring Cloud 并没有重复制造轮子,它只是将目前各家公司开发的比 较成熟、经得起实际考验的服务框架组合起来,集成最多的组件要属 Netflix 公司,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud Alibaba Nacos Discovery 是 Spring Cloud Alibaba 的子项目,而 Spring Cloud Alibaba 是阿里巴巴公司提供的开源的基于 Springcloud 的微服务套件合集,它致力于提供微服务开发的一站式解决方案,可以理解为spring cloud是一套微服务开发的标准,spring cloud alibaba 与 spring cloud Netlix是实现。
使用 Spring Cloud Alibaba 方案,开发者只需要添加一些注解和少量配置,就可以将Spring cloud 应用接入到阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统,由于 Nacos 是阿里的中间件,因此,若开发 spring cloud 微服务应用,使用 spring cloud alibaba Nacos config 来集成 Nacos 的配置管理功能是比较明智的选择。
五.怎么使用
1.新建项目 service1
首先新增一个名为 Service1工程,
并添加 Group ID 为 com.alibabacloub 和 Artifact id
为Spring cloud starter alibaba config 的 Starter.service1新建的时候我们找到模块,新建一个副工程,完成模块名,
这时Service1 就创建好了,选择副工程,1就变成了2了,这样两个微服务工程都是新建的 Nacos config,我们要用的是阿里巴巴提供的集成 Nacos 的 Cloud starte alibaba Nacos config,
这个非常长但是是有规律的, Nacos 配置管理的时候的一套依赖,所以整个项目基于 spring 的开发,所以就是它的依赖,那么同样的道理,service2 当中也要加这样的依赖,到这为止 service1 和 service2。
2. Bootstrap.yml 配置
一般来说, Spring boot 的配置将在 Application.yml 文件中编写,由于使用外部配置中心,必须将原先的 Application.yml 重命名 Bootstrap.yml,Bootstrap.yml
如下所示:
spring.cloud.Nacos .config.server-addr 指定了 Nacos server 的网络地址和端口号。
启动得有一个配置文件,这个配置文件的内容首先要定义端口, Spring工程的名称从这里开始就只是 spring cloud,它的一系列的配置在这里,拷过去,可以看到配置名和配置中心,配置文件的扩展名,DataID的名称就是我们看到的 application 的 name 加上扩展名,就是从配置文件上看不到配置文件是什么,其实当系统启动的时候,它就会从配置中心读取配置文件,读取的配置文件就是 Service1.yml ,
它之所以知道读取配置文字,是因为它读取的时候是有规律的,这个 Name 叫 Service1 就是我们的共同名,这个扩展名叫 ynm,这个项目的名称加上扩展名就是测试的,我们将开发 dev 的配置上去,所以里面没有配置ID 其实这里面会自动找到 Service1.,ynm,就是根据项目名和扩展名组成了 ID,还有 ,Spring 都可以找 Data ID 具体配置文件的内容,这就是我们说到到 Nacos 整合到阿里巴巴的具体方法。
3.启动客户端
具体启动客服端的话,就要启动客服类了,
新建一个 com.itheina.Nacos .在下面就可以叫 Service1,这个启动类就叫 spring boot 的启动类,我们说最终我们需要去获取配置,配置类先写好,Spring boot 的启动方式,就是 Class 加 Args,只要运行这个方法,整个项目就启动起来了,同样的方法我们把Service2也启动一下,我们先创建好,这个就是 Service2,这里面需要去把上面的程序创建一个包,Service2 的微服务,下边走,微服务创建好了,我们在配置文件的时候要读取,Nacos 的配置中心,这里面配置的信息我们要了解,要根据项目名自动找到 ID,这两个微服务的构建就完成。