随笔分类 -  springCloud(C语言中文网)

http://c.biancheng.net/skill/springcloud/
摘要:微服务架构下,服务的数量少则几十,多则上百,所以对服务的监控必不可少。如果是以前的单体项目,启动了多少个项目是固定的,可以通过第三方监控工具对其进行监控,然后实时告警。在微服务下,由于服务数量太多,并且可以随时扩展,这个时候第三方的监控功能就不适用了,不过我们可以通过 Spring Boot Adm 阅读全文
posted @ 2021-02-25 09:20 节日快乐 阅读(532) 评论(0) 推荐(0) 编辑
摘要:通过《Spring Boot Admin的介绍及使用》教程的学习,已经可以在 Spring Boot Admin 中查看应用中 Actuator 的监控信息了,但是这种方式有一点不好的地方,就是每个被监控的服务都必须配置 Spring Boot Admin 的地址,还得引入依赖。本节我们将 Spri 阅读全文
posted @ 2021-02-25 09:17 节日快乐 阅读(279) 评论(0) 推荐(0) 编辑
摘要:监控类的数据 Web 管理端最好不要设置成直接通过输入访问地址就可以访问,必须得进行用户认证才行,以保证数据的安全性。Spring Boot Admin 开启认证也可以借助于 spring-boot-starter-security。加入依赖,代码如下所示。 <dependency> <groupI 阅读全文
posted @ 2021-02-25 09:15 节日快乐 阅读(242) 评论(0) 推荐(0) 编辑
摘要:Spring Boot 有一个非常好用的监控和管理的源软件,这个软件就是 Spring Boot Admin。该软件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。主要的功能点有: 显示应用程序的监控状态 应用程序上下线监 阅读全文
posted @ 2021-02-25 09:12 节日快乐 阅读(322) 评论(0) 推荐(0) 编辑
摘要:服务之间接口调用的安全认证是通过 Feign 的请求拦截器统一在请求头中添加 Token 信息,实现认证调用。还有一种调用方式也是需要进行认证,就是我们的 API 网关转发到具体的服务,这时候就不能采用 Feign 拦截器的方式进行 Token 的传递。在 Zuul 中我们可以用 pre 过滤器来做 阅读全文
posted @ 2021-02-25 08:57 节日快乐 阅读(96) 评论(0) 推荐(0) 编辑
摘要:如果项目中用的 RestTemplate 来调用服务提供的接口,可以利用 RestTemplate 的拦截器来传递 Token,代码如下所示。 @Component public class TokenInterceptor implements ClientHttpRequestIntercept 阅读全文
posted @ 2021-02-24 17:14 节日快乐 阅读(138) 评论(0) 推荐(0) 编辑
摘要:如果项目中用的是 HttpClient 或者 RestTemplate 之类的调用接口,则可以在调用之前申请 Token,然后将其塞到请求头中。在 Spring Cloud 中消费接口肯定是用 Feign 来做的,这意味着我们需要对 Feign 进行改造,需要往请求头中塞上我们申请好的 Token。 阅读全文
posted @ 2021-02-24 17:09 节日快乐 阅读(188) 评论(0) 推荐(0) 编辑
摘要:目前服务提供方已经开启了调用认证,这意味着如果现在直接调用接口会被拦截,所以在调用之前需要进行认证,即获取 Token 并将其放到请求头中与请求头一起传输才可以调用接口。 1. 调用前获取 Token 获取 Token 前我们先定义一个 Feign 的客户端,代码如下所示。 /** * 认证服务 A 阅读全文
posted @ 2021-02-24 17:05 节日快乐 阅读(83) 评论(0) 推荐(0) 编辑
摘要:服务提供方就是 provider。服务消费方消费接口时,provider 需要对其进行身份验证,验证通过才可以让它消费接口。这个过程中用到的过滤器可以写在 Common 包中,凡是服务提供方都需要用到。认证过滤器的代码如下所示。 /** * API 调用权限控制 */ public class Ht 阅读全文
posted @ 2021-02-24 17:02 节日快乐 阅读(77) 评论(0) 推荐(0) 编辑
摘要:认证服务肯定要有用户信息,不然怎么认证是否为合法用户?因为是内部的调用认证,可以简单一点,用数据库管理就是一种方式。或者可以配置用户信息,然后集成分布式配置管理就完美了。 表结构 本教程中的案例把查数据库这一步骤省略了,大家可以自行补充,但是表的设计还是要跟大家讲解的。用户表的形式如图 1 所示。 阅读全文
posted @ 2021-02-24 16:59 节日快乐 阅读(208) 评论(0) 推荐(0) 编辑
摘要:JWT(Json Web Token)是为了在网络应用环境间传递声明而执行的一种基于 Json 的开放标准。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。比如用在用户登录上时,基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信 阅读全文
posted @ 2021-02-24 14:39 节日快乐 阅读(102) 评论(0) 推荐(0) 编辑
摘要:Zipkin 是 Twitter 的一个开源项目,是一个致力于收集所有服务的监控数据的分布式跟踪系统,它提供了收集数据和查询数据两大接口服务。有了 Zipkin 我们就可以很直观地对调用链进行查看,并且可以很方便地看出服务之间的调用关系以及调用耗费的时间。 Zipkin 数据收集服务 部署 Zipk 阅读全文
posted @ 2021-02-24 14:08 节日快乐 阅读(134) 评论(0) 推荐(0) 编辑
摘要:在《Spring Cloud使用Sleuth在应用中进行日志跟踪》教程中的案例,我们已经实现了服务调用之间的链路追踪,但是这些日志是分散在各个机器上的,就算出现问题了,我们想快速定位,也得从各个机器把日志整合起来,再去查问题。这个时候就需要引入日志分析系统了,比如 ELK,可以将多台服务器上的日志信 阅读全文
posted @ 2021-02-24 13:57 节日快乐 阅读(248) 评论(0) 推荐(0) 编辑
摘要:首先我们需要在跟踪的服务中集成 Sleuth,所有需要跟踪的服务都加上依赖。Sleuth Maven 配置代码如下所示。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starte 阅读全文
posted @ 2021-02-24 13:54 节日快乐 阅读(154) 评论(0) 推荐(0) 编辑
摘要:高可用是分布式系统架构设计中必须考虑的因素之一,它通常是指通过设计减少系统不能提供服务的时间。Apollo 在高可用设计上下了很大的功夫,下面我们来简单的分析下: 1)某台Config Service 下线 无影响,Config Service 可用部署多个节点。 2)所有 Config Servi 阅读全文
posted @ 2021-02-24 13:47 节日快乐 阅读(164) 评论(0) 推荐(0) 编辑
摘要:本节主要对 Apollo 客户端设计原理进行解析。 1. 设计原理 图 1 简要描述了 Apollo 客户端的实现原理。 客户端和服务端保持了一个长连接,编译配置的实时更新推送。 定时拉取配置是客户端本地的一个定时任务,默认为每 5 分钟拉取一次,也可以通过在运行时指定 System Propert 阅读全文
posted @ 2021-02-24 13:46 节日快乐 阅读(498) 评论(0) 推荐(0) 编辑
摘要:本节主要对 Apollo 服务端设计原理进行解析。 1. 配置发布后的实时推送设计 配置中心最重要的一个特性就是实时推送,正因为有这个特性,我们才可以依赖配置中心做很多事情。如图 1 所示。 图 1 简要描述了配置发布的大致过程。 用户在 Portal 中进行配置的编辑和发布。 Portal 会调用 阅读全文
posted @ 2021-02-22 17:16 节日快乐 阅读(159) 评论(0) 推荐(0) 编辑
摘要:1)Config Service 服务于 Client(项目中的 Apollo 客户端)对配置的操作,提供配置的查询接口。 提供配置更新推送接口(基于 Http long polling)。 2)Admin Service 服务于后台 Portal(Web 管理端),提供配置管理接口。 3)Meta 阅读全文
posted @ 2021-02-22 16:23 节日快乐 阅读(80) 评论(0) 推荐(0) 编辑
摘要:本节主要讲解在普通的 Java 项目和 Spring Boot 中如何使用 Apollo。 普通 Java 项目中使用 加入 Apollo Client 的 Maven 依赖,代码如下所示。 <dependency> <groupId>com.ctrip.framework.apollo</grou 阅读全文
posted @ 2021-02-22 16:19 节日快乐 阅读(393) 评论(0) 推荐(0) 编辑
摘要:打开 Portal 地址,首先看到的是登录页面,默认的账号是 apollo,密码是 admin。输入之后点击登录即可跳转到首页 首页会展示当前登录用户管理的所有项目列表,还有收藏、搜索等功能,如图 2 所示。 点击 SampleApp 可以跳转到项目的主页面,如图 3 所示。 点击新增配置按钮可以添 阅读全文
posted @ 2021-02-22 15:58 节日快乐 阅读(399) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示