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

简介: 快速学习应用于分布式系统-微服务创建。

开发者学堂课程【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,这两个微服务的构建就完成。

相关文章
|
2月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
8月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
299 5
|
7月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
752 35
|
6月前
|
分布式计算 Java 大数据
Java 大视界 —— 基于 Java 的大数据分布式计算在气象数据处理与天气预报中的应用进展(176)
本文围绕基于 Java 的大数据分布式计算在气象数据处理与天气预报中的应用展开,剖析行业现状与挑战,阐释技术原理,介绍其在数据处理及天气预报中的具体应用,并结合实际案例展示实施效果。
Java 大视界 -- 基于 Java 的大数据分布式存储在视频监控数据管理中的应用优化(170)
本文围绕基于 Java 的大数据分布式存储在视频监控数据管理中的应用展开,分析管理现状与挑战,阐述技术应用,结合案例和代码给出实操方案。
|
8月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
476 12
|
9月前
|
存储 NoSQL 关系型数据库
微服务——MongoDB的应用场景
随着Web2.0时代的到来,传统关系型数据库(如MySQL)在高并发读写、海量数据存储及高可扩展性需求方面逐渐力不从心。而MongoDB凭借其灵活的文档结构和高效性能,在社交、游戏、物流、物联网和视频直播等场景中表现出色。这些场景通常具有数据量大、写入频繁且对事务要求不高的特点。选择MongoDB适合以下情况:应用无需复杂事务与join支持、需求不确定需快速迭代、需处理高QPS读写或超大规模数据存储、追求高可用性和快速水平扩展能力。相比MySQL,MongoDB能以更低的学习、开发和运维成本满足现代应用需求。
325 0
|
10月前
|
机器学习/深度学习 存储
DeepSeek进阶开发与应用4:DeepSeek中的分布式训练技术
随着深度学习模型和数据集规模的扩大,单机训练已无法满足需求,分布式训练技术应运而生。DeepSeek框架支持数据并行和模型并行两种模式,通过将计算任务分配到多个节点上并行执行,显著提高训练效率。本文介绍DeepSeek中的分布式训练技术,包括配置与启动方法,帮助用户轻松实现大规模模型训练。数据并行通过`MirroredStrategy`同步梯度,适用于大多数模型;模型并行则通过`ParameterServerStrategy`异步处理大模型。DeepSeek简化了分布式环境配置,支持单机多卡和多机多卡等场景。
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
891 1
|
4月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
376 2

热门文章

最新文章