文档地址 https://www.springcloud.cc/spring-cloud-dalston.html
具体流程
(1)创建springboot 应用
(2)创建spring cloud 分布式配置(如平时的properties,xml配置文件,当存在开发,生产等多个版本时,保持配置文件一致性)应用可以使用git做, 其他应用通过这个应用读去配置文件
(3)创建eureka服务器,用于其他服务的注册,每个服务都有一个唯一的名字
(4)创建服务端应用,编写接口
(5)创建客户端应用,通过服务应用的名字加接口名字 调用服务程序接口。
spring cloud是一种restful 协议的实现
REST
可以看着是http
协议的一种直接应用,默认基于json
作为传输格式,使用简单,学习成本低效率高,~~但是安全性较低~~,而SOAP
可以看着是一个重量级的协议,基于xml
,SOAP
在安全方面是通过使用XML-Security
和XML-Signature
两个规范组成了WS-Security
来实现安全控制的,当前已经得到了各个厂商的支持。
rpc 面向方法如dubbo,REST面向资源,资源即每个请求的url。
以下是来自官方的一篇简单介绍:
spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
Spring Cloud为开发人员提供了快速构建分布式系统中的一些通用模式(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态)。 分布式系统的协调导致了锅炉板模式,并且使用Spring Cloud开发人员可以快速地站起来实现这些模式的服务和应用程序。 它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心和受管平台,如Cloud Foundry。
官方文档:http://projects.spring.io/spring-cloud/#quick-start
截止发表这内容时,springcloud官方最新版本是Camden.SR2,springcloud的版本名称很奇怪,它是按照伦敦地铁站的名称由a-z排序进行命名。
高深的内容我也不说太多,这里我只说下springcloud中常用的组件
- 服务发现——Netflix Eureka
- 客服端负载均衡——Netflix Ribbon
- 断路器——Netflix Hystrix
- 服务网关——Netflix Zuul
- 分布式配置——Spring Cloud Config
Eureka
一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。 Eureka服务器用作服务注册服务器。Eureka客户端是一个Java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支 持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。
Ribbon
Ribbon,主要提供客户侧的软件负载均衡算法。
Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略:
- 简单轮询负载均衡
- 加权响应时间负载均衡
- 区域感知轮询负载均衡
- 随机负载均衡
Ribbon中还包括以下功能:
- 易于与服务发现组件(比如Netflix的Eureka)集成
- 使用Archaius完成运行时配置
- 使用JMX暴露运维指标,使用Servo发布
- 多种可插拔的序列化选择
- 异步和批处理操作(即将推出)
- 自动SLA框架(即将推出)
- 系统管理/指标控制台(即将推出)
Hystrix
断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正,应用程序可以尝试调用操作。
断路器增加了稳定性和灵活性,以一个系统,提供稳定性,而系统从故障中恢复,并尽量减少此故障的对性能的影响。它可以帮助快速地拒绝对一个操作,即 很可能失败,而不是等待操作超时(或者不返回)的请求,以保持系统的响应时间。如果断路器提高每次改变状态的时间的事件,该信息可以被用来监测由断路器保 护系统的部件的健康状况,或以提醒管理员当断路器跳闸,以在打开状态。
流程图
Zuul
类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。
Spring Cloud Config
这里主要列举了一些常见的组件,更多的等待发掘。
其他教程地址 http://www.cnblogs.com/skyblog/p/5127690.html