SpringCloud微服务
饭一碗
Java工程师
展开
-
微服务
在过去几年中,“微服务架构”这一术语如雨后春笋般涌现出来,它描述了一种将软件应用程序设计为一组可独立部署的服务的特定方式。虽然这种架构风格没有明确的定义,但在组织、业务能力上有一些共同的特征:自动化部署,端点智能化,语言和数据的去中心化控制。“微服务” - 软件架构拥挤大街上的有一个新术语。虽然我们自然的倾向是轻蔑的一瞥将它一带而过,然而我们发现这一术语描述了一种越来越吸引人的软件系统转载 2017-10-26 20:09:14 · 743 阅读 · 0 评论 -
Zuul的容错回退与高可用
zuul的容错与回退之前说到过,使用Hystrix实现微服务的容错与回退,其实Zuul默认已经整合了Hystrix,使用起来也是比较简单:在原有 zuul-gateway 项目的基础上新增,实现ZuulFallbackProvider接口,并实现getRoute和fallbackResponse方法import com.google.gson.Gson;import com.sim...原创 2018-07-30 11:24:44 · 1047 阅读 · 1 评论 -
使用Zuul构建微服务网关
Zuul的github:https://github.com/Netflix/zuul之前没有使用网关的微服务可能存在的问题? 客户端直接和微服务交互,增加了复杂度; 某些场景下可能存在跨域; 如果一个功能点需要调用多个微服务,每个服务都需要身份认证,使得身份验证复杂冗余; 客户端直接和微服务交互,后期代码重构难度大; 为什么需要构建Zuul服...原创 2018-07-26 14:57:06 · 2127 阅读 · 0 评论 -
脱离Eureka使用Ribbon
项目的github:https://github.com/simonsfan/SpringCloud.gitRibbon可以实现客户端的负载均衡,在使用Ribbon实现客户端负载均衡一文中,详细描述了如何在Eureka的环境中结合Ribbon实现负载均衡,但实际项目中不一定配合Eureka使用,本文讲述脱离Eureka后如何使用Ribbon。复制项目ticket-consumer-ribb...原创 2018-07-20 11:56:47 · 3855 阅读 · 0 评论 -
使用Hystrix实现微服务熔断与降级
Hystrix的github地址:https://github.com/Netflix/Hystrix,本文不足的地方可以参考Hystrix的wiki:https://github.com/Netflix/Hystrix/wiki/在实际项目中,微服务之间的相互调用可能会遇上网络抖动、延迟、超时等一些列问题,如果不加以处理,可能引发更加严重的问题,如一开始的用户服务不可用导致调用此服务的售票服...原创 2018-07-24 16:05:10 · 3909 阅读 · 4 评论 -
SpringCloud之服务提供者和服务消费者
编写服务提供者 编写服务消费者微服务构建的是分布式系统,各个微服务之间通过网络进行通信。一般我们用服务提供者和服务消费者来描述微服务之间的调用关系: 服务提供者 服务被调用方 服务消费者 服务的调用方 以售票系统为例,用户向12306售票系统发起购票请求,在进行购买业务之前,12306售票系统需要先调用用户微服务接口,查看用...原创 2017-10-18 16:44:01 · 10159 阅读 · 0 评论 -
SpringCloud之微服务注册与发现(以Eureka为例)
服务发现简介 Eureka配置 Eureka高可用 Eureka的自我保护模式 Eureka用户认证1、服务发现组件 为了解决微服务中代码中存在的硬编码问题,服务发现组件顺势而生。使用服务发现组件有一系列好处,存储各个微服务的信息、服务消费者可从服务发现组件查看服务提供者的信息、和服务消费者进行通信等功能。服务发现组件和服务提供者、服务消费者之间的架构如图: sp...原创 2017-10-19 18:41:54 · 2277 阅读 · 0 评论 -
使用Ribbon实现客户端负载均衡
关于Ribbon Ribbon实现负载均衡 使用属性自定义Ribbon配置 负载均衡策略介绍上篇已经实现了Eureka Server的高可用,理论上已经使得微服务更加完美,但依旧存在些许问题。例如,来自服务消费者的请求如何分摊到部署了多个实例的服务提供者?分摊规则如何取?本篇即揭开Ribbon面纱。1、Ribbon简介Ribbon是Netflix发布的负载均衡器,它可以控制HTTP...原创 2017-10-25 19:36:07 · 3106 阅读 · 0 评论 -
使用Feign实现声明式Restful风格调用
Feign简介 在服务消费者中使用Feign 使用Feign构造多参数请求一、Feign简介Feign是netflix开发的声明式、模板化的http客户端,在使用时就像调用本地(服务消费者自己)的方法一般,帮助我们更加优雅的调用服务提供者的API。Feign自身支持springMVC,还整合了Eureka、Ribbon,极大的简化了Feign的使用。就整合Euraka而言,只需和普通的服...原创 2017-11-10 15:04:11 · 4031 阅读 · 1 评论 -
分布式系统延迟和容错框架Hystrix
简介 在大中型分布式系统中,通常系统很多依赖(HTTP,Hession,Netty,Dubbo等),在高并发访问下,这些依赖的稳定性与否对系统的影响非常大,但是依赖有很多不可控问题:如网络连接缓慢,资源繁忙,暂时不可用,服务脱机等。在正常情况下: 分布式系统延迟和容错框架Hystrix技术交流 > regular.png" src="http://lujs.cn/confluenc转载 2017-11-04 15:27:44 · 499 阅读 · 0 评论 -
服务熔断、降级、限流、异步RPC -- HyStrix
在今天,基于SOA的架构已经大行其道。伴随着架构的SOA化,相关联的服务熔断、降级、限流等思想,也在各种技术讲座中频繁出现。本文将结合Netflix开源的Hystrix框架,对这些思想做一个梳理。背景伴随着业务复杂性的提高,系统的不断拆分,一个面向用户端的API,其内部的RPC调用层层嵌套,调用链条可能会非常长。这会造成以下几个问题:API接口可用性降低引用Hyst转载 2017-11-04 15:25:00 · 1107 阅读 · 0 评论 -
为什么不应该使用ZooKeeper做服务发现
为什么不应该使用ZooKeeper做服务发现【编者的话】本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个发现服务)的优劣对比,分享了Knewton在云计算平台部署服务的经验。本文虽然略显偏激,但是看得出Knewton在云平台方面是非常有经验的,这篇文章从实践角度出发分别从云平台特点、CAP原理以及运维三个方面对转载 2017-10-26 20:21:39 · 564 阅读 · 0 评论 -
Zuul过滤器
Zuul的github:https://github.com/Netflix/zuul一系列的过滤器是zuul的核心,zuul的很多功能都是通过过滤器来实现的。在zuul的世界里定义了四种标准过滤器类型,这四种过滤器分别对应着请求的生命周期: pre:此种过滤器在请求被路由之前执行,显然这种过滤器可以用来过滤请求(白黑名单)、安全验证等; routing:此种过滤器复制将请求路...原创 2018-07-27 16:20:49 · 1456 阅读 · 1 评论