Spring Cloud概述

 

1.1 基于SOA系统架构

 

面向服务的架构,是一种程序开发架构的设计思想。它将不同的功能单元使用一个作为独立的程序运行,并且提供访问的入口(将这些单独运行的每个程序称为服务)。

一个SOA架构的web应用程序,是多个服务组成的!!!

 

SOA架构的思想就是用于实现,程序分布式的。所以我们也可以将SOA架构的思想理解为分布式架构的思想。

 

1.1 Spring Cloud的作用

 

问题:以上SOA架构,这样的系统架构,有什么问题?

 

 

 

答:(1)无法检查服务的健康状态(服务是否可用)。

 

(2)无法对服务进行管理。

 

 

 

 

 

我们可以通过一个框架来,解决这些问题。那就是Spring Cloud。

 

Spring Cloud通过一个注册中心(Eureka),统一管理了整个分布式系统的服务接口。

 

 

 

所有的服务(子系统)在对外提供服务(接口)之前,必须要在注册中心中注册。我们开发人员就可以在注册中心中,查看整个分布式系统的所有服务!!

 

 

 

我们SOA概念中称为服务系统的东西,在Spring cloud有一个新的名字,叫实例(instance,实例系统)! 

 

1.1 为什么要学习Springcloud?

 

Springcloud是提供了一整套企业级分布式云应用的完美解决方案,能够结合Spring Boot、Spring其它组件,实现快速开发的目的。

 

企业级开发越来越倾向Spring生态体系。当然也包括SpringCloud了。

 

 

 

1.2 如何学习SpringCloud?

 

我们学习Spring Cloud首先要学习什么东西呢?

 

 

 

答:(1)必须要将Eureka配置成功

 

(2)实例是如何将服务在Eureka注册的

 

(3)如何在Eureka查看整个分布式系统所有实例对外提供的服务(发现服务)

 

(4)实例域实例之间是如何通讯的(远程调用)

 

1 入门示例

1.1 配置步骤

第一步:配置Eureka服务器

第二步:创建注册服务实例(Eureka客户端-注册服务@EnableEurekaClient)

第三步:创建发现服务实例(Eureka客户端-发现服务@EnableDiscoveryClient)

第四步:实现发现服务实例调用注册服务实例的示例。

 

1.1 第一部分:配置Eureka服务器(注册中心)

--注意实现:

1.Eclipse配置Spring Cloud必须先安装好 spring tool suite 插件。否则配置文件没有提示!!

2.Spring Cloud框架的jar都是由maven或者gradle构建工具获得的。我们主流使用的是Maven。所以创建的maven项目

 

1.1.1 第一步:创建一个maven项目

1.1.2 第二步:在Spring官方网站,生成代码 

地址为:https://start.spring.io/

 

注意事项:必须要勾上Eureka Server选项


--生成代码包如下

 

我们需要将生成好的代码的pom.xml文件的依赖加入到我们的项目!!!!!

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.gzsxt.springcloud</groupId>
springcloud-demo-01-eureka</artifactId>
  <version>1.0</version>
  
  <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.19.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
 
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Edgware.SR5</spring-cloud.version>
</properties>
 
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
 
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
 
<dependencyManagement>
<dependencies>
<!-- springcloud版本锁定 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
 
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
  
</project>