spring-cloud的灰度发布设计(2)

SpringCloud的调用链 SpringCloud微服务中之间的调用通常使用Feign方式和RestTemplate方式(较少使用)。 如果需要指定服务之间的调用, 首先要给各个服务添加唯一标识, 使用一些特殊的标记, 如版本号flag或者version等; 其次,要干预微服务中Ribbon的默认轮询调用机制, 我们需要根据微服务的版本等不同, 来进行调用。 最后, 在服务之间, 需要传递调用 … 继续阅读

spring-cloud的灰度发布设计(1)

灰度发布 也叫金丝雀发布。 灰度发布和全量发布,也是是一种局部与整体的关系,灰度发布的目的是先小范围试验,然后经过一定的时间窗口之后再全量发布的发布方式。在一些敏感的服务,不适合全量发布,灰度发布是一种风险控制的策略。 灰度期:灰度发布开始到结束期间的这一段时间,称为灰度期。 粒度 接口粒度 以服务实例为级别的粒度 以多个服务实例组成的组为级别的粒度 原理 目前主要关注以服务实例为级别的粒度的实现 … 继续阅读

一个基于spring-cloud的全站构建案例

想法&实践 最近有把一个站点的构建过程记录下来的想法,于是把所需要的技术关键点全部都一一罗列出来,当做技术笔记。我在自己的私人代码库里面,做成了脚手架,方便自己。更重要的是,在这个梳理过程,让我对以前的一些系统设计有了新的体会。重新搭建的过程,其实是愉悦、流畅的。 技术栈 语言:java 框架:spring-cloud 组件:zuul,eureka,spring-cloud feign,s … 继续阅读

spring cloud的组件

最近想梳理一下公司的整个系统的设计,以及各个spring cloud组件的交互和协同工作过程和原理。也想自己从头构建一个新的微服务系统。于是,从头到尾,梳理了一遍。 常见微服务组件 注册和发现服务 Eureka: Eureka是Netflix开发的服务发现框架 Zookeep、etcd、Consul 配置中心 spring cloud config、ctrip Apollo ctrip Apoll … 继续阅读