微服务之Sping Cloud
版本说明
Finchley SR2
价值简要
微服务之间是松耦合,跨不同业务部门,提供非常充分的灵活性,加快项目开发完成效率,方便组件化独立可扩展性及复用.
微服务应用结构表现

组件简要
1. Eureka(注册中心)
提供服务注册与发现,服务端依赖spring-cloud-starter-netflix-eureka-server,然后用@EnableEurekaServer来标注该应用程序的配置类,在yml 文件中配置服务注册地址,配置相关的参数,客户端依赖 spring-cloud-starter-netflix-eureka-client,然后用
@EnableEurekaClient来标注该应用程序的配置类,通过注册中心,服务之间关系对等,通过部署多台实现高可用,注册中心的元数据基于内存,不提供服务调用,只是同步服务之间实例数据,Eureka Client通过向Eureka Serve发送心跳(默认每30秒)来续约服务的,如果客户端持续不能续约,那么它将在大约90秒内从服务器注册表中删除。 注册信息和续订被复制到集群中的Eureka Serve所有节点, 以此来确保当前服务还“活着”,可以被调用,另外推荐关闭自我保护属性,强制无效的服务从注册中剔除,保证服务之间调用的实例一定程度上是实时的有效的.
2. Feign(声明式Rest客户端)
提供基于REST访问调用,使用方式是通过接口定义服务内容,然后通过服务实例名称进行访问如:
@FeignClient(name="app-user",fallback=UserControllerFeignClientFailCallBack.class )
内部默认集成了负载均衡,算法默认轮询,可通过配置修改算法,但有个缺点就是访问的服务实例名称无法动态配置,在某些应用场景下显得不灵活,如果有根据数据库配置的实例名称来动态调用服务的需求可推荐使用RestTemplate+LoadBalancerClient ; 当然Feign的优点也很名称,简洁,高效.
3. Ribbon(客户端负载均衡器)
提供客户端负载均衡组件,是对系统的高可用,网络压力的缓解和处理能力扩容的重要组件之一,区别于nginx ,ribbon 通常微服务之间访问负载,nginx通常在应用接入层负载或反向代理;Ribbon 使用也很简单,使用 @LoadBalancerClient 声明即可, 在yml 文件里面可以配置 负载算法,重试规则,响应时间权重等默认是轮询方式,还有其它的负载算法:如
1. 随机
2. 最小并发请求
3. 过滤一直访问失败的并过滤掉高并发的
4. 根据响应时间分配权重,根据权重来请求
server, 权重越小,被请求的可能越低
4. Hystrix(熔断器)
提供熔断机制,解决的问题主要避免服务出现雪崩效应,使用方式引入依赖
spring-cloud-starter-netflix-hystrix , 在启动程序上声明@EnableCircuitBreaker, 然后在需要熔断的方法上声明@HystrixCommand(fallbackMethod ="createFailCallBack" ),注意feign默认是已经集成了Hysrix; 熔断的触发条件服务端超时,服务端线程池满等 , 很重要的一点是设置熔断的超时时间一定要根据实际业务设置合理的时间阀值,另外在实践的过程中发现熔断和异常的优先级问题,如果代码中发生异常catch的返回值优先级低于HytrixCommand中的返回值优先级,这个在开发中需要格外注意,否则给用户或接口返回会出现差异.
代码实例
推荐使用开发工具
IDEA 打开,源码包名称:xxxx-yyyyy-platform,详细可参考实践编写源代码.
代码结构截图:

