Spring Cloud(一)
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官方网站,生成代码
注意事项:必须要勾上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> <artifactId>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> |