首页 > 编程知识 正文

spring cloud 组件,springcloud原理

时间:2023-05-06 17:26:06 阅读:133383 作者:2881

Spring Cloud Alibaba概述Spring Cloud Alibaba旨在为微服务开发提供一站式解决方案。 该项目包含开发分布式APP应用程序和服务所需的组件,以帮助开发人员使用Spring Cloud编程模型轻松开发分布式APP应用程序。

使用Spring Cloud Alibaba,您只需添加注释和配置,就可以在APP应用程序中使用Alibaba分布式解决方案,并使用Alibaba中间件构建自己的分布式系统。

Spring Cloud Alibaba作用http://www.Sina.com/:支持web servlet、WebFlux、OpenFeign、RestTemplate、Dubbo访问限制和降级流的功能运行时可以通过控制台实时修改限制和降级流规则,还支持监视限制和降级度量。

流控制和服务降级:可以在服务中注册,客户可以使用Spring托管的bean自动集成功能区来发现实例。

服务注册和发现:支持分布式系统中的外部配置,并在配置更改时自动更新。

33558 www.Sina.com/:扩展spring cloud客户端的RestTemplate和OpenFeign,以支持对Dubbo RPC服务的调用。

分布式配置:可扩展的事件驱动微服务,支持连接到共享消息系统。

Rpc服务:支持高性能、易用的分布式事务解决方案。

事件驱动:大型、安全、低成本、可靠的云存储服务。 随时随地将任何类型的数据存储在任何APP应用程序中,以便进行访问。

分布式事务:准确、可靠、高可用性的预定作业调度服务。 响应时间在几秒以内。

阿里云对象存储:覆盖全球消息服务,阿里巴巴短信提供方便、高效、智能的通信功能,帮助企业快速与客户联系。

其中,Alibaba云目标存储、Alibaba云计划程序和Alibaba云SMS是业务组件

Spring Cloud Alibaba Nacos概述Nacos是一个易于使用的动态服务发现、配置和服务管理平台。 与传统的服务发现和注册组件相比,Nacos具有更好的交互页面和动态特性。 其作用等效于服务注册发现(Eureka )服务配置管理(Config )服务控制总线(Bus )。

环境准备Nacos依赖于Java环境运行。 如果要通过代码生成和运行Nacos,还必须为此配置Maven环境。

系统环境centos Linux7.9. 2009版

使用jdk安装CentOS7进行jdk安装

在Maven安装Centos7上进行Maven安装

Nacos安装下载Nacos方式1、源代码下载

git clone https://github.com/Alibaba/nacos.gitcdnacos/mvn-p release-nacos-d maven.test.skip=trueclean install-- d

单击此处下载最新的分发包

unzip Nacos-server-$version.zip或tar-xvf nacos-server-$ version.tar.gz nacos持久化修改(如有必要) )缺省情况下,nacos配置

初始化表在/userpath/nacos/conf下找到文件nacos-mysql.sql,并在数据库中执行该文件的内容,以完成库表的初始化任务。

修改Nacos配置,在/userpath/nacos/conf下找到文件application.properties,然后定位到configmodulerelatedconfigurations

打开原来评论的部分,修改为自己的数据库连接信息。

# # # ifusemysqlasdatasource 3360 spring.data source.platform=MySQL # # count ofdb 3360 db.num=1# # # connecturlofdb 330 kdmj=utf8 connect time out=1000 socket time out=3000 auto reconnect=trueuseunicode=trueusessl=falseserververver

ezone=UTCdb.user.0=rootdb.password.0=123456 Nacos启动

定位到/userpath/nacos/bion执行命令

sh startup.sh -m standalone #表示以单机模式启动

访问http://ip:8848/nacos出现以下页面,代表启动成功,初始密码为nacos/nacos

设置Nacos开机启动

创建开机启动文件

cd /lib/systemd/system/touch nacos.servicevi nacos.service

文件内容如下,其中/usr/local/nacos/超帅的小笼包/需要修改为本机nacos所在目录

[Unit]Description=nacosAfter=network.target[Service]Type=forkingExecStart=/usr/local/nacos/超帅的小笼包/startup.sh -m standaloneExecReload=/usr/local/nacos/超帅的小笼包/shutdown.shExecStop=/usr/local/nacos/超帅的小笼包/shutdown.shPrivateTmp=true[Install]WantedBy=multi-user.target

生效配置文件并设置开机启动

systemctl daemon-reload #先进行文件生效配置systemctl enable nacos.service #设置为开机启动

查看是否已开机启动

systemctl is-enabled nacos.service Nacos Spring Cloud

使用 Nacos 来实现分布式环境下的配置管理和服务注册发现

通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现 Nacos服务发现 项目集成

引入依赖,引入时需要注意引入版本与spring boot版本的关系

版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本

更多版本对应关系:点击此处查看

<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${latest.version}</version></dependency>

修改配置文件application.yml,增加如下内容

spring: cloud: nacos: discovery: server-addr: 127.0.0.1:8848 #Nacos作为服务注册中心地址 group: DEV_GROUP #应用分组

通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能

@SpringBootApplication@EnableDiscoveryClientpublic class NacosBaseApplication { public static void main(String[] args) { SpringApplication.run(NacosBaseApplication.class, args); }} Nacos服务发现验证

nacos-base新建服务提供类nacosProviderController

@RestControllerpublic class nacosProviderController { @GetMapping("/provider/{name}") public String sayHelloToUser(@PathVariable String name) { return "Hello " + name + " !"; }}

启动nacos-base,查看nacos服务列表

浏览器内访问:http://127.0.0.1:9001/provider/jack,表明服务已被成功发现,验证完毕

Nacos配置管理 项目集成

引入依赖,引入时需要注意引入版本与spring boot版本的关系

版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本

更多版本对应关系:点击此处查看

<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${latest.version}</version></dependency>

确认当前启动环境

spring: profiles: active: dev

在bootstrap.yml中新增如下配置

spring: application: name: nacos-base cloud: nacos: config: server-addr: 127.0.0.1:8848 #Nacos作为配置中心地址 file-extension: yaml # 指定配置文件的格式为yaml group: DEV_GROUP #指定配置文件分组GROUP

此处有2个注意点:第一、配置config信息的文件必须是bootstrap,bootstrap在启动时读取顺序优先于application,因为我们是进行配置管理,所以需要优先读取nacos的配置信息,故因将nacos配置放于bootstrap中;第二、spring.application.name是必须的,这与nacos的dataid构造相关,这在下文中会展开说明。

Nacos控制台集成

点击“+”新增配置

进入配置新增页面

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension} prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型

根据我们上面的配置可知Data Id为:nacos-base-dev.yaml,需要注意的是相同group下,Data Id不能重复

配置完成后点击“发布”即可,最终效果

Nacos动态配置验证

新建测试类ConfigClientController

@RestController@RefreshScope // 通过Spring Cloud原生注解@RefreshScope实现配置自动更新public class ConfigClientController{ @Value("${config.info}") // 注入配置中心中的config.info配置信息 private String configInfo; @GetMapping("/config/info") public String getConfigInfo() { return configInfo; }}

启动项目,在浏览器中访问地址:http://127.0.0.1:9001/config/info

修改nacos 配置中的信息

点击发布并刷新浏览器,发现配置信息变更,验证完毕

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。