摘要:
如果项目中用的 RestTemplate 来调用服务提供的接口,可以利用 RestTemplate 的拦截器来传递 Token,代码如下所示。 @Component public class TokenInterceptor implements ClientHttpRequestIntercept 阅读全文
摘要:
如果项目中用的是 HttpClient 或者 RestTemplate 之类的调用接口,则可以在调用之前申请 Token,然后将其塞到请求头中。在 Spring Cloud 中消费接口肯定是用 Feign 来做的,这意味着我们需要对 Feign 进行改造,需要往请求头中塞上我们申请好的 Token。 阅读全文
摘要:
目前服务提供方已经开启了调用认证,这意味着如果现在直接调用接口会被拦截,所以在调用之前需要进行认证,即获取 Token 并将其放到请求头中与请求头一起传输才可以调用接口。 1. 调用前获取 Token 获取 Token 前我们先定义一个 Feign 的客户端,代码如下所示。 /** * 认证服务 A 阅读全文
摘要:
服务提供方就是 provider。服务消费方消费接口时,provider 需要对其进行身份验证,验证通过才可以让它消费接口。这个过程中用到的过滤器可以写在 Common 包中,凡是服务提供方都需要用到。认证过滤器的代码如下所示。 /** * API 调用权限控制 */ public class Ht 阅读全文
摘要:
认证服务肯定要有用户信息,不然怎么认证是否为合法用户?因为是内部的调用认证,可以简单一点,用数据库管理就是一种方式。或者可以配置用户信息,然后集成分布式配置管理就完美了。 表结构 本教程中的案例把查数据库这一步骤省略了,大家可以自行补充,但是表的设计还是要跟大家讲解的。用户表的形式如图 1 所示。 阅读全文
摘要:
JWT(Json Web Token)是为了在网络应用环境间传递声明而执行的一种基于 Json 的开放标准。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。比如用在用户登录上时,基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信 阅读全文
摘要:
Zipkin 是 Twitter 的一个开源项目,是一个致力于收集所有服务的监控数据的分布式跟踪系统,它提供了收集数据和查询数据两大接口服务。有了 Zipkin 我们就可以很直观地对调用链进行查看,并且可以很方便地看出服务之间的调用关系以及调用耗费的时间。 Zipkin 数据收集服务 部署 Zipk 阅读全文
摘要:
在《Spring Cloud使用Sleuth在应用中进行日志跟踪》教程中的案例,我们已经实现了服务调用之间的链路追踪,但是这些日志是分散在各个机器上的,就算出现问题了,我们想快速定位,也得从各个机器把日志整合起来,再去查问题。这个时候就需要引入日志分析系统了,比如 ELK,可以将多台服务器上的日志信 阅读全文
摘要:
首先我们需要在跟踪的服务中集成 Sleuth,所有需要跟踪的服务都加上依赖。Sleuth Maven 配置代码如下所示。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starte 阅读全文
摘要:
高可用是分布式系统架构设计中必须考虑的因素之一,它通常是指通过设计减少系统不能提供服务的时间。Apollo 在高可用设计上下了很大的功夫,下面我们来简单的分析下: 1)某台Config Service 下线 无影响,Config Service 可用部署多个节点。 2)所有 Config Servi 阅读全文
摘要:
本节主要对 Apollo 客户端设计原理进行解析。 1. 设计原理 图 1 简要描述了 Apollo 客户端的实现原理。 客户端和服务端保持了一个长连接,编译配置的实时更新推送。 定时拉取配置是客户端本地的一个定时任务,默认为每 5 分钟拉取一次,也可以通过在运行时指定 System Propert 阅读全文