Spring Cloud构建微服务架构:服务网关(过滤器)【Dalston版】 (zhuanlan.zhihu.com)
在前两篇文章:服务网关(基础)、服务网关(路由配置)中,我们了解了Spring Cloud Zuul作为网关所具备的最基本功能:路由。本文我们将具体介绍一下Spring Cloud Zuul的另一项核心功能:过滤器。

过滤器的作用

通过上面所述的两篇我们,我们已经能够实现请求的路由功能,所以我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会将所有的微服务接口都对它们开放。然而,目前的服务路由并没有限制权限这样的功能,所有请求都会被毫无保留地转发到具体的应用并返回结果,为了实现对客户端请求的安全校验和权限控制,最简单和粗暴的方法就是为每个微服务应用都实现一套用于校验签名和鉴别权限的过滤器或拦截器。不过,这样的做法并不可取,它会增加日后的系统维护难度,因为同一个系统中的各种校验逻辑很多情况下都是大致相同或类似的,这样的实现方式会使得相似的校验逻辑代码被分散到了各个微服务中去,冗余代码的出现是我们不希望看到的。所以,比较好的做法是将这些校验逻辑剥离出去,构建出一个独立的鉴权服务。在完成了剥离之后,有不少开发者会直接在微服务应用中通过调用鉴权服务来实现校验,但是这样的做法仅仅只是解决了鉴权逻辑的分离,并没有在本质上将这部分不属于业余的逻辑拆分出原有的微服务应用,冗余的拦截器或过滤器依然会存在。
by @极乐小程序商店 2017-12-08 10:24 查看详情
Spring Cloud构建微服务架构:服务容错保护(Hystrix依赖隔离)【Dalston版】 (zhuanlan.zhihu.com)
前言

在上一篇《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》中,我们已经体验了如何使用@HystrixCommand来为一个依赖资源定义服务降级逻辑。实现方式非常简单,同时对于降级逻辑还能实现一些更加复杂的级联降级等策略。之前对于使用Hystrix来实现服务容错保护时,除了服务降级之外,我们还提到过线程隔离、断路器等功能。那么在本篇中我们就来具体说说线程隔离。

依赖隔离

“舱壁模式”对于熟悉Docker的读者一定不陌生,Docker通过“舱壁模式”实现进程的隔离,使得容器与容器之间不会互相影响。而Hystrix则使用该模式实现线程池的隔离,它会为每一个Hystrix命令创建一个独立的线程池,这样就算某个在Hystrix命令包装下的依赖服务出现延迟过高的情况,也只是对该依赖服务的调用产生影响,而不会拖慢其他的服务。
by @极乐小程序商店 2017-12-07 18:29 查看详情
Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)【Dalston版】 (zhuanlan.zhihu.com)
前言

在前两篇《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》和《Spring Cloud构建微服务架构:服务容错保护(Hystrix依赖隔离)》中,我们对Hystrix提供的服务降级和依赖隔离有了基本的认识。下面我们将继续说说Hystrix的另外一个重要元件:断路器。

断路器

断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时,“断路器”能够及时的切断故障电路,防止发生过载、发热、甚至起火等严重后果。
by @极乐小程序商店 2017-12-07 18:16 查看详情
小程序二次贝塞尔曲线,购物车商品曲线飞入效果 (zhuanlan.zhihu.com)
小程序二次贝塞尔曲线,购物车商品曲线飞入效果
by @极乐小程序商店 2017-12-07 16:10 查看详情
小程序二次贝塞尔曲线,购物车商品曲线飞入效果 (zhuanlan.zhihu.com)
小程序二次贝塞尔曲线,购物车商品曲线飞入效果
by @极乐小程序商店 2017-12-07 16:10 查看详情
微信小程序城市定位(借助百度地图API判断城市) (zhuanlan.zhihu.com)
微信小程序城市定位(借助百度地图API判断城市)
by @极乐小程序商店 2017-12-07 16:08 查看详情
Edgware.RELEASE中Eueka Client注册的优化 (zhuanlan.zhihu.com)
简介

Spring Cloud在27日宣布Edgware.RELEASE版本可用了。这个版本详细介绍可参照官网:https://spring.io/。
本文主要介绍Edgware.RELEASE中对Eureka Client注册的优化,下面通过一个小例子来进行说明。

Dalston.SR4版本之前

