
Spring Cloud
Spring Cloud 微服务基础
330553352
这个作者很懒,什么都没留下…
展开
-
Spring Cloud Gateway自定义谓词及网关过滤器
Spring Cloud Gateway 同样提供了一系列的内置过滤器,但同样,如果你需要实现特定的业务逻辑或自定义处理,你可以创建自定义的网关过滤器工厂。然而,如果你需要实现一些特定的业务逻辑或自定义条件,你可以创建自定义的谓词工厂。Spring Cloud Gateway 的自定义谓词工厂和网关过滤器工厂为开发者提供了灵活性和扩展性,使得开发者可以根据业务需求自定义路由条件和请求处理逻辑。例如,你可以创建一个自定义网关过滤器工厂来记录每个请求的详细信息,或者根据特定的业务逻辑修改响应的内容。原创 2024-08-10 12:15:51 · 463 阅读 · 0 评论 -
Jenkins 自动化部署
Jenkins 自动化部署我们搭建的是一套微服务架构,真实环境可能有成百上千个工程,如果都这样手动打包、上传、发布,工作量无疑是巨大的。这时,我们就需要考虑自动化部署了。Jenkins 走进了我们的视野,它是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。下面,我们就来看看如果通过 Jenkins ...原创 2019-10-04 15:49:40 · 211 阅读 · 0 评论 -
K8S+Docker 部署 Spring Cloud 集群
K8S+Docker 部署 Spring Cloud 集群一、集群环境搭建本文用一台虚拟机模拟集群环境。操作系统:CentOS7 64位配置:内存2GB,硬盘40GB。注:真正的分布式环境搭建方案类似,可以参考博文:《Kubernetes学习2——集群部署与搭建》。下面开始搭建集群环境:1.1、关闭防火墙:systemctl disable firewalldsystemctl ...原创 2019-10-04 15:39:46 · 1354 阅读 · 0 评论 -
SpringCloud 分布式事务
分布式事务一、为什么需要分布式事务最传统的架构是单一架构,数据是存放在一个数据库上的,采用数据库的事务就能满足我们的要求。随着业务的不断扩张,数据的不断增加,单一数据库已经到达了一个瓶颈,因此我们需要对数据库进行分库分表。为了保证数据的一致性,可能需要不同的数据库之间的数据要么同时成功,要么同时失败,否则可能导致产生一些脏数据,也可能滋生 Bug。二、应用场景2.1、支付最经典的场景就是...原创 2019-10-04 15:12:14 · 530 阅读 · 0 评论 -
SpringCloud 分布式锁
分布式锁一、基于 Redis 的分布式锁利用 SETNX 和 SETEX,基本命令主要有:SETNX(SET If Not Exists):当且仅当 Key 不存在时,则可以设置,否则不做任何动作。SETEX:可以设置超时时间其原理为:通过 SETNX 设置 Key-Value 来获得锁,随即进入死循环,每次循环判断,如果存在 Key 则继续循环,如果不存在 Key,则跳出循环,当前...原创 2019-10-04 14:31:29 · 2968 阅读 · 1 评论 -
SpringCloud Gateway
服务网关(Gateway)一、过滤器接口的安全性校验。Gateway 提供了多种 Filter 可供选择,如:GatewayFilter 处理单个路由的请求GlobalFilter 过滤所有路由请求package com.lynn.gateway;import org.apache.commons.lang.StringUtils;import org.springframew...原创 2019-10-04 13:51:45 · 120 阅读 · 0 评论 -
Spring Cloud 分布式架构
原创 2019-01-05 20:24:21 · 143 阅读 · 0 评论 -
ZipKin
ZipKin一、zipkin解决了什么问题1.1、什么是zipkinzipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),其主要功能是聚集来自各个异构系统的实时监控数据。它的原理是基于2010年谷歌发表了其内部使用的分布式跟踪系统Dapper的论文(http://static.googleusercontent.com/media/res...原创 2019-10-02 11:07:46 · 590 阅读 · 0 评论 -
分布式跟踪ELK
分布式跟踪ELK一、为什么要用ELK1.1、小系统或单机系统的日志搜索现状?直接在日志文件中 grep、awk 就可以获得自己想要的信息。1.2、大系统或分布式系统的日志面临的问题?一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上;问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块;一般是采用grep,awk,效率非常低下;如果有一套集中...原创 2019-10-01 23:23:47 · 300 阅读 · 0 评论 -
SpringCloud Sleuth
分布式服务跟踪Sleuth一、为什么要用分布式服务跟踪1.1、微服务调用现状微服务的现状: 随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系 也变得越来越复杂。多服务协同工作: 在微服务的应用中,一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果。复杂的调用链条容易出错: 在复杂的微服务架构系统中,几乎每一个前端...原创 2019-10-01 21:56:40 · 235 阅读 · 0 评论 -
消息驱动Stream
消息驱动Stream一、为什么要用Stream1.1、消息驱动解决了什么问题1.2、原理1.3、添加jar<dependency> <!-- 消息驱动 --> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-str...原创 2019-10-01 16:16:56 · 238 阅读 · 0 评论 -
消息中心Bus
消息中心Bus一、采用Bus实现自动刷新配置信息-client1.1、添加jar<dependency> <!-- 消息中心Bus --> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</arti...原创 2019-10-01 15:03:53 · 192 阅读 · 0 评论 -
SpringCloud Config
SpringCloud Config一、配置中心解决了什么1.1、服务配置的现状在微服务系统中,每个微服务不仅仅只有代码,他还需要连接其他资源,例如数据库的配置或功能性的开关等等。但是随着微服务系统的不断迭代,整个微服务系统可能会成为一个网状结构,这个时候就要考虑整个微服务系统的扩展性、伸缩性、耦合性等等。其中一个很重要的环节就是配置管理的问题。1.2、常见的配置类型1.2.1、服务配...原创 2019-10-01 10:49:30 · 224 阅读 · 0 评论 -
SpringCloud Zuul
SpringCloud Zuul一、为什么要用网关1.1、网关的职责统一入口:为全部微服务提供唯一入口点,网关起到外部和内部隔离,保障了后台服务的安全性。鉴权校验:识别每个请求的权限,拒绝不符合要求的请求。动态路由:动态的将请求 路由到不同的后端集群中。减少客户端与服务的耦合,服务可以独立发展。通过网关层来做映射。二、路由器的4种规则2.1、采用URL指定路由2.2、采用服...原创 2019-09-28 11:29:05 · 99 阅读 · 0 评论 -
微服务架构常用设计模式
常用设计模式一、服务代理设计模式二、服务聚合设计模式三、服务链条设计模式四、服务聚合链条设计模式五、数据共享设计模式六、异步消息设计模式七、代理链条设计模式...原创 2019-09-25 23:41:45 · 148 阅读 · 0 评论 -
服务雪崩
服务雪崩一、如何解决灾难性雪崩效应降级:超时降级、资源不足时(线程或信号量)降级,降级后可以配合降级接口返回托底数据。实现一个fallback方法, 当请求后端服务出现异常的时候, 可以使用fallback方法返回的值.隔离(线程池隔离和信号量隔离):限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他服务调用。融断:当失败率(如因网络故障/超时造成的失败率高)达到阀值自动...原创 2019-09-24 00:16:04 · 142 阅读 · 0 评论 -
SpringCloud Feign
SpringCloud Feign一、声明式服务调用1.1、 什么是FeignFeign是一种声明式、模板化的HTTP客户端(仅在consumer中使用)。1.2、什么是声明式声明式调用就像调用本地方法一样调用远程方法;无感知远程http请求。Spring Cloud的声明式调用, 可以做到使用 HTTP请求远程服务时能就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更...原创 2019-09-22 11:13:18 · 305 阅读 · 0 评论 -
SpringCloud Ribbon
SpringCloud Ribbon一、Ribbon扮演什么角色1.1、什么是RibbonRibbon是一个基于Http和TCP的客服端负载均衡工具,它是基于Netflix Ribbon实现的。它不像Spring Cloud服务注册中心、配置中心、API网关那样独立部署,但是它几乎存在于每个Spring Coud微服务中。包括Feign提供的声明式服务调用也是基于该Ribbon实现的。...原创 2019-09-21 21:51:20 · 140 阅读 · 0 评论 -
SpringCloud Eureka
SpringCloud Eureka一、Eureka Server:注册中心服务端注册中心服务端主要对外提供三个功能:1.1、服务注册服务提供者启动时,会通过 Eureka Client 向 Eureka Server 注册信息,Eureka Server会存储该服务的信息,Eureka Server 内部有二层缓存机制来维护整个注册表1.2、提供注册表服务消费者在调用服务时,如果 ...原创 2019-09-21 20:05:20 · 153 阅读 · 0 评论