Fork me on GitHub

Spring Cloud

Spring Cloud系列教程

本文列出笔者所有Spring Cloud相关的文章。共计50+篇,包括系列教程、新特性总结、技巧 & 提升 & 源码分析、对未来的一些看法等。基本上你遇到的问题、可能会踩到的坑都有覆盖,望惠存。 一、跟我学Spring Cloud【连载中,目录更新可能不及时,请使用右侧的搜索按钮】1.1 主线 跟我学Spring Cloud(Finchley版)-01-开篇 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 跟我学Sprin...

跟我学Spring Cloud(Finchley版)-09-Feign

经过前文讲解,我们已使用Eureka实现服务发现;使用Ribbon实现了负载均衡这种听起来很高端的东西。我们的架构已经初具雏形,但依然存在很多问题,下面不妨来分析下前文的代码—— 1234567891011@GetMapping("/users/{id}")public User findById(@PathVariable Long id) { // 这里用到了RestTemplate的占位符能力 User user = this.r...

跟我学Spring Cloud(Finchley版)-08-Ribbon深入

上一节讲了Ribbon的入门姿势,本节深入探讨Ribbon的高级特性。 内置负载均衡规则负载均衡规则是Ribbon的核心,下面来看一下Ribbon内置的负载均衡规则。 AvailabilityFilteringRule:过滤掉一直连接失败的被标记为circuit tripped的后端Server,并过滤掉那些高并发的后端Server或者使用一个AvailabilityPredicate来包含过滤server的逻辑,其实就就是检查status里记录的各个Server的运...

跟我学Spring Cloud(Finchley版)-07-Ribbon入门

经过前文讲述,我们已经实现了服务发现。本节来解决 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 提到的如下问题: 负载均衡如何考虑?难道得在电影微服务和用户微服务之间加个NGINX做负载均衡吗?听起来是可行的,但如果有10000+服务(这并不夸张,我司的微服务数目是这个数字乘以N,N >= m,哈哈哈)那这个NGINX的配置得有多复杂…… 一般来说,提到负载均衡,大家一般很容易想到浏览器 -> NGINX -> 反向代...

跟我学Spring Cloud(Finchley版)番外-01-Eureka安全详解

前文的示例中,Eureka Server都是允许匿名访问的,该方式一般无法满足公司在安全性上的诉求。 本节来构建一个需要登录才能访问的Eureka Server。Eureka本身不具备安全认证的能力,Spring Cloud使用Spring Security为Eureka Server进行了增强。 Eureka Server端改造 加依赖 1234<dependency> <groupId>org.springframework.boot&lt...

跟我学Spring Cloud(Finchley版)-06-服务注册与服务发现-Eureka深入

在跟我学Spring Cloud(Finchley版)-05-服务注册与服务发现-Eureka入门 一节中,已经编写了一个Eureka Server,并将服务提供者与消费者都注册到了Eureka Server上。 本节,来深入探讨Eureka的高级特性。 Eureka原理本节来探讨Eureka的原理。 Region & Availability Zone下面分析一下Eureka原理,在分析原理前,先来了解一下Region和Availability Zone,如下...

跟我学Spring Cloud(Finchley版)-05-服务注册与服务发现-Eureka入门

本节讲解基于Eureka的服务发现。 Eureka简介Eureka是Netflix开源的服务发现组件,本身是一个基于REST的服务,包含Server和Client两部分,Spring Cloud将它集成在子项目Spring Cloud Netflix中。 拓展阅读 Eureka的GitHub:https://github.com/Netflix/Eureka Netflix是一家在线影片租赁提供商。 Eureka的典故:阿基米德发现浮力时,非常开心,于是说:“Eu...

跟我学Spring Cloud(Finchley版)-04-服务注册与服务发现-原理剖析

第2节( 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 )说过: 地址硬编码问题——电影微服务中将用户微服务的地址写死,如果用户微服务地址发生变化,难道要重新上线电影微服务吗? 本节来解决该问题。 不妨先思考一下,怎样才能让服务消费者总能找到服务提供者呢?或者说,怎样才能让服务消费者感知到服务提供者地址的变化呢? TIPS 目前市面上把服务消费者找到服务提供者的这种机制称为服务发现,又或者服务注册。下面来探索服务发现究竟是怎么回事。 服...

跟我学Spring Cloud(Finchley版)-03-监控:强大的Spring Boot Actuator

第2节( 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 )说过: 应用没有监控,没有画板,一切指标都没有。在这个Growth Hack逐渐成为主流的时代,不弄个Dashboard把系统压力、QPS、CPU、内存、日活啥的可视化,你好意思出来混吗…… 本节我们来解决该问题。 Spring Boot Actuator是Spring Boot官方提供的监控组件。只需为项目添加以下依赖,即可就整合Spring Boot Actuator。 12...

跟我学Spring Cloud(Finchley版)-02-构建分布式应用

上一节说过,Spring Cloud是一个快速构建分布式应用的工具集。本节,我们就来编写一个简单的分布式应用,并探讨这个分布式应用有哪些问题。 服务消费者 & 提供者本书使用服务提供者与服务消费者来描述微服务之间的调用关系。下表解释了服务提供者与服务消费者。 表-服务提供者与服务消费者 名词 定义 服务提供者 服务的被调用方(即:为其他服务提供服务的服务) 服务消费者 服务的调用方(即:依赖其他服务的服务) 以电影售票系统为例。如图,用户...