添加对应的pom依赖.
在主函数上添加@EnableDiscoveryClient注解.
properties文件进行配置
by @极乐小程序商店 2017-12-06 17:49 查看详情
使用Spring Cloud Sleuth实现链路监控 (zhuanlan.zhihu.com)
在服务比较少的年代,一个系统的接口响应缓慢通常能够迅速被发现,但如今的微服务模块,大多具有规模大,依赖关系复杂等特性,错综复杂的网状结构使得我们不容易定位到某一个执行缓慢的接口。分布式的服务跟踪组件就是为了解决这一个问题。其次,它解决了另一个难题,在没有它之前,我们客户会一直询问:你们的系统有监控吗?你们的系统有监控吗?你们的系统有监控吗?现在,谢天谢地,他们终于不问了。是有点玩笑的成分,但可以肯定的一点是,实现全链路监控是保证系统健壮性的关键因子。

介绍Spring Cloud Sleuth和Zipkin的文章在网上其实并不少,所以我打算就我目前的系统来探讨一下,如何实现链路监控。全链路监控这个词意味着只要是不同系统模块之间的调用都应当被监控,这就包括了如下几种常用的交互方式:

1 Http协议,如RestTemplate,Feign,Okhttp3,HttpClient…

2 Rpc远程调用,如Motan,Dubbo,GRPC…

3 分布式Event,如RabbitMq,Kafka…

而我们项目目前混合使用了Http协议,Motan Rpc协议,所以本篇文章会着墨于实现这两块的链路监控。
by @极乐小程序商店 2017-12-06 17:31 查看详情
Spring Cloud与Dubbo共存方案总结 (zhuanlan.zhihu.com)
一、背景

假设有一个遗留的Dubbo系统,现在想改用Spring Cloud。

由于遗留Dubbo系统比较庞大,短期之内无法完成技术栈的迁移。因此需要“分步走”,即:初期实现两者共存,后期逐步绞杀Dubbo应用,最终实现技术栈的统一。

p.s. 这里并没有贬低Dubbo的意思,仅是按照该场景讨论。

二、头脑风暴

架构迁移、技术栈更换、项目重构时的第一步往往不是“改造”,而是“停止修改”。基于这个原则,个人不太倾向于去立即大幅重构Dubbo应用原先的代码。原因有二:首先是原则问题,更重要的是时间成本、技术风险很难得到控制。
by @极乐小程序商店 2017-12-06 17:28 查看详情
Spring Cloud各组件配置属性总结 (zhuanlan.zhihu.com)
我们知道,Spring Cloud是个工具集,整合了各种组件。有的组件Spring Cloud是拿来主义,有的组件Spring Cloud又进行了一些增强(例如Feign)。这就导致Spring Cloud配置的分散——部分在Spring Cloud官方文档中有所提及,另外一些配置则分散在各组件自身Wiki中。

这样的现状,为Spring Cloud初学者带来新的挑战。事实上,经常有朋友在使用Spring Cloud的时候,咨询我相关组件的配置。
by @极乐小程序商店 2017-12-06 17:06 查看详情
开发 | 小程序也能像朋友圈一样「折叠全文」? (zhuanlan.zhihu.com)
开发 | 小程序也能像朋友圈一样「折叠全文」?
by @极乐小程序商店 2017-12-06 16:01 查看详情
开发 | 小程序也能像朋友圈一样「折叠全文」? (zhuanlan.zhihu.com)
开发 | 小程序也能像朋友圈一样「折叠全文」?
by @极乐小程序商店 2017-12-06 16:01 查看详情
微信小程序组件化 快速实现可用模态窗 (zhuanlan.zhihu.com)
微信小程序组件化 快速实现可用模态窗
by @极乐小程序商店 2017-12-06 15:59 查看详情
Spring Cloud源码分析(二)Ribbon (zhuanlan.zhihu.com)
友情提示:本文较长,请选择一个较为舒适的姿势来阅读

在之前介绍使用Ribbon进行服务消费的时候,我们用到了RestTemplate,但是熟悉Spring的同学们是否产生过这样的疑问:RestTemplate不是Spring自己就有的吗?跟Ribbon的客户端负载均衡又有什么关系呢?下面在本文,我们来看RestTemplate和Ribbon是如何联系起来并实现客户端负载均衡的。

首先,回顾一下之前的消费者示例:我们是如何实现客户端负载均衡的?仔细观察一下代码之前的代码,我们可以发现在消费者的例子中,可能就是这个注解@LoadBalanced是之前没有接触过的,并且从命名上来看也与负载均衡相关。我们不妨以此为线索来看看源码实现的机制。
by @极乐小程序商店 2017-12-06 15:58 查看详情
微信小程序音频功能开发实(cai)践(keng) (zhuanlan.zhihu.com)
微信小程序音频功能开发实(cai)践(keng)
by @极乐小程序商店 2017-12-06 15:51 查看详情