SpringCloud快速入门

SpringCloud

一、SpringCloud–Alibaba

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

在这里插入图片描述

本次演示用的是G版Cloud,所以导入以下版本依赖

	<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

springboot版本

<version>2.1.8.RELEASE</version>

DependencyManagement和Dependencies

Maven使用dependencyManagement元素来提供了一种管理依赖版本号的方式。

通常会在一个组织或者项目的最顶层的父POM中看到dependencyManagement元素。

使用pom.xml中的dependencyManagement元素能让所有在子项目中引用个依赖而不用显式的列出版本量。

Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用这个
dependencyManagement元素中指定的版本号。

这样做的好处就是:如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改;另外如果某个子项目需要另外的一个版本,只需要声明version就可。

区别
dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。

如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom。

如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

二、欢迎来到 Nacos 的世界!

Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos就是注册中心+配置中心的组合,Nacos = Eureka + Config + Bus

能干嘛

  • 替代Eureka做服务注册中心
  • 替代Config做服务配置中心

在这里插入图片描述

据说Nacos在阿里巴巴内部有超过10万的实例运行,已经过了类似双十一等各种大型流量的考验。

三、nacos作为服务注册中心

官网:https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md

nacos server下载

访问:https://github.com/alibaba/nacos/releases

安装

  • 本地Java8+Maven环境已经OK先
  • 官网下载Nacos
  • 解压安装包,cmd bin目录,启动startup.cmd

在这里插入图片描述

  • 命令运行成功后直接访问http://localhost:8848/nacos,默认账号密码都是nacos
  • 启动失败:修改startup.cmd MODE 为standalone ,然后切换默认数据库方法下面有,标题是Nacos持久化切换配置
  • 结果页面

在这里插入图片描述

四、Spring Cloud 应用接入 Nacos Discovery

创建两个springboot项目:cloud-nacos-consumer-8001,cloud-nacos-provider-9001

1.首先,修改 pom.xml 文件,引入 Nacos Discovery Starter。

		<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

2.在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址

 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

3.使用 @EnableDiscoveryClient 注解开启服务注册与发现功能

测试

先启动8848Nacos注册中心

启动8001,9001

访问:http://localhost:8848/nacos

查看服务管理---->服务列表

五、nacos配置中心

简单理解配置中心的作用就是对配置统一管理,修改配置后应用可以动态感知,而无需重启。

因为在传统项目中,大多都采用静态配置的方式,也就是把配置信息都写在应用内的ymlproperties这类文件中,如果要想修改某个配置,通常要重启应用才可以生效。

但有些场景下,比如我们想要在应用运行时,通过修改某个配置项,实时的控制某一个功能的开闭,频繁的重启应用肯定是不能接受的。

尤其是在微服务架构下,我们的应用服务拆分的粒度很细,少则几十多则上百个服务,每个服务都会有一些自己特有或通用的配置。假如此时要改变通用配置,难道要我挨个改几百个服务配置?很显然这不可能。所以为了解决此类问题配置中心应运而生。

demo

修改8001

1.首先,修改 pom.xml 文件,引入 Nacos Config Starter。

 		<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

2.在应用的 /src/main/resources/bootstrap.properties 配置文件中配置 Nacos Config 元数据

spring.application.name=cloud-nacos-consumer-8001
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

3.修改application.properties,添加以下字

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值