Fork me on GitHub

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

跟我学Spring Cloud(Finchley版)-01-开篇

前言·课程简介最近挺多童鞋在公众号(itmuch_com)上催更Spring Cloud系列教程,故有此系列。以下是几点说明/规划/答疑: 问:为什么基于Finchley,而非Greenwich? 答:就目前而言,Finchley更贴近生产,而Greenwich尚未发布——虽然已经RC了,但有挺多不确定因素,例如:Resilience4j是否会在Greenwich版本中成功孵化(应该是不会)、spring-cloud-netflix-concurrency-limits...

Spring Cloud Netflix项目进入维护模式之我见

这两天看到一则新闻:https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now#spring-cloud-netflix-projects-entering-maintenance-mode 。 其中说到: Spring Cloud Netflix Projects Entering Maintenance ModeRecently, Netflix announced that...