Spring Cloud简介:

Spring Cloud为开发人员提供了快速构建分布式系统中的一些通用模式(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态)。 分布式系统的协调导致了锅炉板模式,并且使用Spring Cloud开发人员可以快速地站起来实现这些模式的服务和应用程序。 它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心和受管平台,如Cloud Foundry。

Spring Cloud的特性:

- 分布式/版本化配置

- 服务注册和发现

- 路由

- service - to - service调用

- 负载均衡

- 断路器

- 分布式消息传递

Spring Cloud的常用组件:

- 服务发现——Netflix Eureka 
- 客服端负载均衡——Netflix Ribbon、Feign
- 断路器——Netflix Hystrix 
- 服务网关——Netflix Zuul 
- 分布式配置——Spring Cloud Config

创建服务注册中心Eureka

在idea中创建一个maven项目,其pom文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<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>com.iflytek</groupId>
<artifactId>eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>eureka-server</name>
<description>Demo project for Spring Boot</description> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.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>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.RC1</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> <repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project> 在Spring Boot工程的Application启动类上加上Eureka的注解,即开启了一个Eureka注册中心:

新建一个Eureka的配置文件application.yml,在其中设置Eureka的地址和端口号等信息。其中,设置eureka.client.registerWithEureka和fetchRegistry为false,是为了表明其是一个eureka server。

接下来,启动该项目,在浏览器中输入http://localhost:8671,得到如下界面,即表明Eureka注册中心启动成功。

创建一个服务提供者

其过程和创建一个注册中心大致相同,首先新建一个maven项目,其pom文件如下

<?xml version="1.0" encoding="UTF-8"?>
<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>com.iflytek</groupId>
<artifactId>service-hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>service-hello</name>
<description>Demo project for Spring Boot</description> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.RC1</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> <repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
在Application类上加上注解@EnableEurekaClient,表明自己是一个服务提供者的Client

同样的,为该服务提供者新建一个配置文件application.yml。

其后,启动该工程,刷新Eureka的浏览器页面,可发现SERVICE-HELLO已在其上注册成功。

最后,在浏览器地址栏中输入 http://localhost:8762/hello?name=SpringCloud ,你会在浏览器上看到 :hello SpringCloud,i am from port:8762。即表明调用了该服务。


												

最新文章

  1. 自定义组件-支持PNG图片的多态GraphicButton
  2. 115开jiang监控
  3. 将MongoDB设为Windows服务
  4. 对jQuery选择器的总结
  5. JavaScript + SVG实现Web前端WorkFlow工作流DAG有向无环图
  6. bzoj1021 [SHOI2008]Debt 循环的债务
  7. poj 2449 Remmarguts&#39; Date K短路+A*
  8. 2014多校第六场 1005 || HDU 4925 Apple Tree
  9. Android Touch(2)View.OnTouchEvent与View.OnTouchListener区别
  10. (转载)MySQL关键字ORDER BY的使用
  11. 有两个数a,b,请写一个函数交换a,b
  12. db2常用命令(详解)大全
  13. HDU 1907 John(取火柴博弈2)
  14. java中难度大一点的面试题
  15. Java之indexOf()方法
  16. JavaWeb学习笔记四 request&amp;response
  17. 利用SSL-Change Cipher Spec传递信息
  18. 3.if结构
  19. 【评分】Alpha 事后诸葛亮(团队)
  20. P1169 [ZJOI2007]棋盘制作 &amp;&amp; 悬线法

热门文章

  1. CentOS 7.X 中systemctl命令用法详解
  2. MIP启发式算法:遗传算法 (Genetic algorithm)
  3. 安装好的IIS,发布成功后打开网站出现错误
  4. Android开发——AsyncTask的使用以及源码解析
  5. alidoing --使用JS实现多语言框架、喜欢的请进、、瓦特平台!
  6. python-安装及配置环境变量
  7. maven无法下载依赖jar包—几种仓库的区别
  8. Unity3D - UGUI的初级应用
  9. 【Luogu】P2486染色(树链剖分)
  10. IE6 IE7下li间距、高度不一致问题(转)