应用于分布式系统-微服务创建 | 学习笔记

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 快速学习应用于分布式系统-微服务创建。

开发者学堂课程【Spring Cloud Alibaba Nacos 详解(上)应用于分布式系统-微服务创建】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/724/detail/12925


应用于分布式系统-微服务创建

 

内容介绍

. Nacos  配置管理

.应用在分布式系统中

.发布

.Spring cloud 是什么

.如何使用


. Nacos  配置管理

1.用户通过 Nacos  serverServer 的控制台集中对多个服务的配置进行管理。

2.各服务统一从 Nacos  Server 中获取各自的配置,并监听配置的变化。

 

二.  应用在分布式系统中

如何应用在分布式系统中,典型的微服务架构使用图,

如图:

图片.png

 

 

使用 Nacos  进行配置管理的具体过程,可以看到 Nacos Serber 就是整个 Nacos 架构服务发现中心,下边的两个Service 就是所说的微服务。

分别是 Provider service Corsumer service 这两个配置都会在两个 Server 当中去发布,这里面要清楚各个微服务要获取监听配置,获取配置指的是远程从Server 当中去获取它的配置文件信息,所谓监听配置就是变更的时候 Nacos  Server 会通知这个 Servers Servers 就会获取到最新更新的配置信息,这就是整个配置管理的流程。

 

三、发布

在创建微服务的时候我们可以在 dev 里面去创建 Data ID 就是我们说的配置文件,接下来要发布配置,发布之后各个微服务要获取配置,首先在 Nocos 当中去发布配置,接下来去创建两个微服务,并且用微服务去获取配置,下面按照这个流程去发布配置这两个微服务我们分别起名为 Service1 Service2

首先我们在 DevService当中来发布两个微服务对应的文件,我们来添加配置,首先发布的时候要切到 dev的配置中,我们选择 yaml 格式,这里面进行配置管理测试,我们把流程调通了,之后把配置文件内容改成一个系统所用的配置文件内容,重点是流程得调通,接下来就可以发布,并且Test group就是我们说的定义的组。

 

图片.png

接下来用相同的说法来配置Service2,现在我们就把它配置文件的内容写上去,刚才是 Service1 config 现在是 Service 2 config ,点发布,然后就发布成功。

 

图片.png

 

发布成功完了就要获取配置,获取配置就是要把两个微服务建立起来。两个微服务会依赖相同的依赖,通常我们是建立一个副工程,这里我们打开 Idea 然后在这里面新建一个 Project 点完成,然后这里面的 Nacos  副工程就弄好了,这个副工程的主要内容就是它的 pom 文件,我们这里就是规范它的依赖,这里把它的插件拷过来,我们最终把微服务架构当中,将当前比较流行的微服务架构 Spring cloud 以及当前阿里巴巴新出的一套的微服务新出的套件,之后会介绍阿里巴巴里面的 spring 阿里巴巴和 Springcloud ,所以我们先把三个依赖加进去,会使用 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.ymlBootstrap.yml

如下所示:

spring.cloud.Nacos .config.server-addr 指定了 Nacos  server 的网络地址和端口号。

启动得有一个配置文件,这个配置文件的内容首先要定义端口, Spring工程的名称从这里开始就只是 spring cloud,它的一系列的配置在这里,拷过去,可以看到配置名和配置中心,配置文件的扩展名,DataID的名称就是我们看到的 applicationname 加上扩展名,就是从配置文件上看不到配置文件是什么,其实当系统启动的时候,它就会从配置中心读取配置文件,读取的配置文件就是 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,这两个微服务的构建就完成。

相关文章
|
9天前
|
运维 持续交付 开发工具
深入浅出:GitOps在微服务架构中的应用
【10月更文挑战第26天】本文深入探讨了GitOps在微服务架构中的应用,介绍了其核心理念、自动化部署流程和增强的可观测性。通过实例展示了GitOps如何简化服务部署、配置管理和故障恢复,并推荐了一些实用工具和开发技巧。
|
1天前
|
Go 数据处理 API
Go语言在微服务架构中的应用与优势
本文摘要采用问答形式,以期提供更直接的信息获取方式。 Q1: 为什么选择Go语言进行微服务开发? A1: Go语言的并发模型、简洁的语法和高效的编译速度使其成为微服务架构的理想选择。 Q2: Go语言在微服务架构中有哪些优势? A2: 主要优势包括高性能、高并发处理能力、简洁的代码和强大的标准库。 Q3: 文章将如何展示Go语言在微服务中的应用? A3: 通过对比其他语言和展示Go语言在实际项目中的应用案例,来说明其在微服务架构中的优势。
|
7天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
39 1
|
18天前
|
存储 Kubernetes 监控
深度解析Kubernetes在微服务架构中的应用与优化
【10月更文挑战第18天】深度解析Kubernetes在微服务架构中的应用与优化
75 0
|
18天前
|
运维 Kubernetes 负载均衡
深入探索Kubernetes在微服务架构中的应用
【10月更文挑战第18天】深入探索Kubernetes在微服务架构中的应用
48 0
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
2月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
3月前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
3月前
|
负载均衡 应用服务中间件 持续交付
微服务架构下的Web服务器部署
【8月更文第28天】随着互联网应用的不断发展,传统的单体应用架构逐渐显露出其局限性,特别是在可扩展性和维护性方面。为了解决这些问题,微服务架构应运而生。微服务架构通过将应用程序分解成一系列小型、独立的服务来提高系统的灵活性和可维护性。本文将探讨如何在微服务架构中有效部署和管理Web服务器实例,并提供一些实际的代码示例。
108 0
|
1天前
|
消息中间件 供应链 架构师
微服务如何实现低耦合高内聚?架构师都在用的技巧!
本文介绍了微服务的拆分方法,重点讲解了“高内聚”和“低耦合”两个核心设计原则。高内聚强调每个微服务应专注于单一职责,减少代码修改范围,提高系统稳定性。低耦合则通过接口和消息队列实现服务间的解耦,确保各服务独立运作,提升系统的灵活性和可维护性。通过领域建模和事件通知机制,可以有效实现微服务的高效拆分和管理。
17 7
下一篇
无影云桌面