诺诺清蔓

简单,美好,奋发

一个对技术追求的Java萌妹子


  1. 公益Eureka Server与定制方法

    摘要: 本文主要简单介绍如何定制一个eureka server,并直接指出最优的定制方式。 …

    Eureka Server 继续阅读

  2. 中小型互联网公司微服务实践-经验和教训

    上次写了一篇文章叫Spring Cloud在国内中小型公司能用起来吗?介绍了Spring Cloud是否能在中小公司使用起来,这篇文章是它的姊妹篇。其实我们在这条路上已经走了一年多,从16年初到现在。在使用Spring Cloud之前我们对微服务实践是没有太多的体会和经验的。从最初的开源软件云收藏来熟悉Spring Boot,到项目中的慢慢使用,再到最后全面拥抱Spring Cloud。这篇文章就给大家介绍一下我们使用Spring Boot/Cloud一年多的经验。 …

    Spring Cloud 继续阅读

  3. Spring Cloud Zuul遗失的世界(三)

    摘要: 接着上一篇《Spring Cloud Zuul遗失的世界(二)》,本文主要介绍Netflix Zuul core模块的Filter链的设计和Fifter Loader和Filter Manager相关代码的设计与分析。 …

    Spring Cloud Zuul 继续阅读

  4. Spring Cloud Zuul遗失的世界(二)

    摘要: 接着上一篇《Spring Cloud Zuul遗失的世界(一)》,ZuulController继承了ServletWrappingController,将当前应用中的ZuulServlet直接包装为一个Controller,暴露为入口访问,在本篇文章中介绍etflix-zuul-core的代码Zuul的执行的生命周期等。 一.Netflix zuul core源码分析com.netflix.zuul.http.ZuulServlet是ZuulFilter链执行的入口,通过service方法,提取请求到RequestContext,然后通过调用ZuulRunner,依次按顺序执行每种类型的Filter,完成整个Filter的生命周期,架构图如下所示。 …

    Spring Cloud Zuul 继续阅读

  5. Spring Cloud Zuul遗失的世界(一)

    摘要: Zuul作为java网关届的鼻祖,2016年自研网关中间件的时候,对其源码看了很多次,经过两大互联网公司中间件的洗礼之后,目前轮到自己设计一个网关中间件纳管Spring Cloud。最近抽空把自己的理解,备注一下。由于Spring cloud整合Zuul的代码过多。本文主要介绍Spring Cloud对Netflix Zuul高度抽象封装整合部分。即spring-cloud-netflix-core的代码。 …

    Spring Cloud Zuul 继续阅读

  6. Spring Cloud Zuul异常处理

    最近看到了一个GitHub issue在讨论如何在post类型的zuul filter中设置response body,其中涉及到异常情况下,如何返回一个自定义的response body。正好我在升级spring-cloud,也想弄清楚,spring-cloud-zuul是如何处理异常情况的,所以就仔细看了看这部分的实现细节,现在做个笔记记录下来。 …

    Spring Cloud Zuul 继续阅读

  7. 在Spring Cloud中实现降级之权重路由和标签路由

    前言 限流、降级、灰度是服务治理的一个很重要的功能。本文参考Spring Cloud中国社区的VIP会员-何鹰的博客-整理Dubbo自带服务降级、限流功能,spring cloud并没有提供此功能,只能由我们自行实现。这里的限流、降级、灰度都是针对服务实例级别,并不是整个服务级别,整个服务级别可以通过实例部署数量来实现。 限流降级设计场景服务A,部署了3个实例A1、A2、A3。spring cloud默认客户端负载均衡策略是采用轮询方式,A1、A2、A3三个实例流量均分,各1/3。如果这个时候需要将服务A由1.0版升级至2.0版,我们需要做的步骤是:将A1的流量降为0,柔性下线,关闭A1实例并升级到2.0,将A1流量提升为10%观察2.0线上运行情况,如果情况稳定,则逐步开放流量至不限制及1/3。依次在A2,A3上执行上述操作。在上述步骤中,我们想让特别的人使用2.0,其他人还是使用1.0版,稳定后再全员开放。 …

    Spring Cloud Ribbon 继续阅读

  8. API GateWay(网关)那些儿事

    前言:现在越来越多的技术团队开始尝试采纳微服务架构进行产品开发。而基于微服务架构后后端服务通常而言是动态的,为了简化前端的调用逻辑,通常会引入API Gateway作为轻量级网关,同时API Gateway中也会实现相关的认证逻辑从而简化内部服务之间相互调用的复杂度,这边文章我们就来聊聊API Gateway的那些事。 关键字:API Gateway, Spring Cloud Zuul, Nginx,Consul,Consul-Template。 为什么需要API Gateway 简化客户端调用复杂度 在微服务架构模式下后端服务的实例数一般是动态的,对于客户端而言如何发现这些动态改变的服务实例的访问地址信息?因此在基于微服务的项目中为了简化前端的调用逻辑,通常会引入API Gateway作为轻量级网关,同时API Gateway中也会实现相关的认证逻辑从而简化内部服务之间相互调用的复杂度。 …

    Spring Cloud Zuul 继续阅读

  9. Spring Cloud Zuul的URL转发和路由规则

    摘要:最近开了《跟我学Spring Cloud》系列教程,由于最近比较忙,因此更新较慢。由于自己最近在研究基于Netty名为Janus的网关中间件分为janus-Server端和janus-console管控端,纳管Spring Cloud实现市面上网关85%以上的功能,将在2017年5月6号Spring Cloud中国社区北京技术沙龙分享。顺便抽时间把Spring Cloud Zuul相关的东西整理比较。在本篇文章中Spring Cloud的版本更换为Dalston.RELEASE,Spring Boot的版本为1.5.2.RELEASE。 Spring Cloud Zuul Spring Cloud Zuul 通过与 Spring Cloud Eureka 进行整合,将自身注册到 Eureka Server中,与Eureka,Ribbon,Hystrix等整合,同时从 Eureka 中获得了所有其它微服务的实例信息。这样的设计通过把网关和服务治理整合到一起,Spring Cloud Zuul可以获取到服务注册信息,结合Ribbon,Hystrix等更好的实现路由转发,负载均衡等功能。想了解更多的内容,可以参考下面的中英文对照翻译文档。或者查看官网文档。 Spring Cloud Zuul中英文对照翻译① Spring Cloud Zuul中英文对照翻译② Spring Cloud Zuul中英文对照翻译③ …

    Spring Cloud Zuul 继续阅读

  10. Spring Cloud Netflix之Eureka上篇

    前言:Spring Cloud NetFlix这个项目对NetFlix中一些久经考验靠谱的服务发现,熔断,网关,智能路由,以及负载均衡等做了封装,并通过注解的或简单配置的方式提供给Spring Cloud用户用。本文主要介绍 Spring Cloud中的Eureka组件。由于Spring Cloud做技术选型时中立的,因此Spring Cloud也提供了Spring Cloud Zookeeper,Spring Cloud Consul用于服务治理或服务发现供大家选择使用,另外我还发现Spring Cloud etcd这个项目,也可以用于服务注册和发现 …

    Eureka, Spring Cloud Netflix 继续阅读

  11. Spring Cloud Sleuth-全链路监控调研

    前言:做过软件开发的都知道,对系统进行全链路的监控是非常有必要的。在单体应用中,传统的方式是软件开发者,通过自定义日志的level,日志文件的方式记录单体应用的运行日志。从而排查线上系统出现运行过慢,出现故障,异常等问题,但是在微服务架构或分布式系统中,一个系统被拆分成了A、B、C、D、E等多个服务,而每个服务可能又有多个实例组成集群,采用上诉定位问题的方式就行不通了,你充其量就知道某个服务是应用的瓶颈,但中间发生了什么你完全不知道。而且问题的查询,因为有海量各种各样的日志等文件,导致追溯定位问题等极其不方便。因此需要全链路监控系统的收集,上报,对海量日志实时计算生成,监控告警,视图报表,帮助开发人员快速定位问题。 服务追踪分析一个由微服务构成的应用系统由N个服务实例组成,通过REST请求或者RPC协议等来通讯完成一个业务流程的调用。对于入口的一个调用可能需要有多个后台服务协同完成,链路上任何一个调用超时或出错都可能造成前端请求的失败。服务的调用链也会越来越长,并形成一个树形的调用链。如下图所示: …

    Spring Cloud, Spring Cloud Sleuth, 全链路监控, 微服务 继续阅读

  12. 什么是Spring Cloud Config?

    前言:在单体应用中,我们一般的做法是把Property和Code放在一起,没有什么问题。但是在分布式系统中,由于存在多个服务实例,需要分别管理到每个具体的服务工程中的配置,上线需要准备check list 并逐个检查每个上线的服务是否正确。在系统上线之后修改某个配置,需要重启服务。这样开发就相当麻烦。因此我们急需需要把分布式系统中的配置信息抽取出来统一管理,服务获取系统信息时有一个覆盖顺序:property–> Evn—->配置中心。这样修改环境变量或者修改配置中心的配置就能取到最新的配置信息。在唯品会 Venus Framework中我们专门设计了这个功能。Spring cloud出现之后,避免了大家重复造轮子。 什么是 Spring Cloud Config ?其官方文档中对自己的定义是如下,官网连接:Spring Cloud Config。 Spring Cloud Config provides server and client-side support for externalized configuration in a distributed system.With the Config Server you have a central place to manage external properties for applications across all environments. 简单来说,Spring Cloud Config就是我们通常意义上的配置中心 - 把应用原本放在本地文件的配置抽取出来放在中心服务器,从而能够提供更好的管理、发布能力。 …

    Spring Cloud Config 继续阅读