1. -abc 微服务应用
2. -def 微服务应用
3. -config 微服务服务端配置
4. -discover eureka 服务端
5. -hystrix hystrix 熔断监控服务端
6.-zipkin 链路跟踪
扫码或长按关注查看更多文章
微服务之Sping Cloud的更多相关文章
- 微服务与Spring Cloud概述
微服务与Spring Cloud随着互联网的快速发展, 云计算近十年也得到蓬勃发展, 企业的IT环境和IT架构也逐渐在发生变革,从过去的单体应用架构发展为至今广泛流行的微服务架构. 微服务是一种架构风 ...
- [转帖]微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务
微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务 http://skaka.me/blog/2016/04/21/springcloud1/ APR 21ST, ...
- 2.微服务开发框架——Spring Cloud
微服务开发框架—Spring Cloud 2.1. Spring Cloud简介及其特点 简介: Spring Cloud为开发人员提供了快速构建分布式系统中一些常见 ...
- 消息驱动微服务:Spring Cloud Stream
最近在学习Spring Cloud的知识,现将消息驱动微服务:Spring Cloud Stream 的相关知识笔记整理如下.[采用 oneNote格式排版]
- 什么是微服务架构 Spring Cloud?
1 为什么微服务架构需要Spring Cloud 简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB.KV,去掉重量级ESB) ...
- 微服务与Spring Cloud资料
Microservices Using Spring Boot and Spring Cloud 微服务注册中心 Eureka 架构深入解读 50+ 顶级开源 Kubernetes 工具列表 Apol ...
- 微服务之Spring cloud
微服务 Spring cloud Spring Cloud provides tools for developers to quickly build some of the common patt ...
- Docker、kubernetes、微服务、SpringBoot/Cloud...好乱!到底要不要学?
Docker.微服务日益火热的今天,相信标题上这些名词大家都不陌生.但也相信有很多同学并不够清楚他们的概念,不理解它们的关系,也可能有这样的疑惑:不知道跟我有没有关系?要不要学习?怎么去学习?学哪些东 ...
- 第十章 消息驱动的微服务: Spring Cloud Stream
Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架. 它可以基于Spring Boot 来创建独立的. 可用于生产的 Spring 应用程序. 它通过使用 Sprin ...
随机推荐
- http2
原文转至:https://zhuanlan.zhihu.com/p/26559480 HTTP/2 是 HTTP 协议自 1999 年 HTTP 1.1 发布后的首个更新,主要基于 SPDY 协议.由 ...
- 使用linq语句进行联表查询
假设你有一个父表(例如:汽车),其关联一个子表,例如轮子(一对多).现在你想对于所有的父表汽车,遍历所有汽车,然后打印出来所有轮子的信息.默认的做法将是: SELECT CarId FROM Cars ...
- localStorage,sessionStorage的使用
最近因为项目上需要使用到客户端存储,所以稍微研究了一下,以下说说自己的理解和使用经验 1.调用方法相同 各自都包含以下几种操作: //根据key获取对应的值; window.sessionStorag ...
- MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化
MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一 ...
- Linux 内存文件系统
Linux内存文件系统:可满足高IO的要求 ramdisk: 基于虚拟在内存中的其他文件系统(ex2fs). 挂载方式:mount /dev/ram /mnt/ramdisk ramfs: 物理内存文 ...
- 阿里云上安装pip3(Ubuntu)
安装pip3: 这个简单啊,到网上下载get-pip.py的脚本,然后scp到你的阿里云服务器上,python3 get-pip.py即可. 如果不会scp,哈哈,按照下面的几步: wget http ...
- RD340服务器安装windows2003系统
RD340服务器安装windows2003系统云修网
- redis慢查询日志的配置和查看
Redis是单线程运行的,一个慢执行,会让后续的大量执行延时,吞吐量也会极大的降低.记录.查询.监控Redis慢执行意义重大.Redis的slowlog只记录在内存中,效率很高,不用过于担心影响性能. ...
- 从列表和实例来了解python迭代器
什么是迭代器?它是一个带状态的对象,在你调用next()方法的时候返回容器中的下一个值,任何实现了__iter__和__next__()(python2中实现next())方法的对象都是迭代器,__i ...
- Linux 小知识翻译 - 「X Window系统」
X Window System是给Unix系的OS提供的一套窗口管理软件或者说是组件.X Window System已经成为了在Linux上使用GUI环境的不可或缺的东西了. X Window Sys ...