![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Cloud
2014Team
这个作者很懒,什么都没留下…
展开
-
Spring Cloud简介
一、简介打开Spring官网http://spring.io 首页的中部,可以看到Spring Cloud的简介。【原文】Building distributed systems doesn't need to be complex and error-prone(易错). Spring Cloud offers a simple and accessible(易接受的) programm...原创 2019-08-08 15:56:42 · 154 阅读 · 0 评论 -
sleuth + kafka + zipkin
一、基本环境zipkin zookeeper kafka 一个eureka项目 一个消费者项目 一个提供者项目二、zipkin下载与启动参考https://blog.csdn.net/u012965203/article/details/100006168三、zookeeper下载与安装参考https://blog.csdn.net/u012965203/art...原创 2019-08-22 01:34:39 · 1583 阅读 · 0 评论 -
微服务网关Zuul
一、简介网关是系统唯一对外的入口,介于客户端与服务器端之间,用于对请求进行鉴权、限流、路由、监控等功能。二、官网https://github.com/Netflix/zuul/wiki【原文】Zuul is the front door for all requests from devices and web sites(设备和web站点) to the backend of...原创 2019-08-16 23:56:23 · 199 阅读 · 0 评论 -
微服务网关Zuul负载均衡
一、基本环境搭建一个EurekaServer 一个zuul网关 三个消费者二、创建消费者05-consumer-8080(1)创建项目(2)依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http...原创 2019-08-17 11:50:35 · 7038 阅读 · 1 评论 -
微服务网关Zuul服务降级
当消费者调用提供者时由于各种原因出现无法调用的情况时,消费者可以进行服务降级。那么,若客户端通过网关调用消费者无法调用时,zuul具有服务降级功能。一、基本环境搭建一个eureka项目 一个zuul项目二、创建网关zuul(1)创建项目00-zuul-fallback-9000(2)依赖<?xml version="1.0" encoding="UTF-8"...原创 2019-08-17 18:30:29 · 2961 阅读 · 1 评论 -
微服务网关Zuul路由ZuulFilter过滤
一、需求该过滤的条件是,只有请求参数携带有user的请求才可访问端口号为/abc8080工程,否则返回401,未授权。只有当访问/abc8080且user为空时是通不过过滤的,其它请求都可以。二、基本环境搭建一个eureka 一个网关zuul三、创建项目eureka(1)创建项目,命名00-eurekaserver-8000(2)依赖<?xml versio...原创 2019-08-17 22:58:36 · 11766 阅读 · 2 评论 -
令牌桶限流
使用Guava库的RateLimit完成限流的,而其底层使用的是令牌桶算法实现的限流。常用的限流算法有两种:漏桶算法和令牌桶算法 漏桶算法思路,水(请求)先进入到漏桶里,漏桶以一定的速度出水,当水流入速度过大会直接溢出,可以看出漏桶算法能强行限制数据的传输速率。漏桶图1对于很多应用场景来说,除了要求能够限制数据的平均传输速率外,还要求允许某种程度的突发传输。这...原创 2019-08-17 23:40:47 · 1683 阅读 · 0 评论 -
多维请求限流
一、原理用Guava的RateLimit令牌桶算法可以实现对请求的限流,但其限流粒度有些大。有个老外使用路由过滤,针对Zuul编写了一个限流库(spring-cloud-zuul-ratelimit),提供多种细粒度限流策略,在导入该依赖后可以直接使用。其限流策略,即限流查验的对象类型有:user:针对用户的限流,对单位时间窗内经过该网关的用户数量进行限制 origin:针对客户端IP...原创 2019-08-18 00:33:01 · 181 阅读 · 0 评论 -
SprignBoot整合Spring Data Elasticsearch
一、原生java整合elasticsearch的API地址https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.2/java-docs.html二、Spring Data的官网http://projects.spring.io/spring-data/Spring Data 是的使命是给各种数据访问提供统...原创 2019-08-29 01:24:27 · 400 阅读 · 0 评论 -
Swagger使用
一、简介https://swagger.io/tools/swagger-ui/Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。作用接口的文档在线自动生成 功能测试Swagger是一组开源...原创 2019-09-01 12:34:17 · 284 阅读 · 0 评论 -
Druid数据库监控
一、简介Druid是阿里开源的一个JDBC应用组件, 其包括三部分: DruidDriver: 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource: 高效可管理的数据库连接池。 SQLParser: 实用的SQL语法分析 通过Druid连接池中间件, 我们可以实现: 可以监控数据库访问性能,Druid内置提...原创 2019-09-01 22:34:37 · 994 阅读 · 0 评论 -
Turbine使用
一、简介Turbine是聚合服务器发送事件流数据的一个工具,Hystrix的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过Turbine来监控集群下Hystrix的metrics情况Turbine的github地址:https://github.com/Netflix/Turbine二、基本环境一个eureka模块 两个消费者模块 一个turbine监控模块三、创建...原创 2019-09-05 22:50:15 · 4863 阅读 · 0 评论 -
调用链跟踪Spring Cloud Sleuth+zipkin
例如阿里的鹰眼、京东Hydra、新浪Watchman等。一、Sleuth简介https://spring.io/projects/spring-cloud-sleuth【翻译】(Spring Cloud Sleuth可以实现)针对Spring Cloud应用程序的分布式跟踪,兼容Zipkin、HTrace和基于日志的(如Elk)跟踪。【翻译】Spring Cloud Sle...原创 2019-08-22 00:37:34 · 773 阅读 · 0 评论 -
Dashboard监控仪表盘
Hystrix Dashboard仪表盘用于以GUI的形式展示消费者的执行情况,包括其处理器方法与Service方法的调用执行情况,及熔断器CircuitBreaker的状态等。当然,这些显示出的数据都是在指定时间窗内的执行情况及状态信息一、创建消费者(1)创建spring boot工程,命名04-consumer-dashboard-8080(2)依赖<?xml ve...原创 2019-08-13 00:45:27 · 2056 阅读 · 0 评论 -
Hystrix fallbackfactory服务降级
一、创建消费者工程04-consumer-fallbackfactory-8080(1)创建项目(2)依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc...原创 2019-08-11 23:17:01 · 10277 阅读 · 2 评论 -
微服务中心Eureka
一、简介Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS(AWS 是业务流程管理开发平台AWS Enterprise BPM Platform 业务流程管理开发平台)域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,实现SpringCloud的服务...原创 2019-08-08 16:27:13 · 117 阅读 · 0 评论 -
灰度发布
一、灰度发布灰度发布,又名金丝雀发布,是系统迭代更新、平滑过渡的一种上线发布方式二、Zuul灰度发布原理生产环境中,可以实现灰度发布的技术很多,其中zuul对于灰度发布的实现。而其实现是基于Eureka元数据的。Eureka元数据是指,Eureka客户端向Eureka Server中注册时的描述信息。有两种类型的元数据:标准元数据 自定义元数据 三、基本环境搭建一个注...原创 2019-08-18 16:29:54 · 1355 阅读 · 0 评论 -
分布式配置管理Spring Cloud Config
一、官网介绍集群中每一台主机的配置文件都是相同的,对配置文件的更新维护就成为了一个棘手的问题,Spring Cloud Config是负责Spring Cloud中配置文件维护管理的配置中心。分布式配置管理还有百度disconf 、阿里diamand 、zk等。https://spring.io/projects/spring-cloud-config【原文】Spring Cl...原创 2019-08-18 23:12:29 · 187 阅读 · 0 评论 -
Spring Cloud使用
一、创建提供者工程01-provider-8081(1) 创建工程创建一个Spring Initializr工程,并命名为01-provider-8081。导入Lombok、Web、JPA及MySQL驱动依赖(2) pom.xml导入Druid依赖<dependency> <groupId>com.alibaba</groupId> &...原创 2019-08-10 12:40:51 · 204 阅读 · 0 评论 -
Spring Cloud中使用Eureka
一、创建00-eurekaserver-8000(1)创建工程创建一个Spring Initializr工程,命名为00-eurekaserver-8000,仅导入Eureka Server依赖即可(2)pom.xml文件如下若你使用的是JDK6、7、8,那么这些依赖无需导入。而JDK9及其以上版本需要导入<?xml version="1.0" encoding...原创 2019-08-10 19:12:08 · 558 阅读 · 0 评论 -
利用Spring Cloud Bus配置自动更新
一、官方简介https://spring.io/projects/spring-cloud【翻译】用于将服务和服务实例与分布式消息系统链接在一起的事件总线。在集群中传播状态更改很有用(例如配置更改事件)。二、工作原理三、配置自动更新原理四、搭建基本环境一个配置文件服务器 一个配置提供工程 一个注册中心eureka工程 一个消费者工程 一个提供者工程...原创 2019-08-20 00:59:12 · 255 阅读 · 0 评论 -
消息系统整合框架Spring Cloud Stream
一、简介【原文】A lightweight event-driven microservices framework to quickly build applications that can connect to external systems. Simple declarative(声名式的) model to send and receive messages using Apa...原创 2019-08-24 15:29:29 · 427 阅读 · 0 评论 -
Spring Cloud中使用OpenFeign
一、简介Spring Cloud OpenFeign通过自动配置和Spring环境以及其他Spring编程模型习惯用法提供Spring Boot应用程序的集成。Feign是一个声明性的Web服务客户端。它使编写Web服务客户端变得更容易。要使用Feign,请创建一个界面并对其进行注释。它具有可插入的注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。S...原创 2019-08-11 17:19:41 · 18091 阅读 · 4 评论 -
Ribbon负载均衡
一、系统结构(1)Ribbon内置负载均衡算法Ribbon的负载均衡算法需要实现IRule接口RoundRobinRule轮询策略。Ribbon默认采用的策略。RandomRule随机策略,从所有可用的provider中随机选择一个。RetryRule先按照RoundRobinRule策略获取provider,若获取失败,则在指定的时限内重试。默认的时限为500...原创 2019-08-11 20:04:42 · 454 阅读 · 0 评论 -
Hystrix熔断机制与服务降级
一、服务熔断简介中文网站https://springcloud.cc/github:https://github.com/Netflix/hystrix什么是Hystrix【翻译】在分布式环境中,许多服务依赖中的一些服务发生失败是不可避免的。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止...原创 2019-08-11 22:08:07 · 1679 阅读 · 0 评论 -
Hystrix fallbackMethod服务降级
一、创建消费者工程04-consumer-fallbackmethod-8080(1) 创建工程(2)添加hystrix依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2...原创 2019-08-11 22:32:20 · 1346 阅读 · 0 评论 -
Spring Boot Admin
一、简介官方文档http://codecentric.github.io/spring-boot-admin/2.0.2/Spring Boot Admin是一个管理和监控Spring Boot应用程序的开源软件。每个应用都认为是一个客户端,通过HTTP或者服务注册发现Spring Cloud(Eureka、Consul等等)注册到admin server中进行展示,Spring Bo...原创 2019-09-07 22:39:37 · 291 阅读 · 0 评论