SpringCloud的介绍与搭建

springcloud 微服务

     【是一系列框架的有序集合】

概念:

单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,每个服务之间的互相协调,互相配合。

补充:

Dubbo:

    【 高性能优秀的服务框架】

springcloud与Dubbo的区别?

1>springcloud有更加完整的一套解决方案,而Dubbo的构建更自由,可以搭配其他服务一起使用。

2>springcloud也抛弃了Dubbo的ROC通信,采用的是基于HTTP的REST方式。

spring cloud的优点:

   高性能:这是应用程序的基本要求。
   独立性:其中一个模块出现 bug 或者其他问题,不可以影响其他模块或者整个应用。
   容易扩展:应用中的每一个节点,都可以根据实际需要进行扩展。
   便于管理:对于各个模块的资源,可以轻松进行管理、升级,减少维护成本。
   状态监控与警报:对整个应用程序进行监控,当某一个节点出现问题时,能及时发出警报。

 Spring Cloud 与 Netflix


       Netflix 是一个互联网影片提供商,在几年前,Netflix 公司成立了自己的开源中心,
   名 称为 Netflix Open Source Software Center,简称 Netflix OSS。这个开源组织专注于大数据、
   云计算方面的技术,提供了多个开源框架,这些框架包括大数据工具、构建工具、
   基于 云平台的服务工具等。Netflix 所提供的这些框架,很好的遵循微服务所推崇的理念,
   实现了去中心化的服务管理、服务容错等机制。

   Spring Cloud 的各个项目基于 Spring Boot,将 Netflix 的多个框架进行封装,并且通过自动配置的方式将这些框架绑定到 Spring 的环境中,
   从而简化了这些框架的使用。由于 Spring Boot 的简便,使得我们在使用 Spring Cloud 时,很容易的将 Netflix 各个框架整合进我们的项目中。
   
   Spring Cloud 下的“Spring Cloud Netflix”模块,主要封装了 Netflix 的以下项目:
   

   Eureka(服务注册与发现):基于 REST 服务的分布式中间件,主要用于服务管理。    
   Ribbon(负载均衡):负载均衡框架,在微服务集群中为各个客户端的通信提供支持,它主要实现中间层应用程序的负载均衡
   Zuul(智能路由):为微服务集群提供过代理、过滤、路由等功能。
   Hystrix(断路器):容错框架,通过添加延迟阀值以及容错的逻辑,来帮助我们控制分布式系 统间组件的交互。
   Feign(声明式服务调用):Feign是一个声明式WebService客户端,目的是为了简化 Web Service 客户端的开发

   除了 Spring Cloud Netflix 模块外,Spring Cloud 还包括以下几个重要的模块
   Spring Cloud Config:为分布式系统提供了配置服务器和配置客户端,通过对它们 的配置,可以很好的管理集群中的配置文件。
   Spring Cloud Sleuth:服务跟踪框架,可以与 Zipkin、Apache HTrace 和 ELK 等 数据分析、服务跟踪系统进行整合,为服务跟踪、解决问题提供了便利。
   Spring Cloud Stream:用于构建消息驱动微服务的框架,该框架在 Spring Boot 的 基础上,整合了“Spring Integration”来连接消息代理中间件。
   Spring Cloud Bus:连接 RabbitMQ、Kafka 等消息代理的集群消息总线。

springcloud的版本说明


   springcloud项目是由多个独立项目集合而成的,每个项目都是独立的,各自进行自己的迭代和版本发布。
   所以springcloud不方便使用版本号来管理,而是使用版本名。以避免和子项目版本号的冲突。
   
   版本名的来源是伦敦的地铁站名,以字母排序。比如最早的Release版本为Angel,第二个Release版本为Brixton...

   当一个版本的update积累的比较多或者解决了一个严重bug时,会发布一个ServiceRelease版本,简称SR,
   后面带的数字就是该大版本下的第一次发布。

   


 

创建一个SpringCloud项目

 

构建多模块的Maven项目
   由于SpringCloud中有许多组件,每个组件都需要单独进行开发和维护,为了便于统一的版本维护和管理,我们经常会用到Maven的多模块模式。
   

 

     springcloud01         主模块  quickstart项目 
     eureka-server       子模块  springboot项目
     eureka-provider     子模块  springboot项目
     eureka-consumer01   子模块  springboot项目
     eureka-consumer02   子模块  springboot项目

 

 

   1. 创建主模块:springcloud01
      File–>New–>Project
      -->Maven-->Create from archetype-->maven-archetype-quickstart-->Next
      -->GroupId={你的GroupId}-->AritifactId={你的ArtifactId}
      -->Next-->Next-->Finish-->New Window /this Window

      注1:maven-archetype-quickstart创建的是普通java工程
      注2:由于并不需要在主工程进行任何代码开发,所以删除其src目录

 2. 创建子模块:eureka-server
      File-->New-->Module
      -->Spring Initializr-->Next

   3. 按顺序创建eureka-provider/eureka-consumer01/eureka-consumer02这3个子模块,步骤同eureka-server

   4. 使用“https://start.spring.io/”生成工程所需pom文件
      1. 选择版本和类型
         选择你的项目是 maven 还是 grade
         开发语言有:Java、Kotlin、Groovy
         选择 Spring Boot 的版本
         填写 maven 的 Group 、Artifact
      2. 搜索并添加依赖

            列:搜索eureka找到 Eureka Server添加
      3. 下载项目
         把依赖项都选择完毕后,点击按钮(Generate Project)就能生成工程对应的压缩包,此压缩包会在正面的几个步骤使用
  
   5. 编辑主工程pom.xml
      代码重点:
      1.父级springboot配置(压缩包中提供)
      2.配置子模块“eureka-server”,以后有新的子模块被创建后,也需要添加到这里。
        <modules>
          <module>eureka-server</module>
        </modules>  
      3.设置版本信息及字符编码
        <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--常规配置-->
          <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
          <java.version>1.8</java.version> <!--压缩包中提供(eureka-server的pom.xml)-->
          <spring-cloud.version>Greenwich.SR2</spring-cloud.version> <!--压缩包中提供(eureka-server的pom.xml)-->
        </properties> 
      4.配置SpringCloud基础组件(压缩包中提供(eureka-server的pom.xml)),另外,会在之后开发中不断添加新组件
      5.Spring Cloud 版本序列配置(压缩包中提供(eureka-server的pom.xml))
      6.springboot的maven-plugin配置(压缩包中提供(eureka-server的pom.xml))

   6. 编辑子模块eureka-server的pom.xml
      代码重点:
      1.继承父pom.xml
        <parent>
        <groupId>com.yps</groupId>
        <artifactId>springcloud01</artifactId>
        <version>1.0-SNAPSHOT</version>
        </parent>
      2.子模块是可以打包jar运行的:<packaging>jar</packaging>,修改后如下
        <groupId>com.sw</groupId>
         <artifactId>eureka-server</artifactId>
         <version>0.0.1-SNAPSHOT</version>
       <name>eureka-server</name>
        <packaging>jar</packaging>
      3.eureka的pom.xml没有引入任何新的依赖,那如何引入eureka组件依赖呢,回到上面的主pom.xml,
        你会发现我在其中引入了spring-cloud-starter-netflix-eureka-server,这是因为在之后的大部分模块中,
        我们都会用到Eureka-server,所以将其放在主pom中供其他子模块共享使用
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值