
sringcloud系统整理
文章平均质量分 77
liu1002880404
这个作者很懒,什么都没留下…
展开
-
Spring Cloud Gateway 实现XSS、SQL注入拦截
创建Filter 实现GlobalFilter, Ordered@Slf4j@Componentpublic class SqLinjectionFilter implements GlobalFilter, Ordered { @SneakyThrows @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain){ // grab configur原创 2021-05-29 17:10:04 · 3643 阅读 · 3 评论 -
微服务架构掌握知识
CAP 定理,BASE 理论的了解(1)CAP 定理在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:一致性(Consistence):所有节点访问同一份最新的数据副本可用性(Availability):每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据分区容错性(Partition tolerance): 分布式系统在遇到某节点或网络分区故障的时候...原创 2021-05-29 10:53:35 · 727 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战三十 springBoot 核心知识
一,特点约定优于配置,集成功能强大,集成WEB容器等,在应用中也体会到了功能的强大。Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用。————————————————版权声明:本文为优快云博主「小鱼0914」的原创文章,遵原创 2021-05-28 17:49:41 · 489 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战二十九 Seata 整合Nacos实战
场景说明订单服务order-service需要对外提供创建订单的接口,创建订单的业务逻辑如下:先调用本地的orderService保存订单操作,然后通过feign调用远程的accout-service进行账户余额扣减,最后再通过feign调用远程的product-service进行库存扣减操作。关键的逻辑代码如下:OrderController对外提供创建订单的接口@PostMapping("/order/create")public ResultData<Ord..原创 2021-05-27 17:53:22 · 648 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战二十八 分布式事务框架 Seata
阿里开源的分布式事务框架 Seata1. Seata 概述Seata 是 Simple Extensible Autonomous Transaction Architecture 的简写,由 feascar 改名而来。Seata 是阿里开源的分布式事务框架,属于二阶段提交模式。https://gitee.com/mirrors/Seata.git 很活跃的一个项目。、官网地址:https://seata.io/zh-cn/https://seata.io/zh-cn/.原创 2021-05-27 16:14:22 · 452 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战二十七 微服务常用的starter
spring-boot-starter前言spring-boot 在配置上相比spring要简单许多, 其核心在于spring-boot-starter, 在使用spring-boot来搭建一个项目时, 只需要引入官方提供的starter, 就可以直接使用, 免去了各种配置, 原因在于spring-boot的自动发现,比如当classpath下面有对应的jar包 时,对应的bean就会被加载.这些starter构成了我们应用程序的最重要的部分,熟悉对应的starter,掌握其应用场景的那个部分所要引原创 2021-05-26 12:13:26 · 714 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战二十六 openfeign最佳实践
1,依赖pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o原创 2021-05-25 17:48:24 · 1095 阅读 · 22 评论 -
SpringCloud Alibaba 2021微服务实战二十五 分布式事务
SpringCloud Alibaba 2021微服务实战二十五 分布式事务一、分布式事务1、事务的概念 事务是一组操作的执行单元,相对于数据库操作来讲,事务管理的是一组SQL指令,比如增加,修改,删除等,事务的一致性,要求,这个事务内的操作必须全部执行成功,如果在此过程种出现了差错,比如有一条SQL语句没有执行成功,那么这一组操作都将全部回滚 最经典的例子便是:A向B汇款500元,B账户多了500元,这整个过程,要么全部正常执行,要么全部回滚,不然就会出现A扣款,B收不到钱,或者A没扣原创 2021-05-25 13:51:04 · 536 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战二十四 gateway重试机制的使用
前言重试,我相信大家并不陌生。在我们调用Http接口的时候,总会因为某种原因调用失败,这个时候我们可以通过重试的方式,来重新请求接口。生活中这样的事例很多,比如打电话,对方正在通话中啊,信号不好啊等等原因,你总会打不通,当你第一次没打通之后,你会打第二次,第三次…第四次就通了。重试也要注意应用场景,读数据的接口比较适合重试的场景,写数据的接口就需要注意接口的幂等性了。还有就是重试次数如果太多的话会导致请求量加倍,给后端造成更大的压力,设置合理的重试机制才是最关键的。今天我们来简单的了解下Spr原创 2021-05-24 17:38:49 · 1048 阅读 · 2 评论 -
SpringCloud Alibaba 2021微服务实战二十三 项目优化之openfeign 性能优化
1、替换 tomcat首先,把 tomcat 换成 undertow,这个性能在 Jmeter 的压测下,undertow 比 tomcat 高一倍第一步,pom 修改 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifac原创 2021-05-24 16:48:31 · 1074 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战二十二 项目优化之异步处理日志syslog @Async @EventListener注解的应用
原理讲解AOP 切面获取当前请求的注解值,并 异步 发送时间,减少日志操作的性能损耗 监听器在接收到日志事件后进行调用feign入口处理@EventListener注解的应用在开发工作中,会遇到一种场景,做完某一件事情以后,需要广播一些消息或者通知,告诉其他的模块进行一些事件处理,一般来说,可以一个一个发送请求去通知,但是有一种更好的方式,那就是事件监听,事件监听也是设计模式中 发布-订阅模式、观察者模式的一种实现。观察者模式:简单的来讲就是你在做事情的时候身边有人在盯着你,当你做的某.原创 2021-05-24 16:17:30 · 1894 阅读 · 1 评论 -
SpringCloud Alibaba 2021微服务实战二十一 Gateway -- Cors解决跨域问题
Spring Cloud Gateway Cors跨域问题的解决CORS前后端分离就会碰到跨域问题,原本我们在后端采用 CORS 解决,现在利用网关,可以放在网关解决。版本:spring-cloud:Hoxton.SR9spring-cloud-gateway:2.3.2.RELEASE一共两个文件CorsConfiguration.java/** * 配置跨域 */@Configurationpublic class CorsConfiguration {原创 2021-05-23 21:49:41 · 1502 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战十九 源码理解之@EnableDiscoveryClient 是如何实现服务注册的
@EnableDiscoveryClient 是如何实现服务注册的?我们首先需要了解 Spring-Cloud-Commons 这个模块,Spring-Cloud-Commons 是 Spring-Cloud 官方提供的一套抽象层,类似于 JDBC 一样,提供了一套规范,具体的实现有实现厂商去根据标准实现, Spring-Cloud-Commons 共提供了6个模块标准规范。actuatorcircuitbreakerdiscoveryhypermedialoadbalancerservic原创 2021-05-23 10:32:07 · 813 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战十八 SpringCloud整合Swagger3
导读:在SpringCloud体系架构中,我们需要的每个服务都需要对外输出接口文档,本篇内容主要是给我们的微服务配上Swagger的接口文档,并在网关层完成接口聚合。Swagger3简介在当下很多项目都会采用前后端分离的模式,前端和后端的工作由不同的开发人员完成。在这种开发模式下,我们需要维护一份及时更新且完整的Rest API接口文档。传统意义上的文档都是后端人员在开发相关接口后手动更新到接口文档上,但是这种方式很难保证文档的及时性,而且由于一些原因后端开发人员可能会忘记更新,这样就会导致随着开发原创 2021-05-22 20:47:12 · 3218 阅读 · 5 评论 -
SpringCloud Alibaba 2021微服务实战十七 禁止跳过网关直接访问后端服务
前面十讲左右是在讲网关,路由。拦截日志,监控,限流,熔断,鉴权等等,但如果我不走网关直接调用后台也是行的通的。使用SpringCloud架构后我们希望所有的请求都需要经过网关才能访问,在不作任何处理的情况下我们是可以绕过网关直接访问后端服务的。我们希望所有的请求都需要经过网关才能访问。那么问题来了,如何进行处理呢?我们今天的议题就是 如何防止请求绕过网关直接访问后端服务?解决方案防止绕过网关直接请求后端服务的解决方案主要有三种:使用Kubernetes部署在使用Kubernetes原创 2021-05-22 16:57:10 · 5258 阅读 · 7 评论 -
SpringCloud Alibaba 2021微服务实战十六 整合Oauth2
SpringCloudOauth2Oauth2简介OAuth 2.0是用于授权的行业标准协议。OAuth 2.0致力于简化客户端开发人员,同时为Web应用程序,桌面应用程序,移动电话和客厅设备提供特定的授权流程。该规范及其扩展正在IETF OAuth工作组内开发。OAuth 2.0 的标准是 RFC 6749 文件。该文件先解释了 OAuth 是什么。OAuth 的核心就是向第三方应用颁发令牌。然后,RFC 6749 接着写道:它定义了获得令牌的四种授权方式(authorization grant原创 2021-05-22 11:37:54 · 3826 阅读 · 1 评论 -
SpringCloud Alibaba 2021微服务实战十五 gateway网关过滤器的应用,请求响应加解密操作,请求加入自定义参数
对于程序员做业务开发来说。也许开发的代码很少,但功能实现所要的限制却不少尤其对于与外部公司的接口很多,但各种要求不同包括数据格式,加解密,增加请求header等等,这些如果在后端实现的话,代码改动会很多,同时也增加了后端代码的不统一性,维护起来很麻烦,现就一些外部公司接口要求在网关处进行配置的应用:一,对请求参数的修改类型,比如加解密等等,在一些针对数据比较敏感的项目中会对客户端与服务端之间交互的数据进行加密处理。在gateway网关服务中处理此项业务需要如何实现呢?gateway中自定义的fil原创 2021-05-22 07:05:57 · 3653 阅读 · 2 评论 -
SpringCloud Alibaba 2021微服务实战十四 Springcloud alibaba gateway 限流的两种实现方式 redis自带实现及整合sentinel实现网关限流
微服务架构图:由上图可知:限流一是在负载均衡转发出限流,一般是nginx,二是在网关转发时限流三是在单个服务处限流,前一部分sentinel已经讲解过微服务限流这一次详解网关限流。...原创 2021-05-20 17:50:27 · 2289 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战十三 gateway 全局过滤器打印日志及如何忽略全局过滤器
API 网关的职能API 网关的分类与功能下面讲解自定义过滤器 之记录日志功能应用!全局过滤器拦截请求打印日志:代码:package com.liu.learn.filter;import cn.hutool.core.util.ObjectUtil;import com.alibaba.nacos.common.utils.StringUtils;import com.liu.learn.utils.WebUtils;import com.liu.learn.vo.原创 2021-05-20 13:31:48 · 1961 阅读 · 4 评论 -
SpringCloud Alibaba 2021微服务实战十二 Springcloud alibaba整合gateway 之 过滤器讲解
过滤器(Filter)GatewayFilter允许以某种方式修改传入的HTTP请求或传出的HTTP响应。路由过滤器的作用域是特定的路由。 Spring Cloud Gateway包括许多内置的GatewayFilter工厂。GlobalFilter接口具有与GatewayFilter相同的签名。这些是特殊过滤器,有条件地应用于所有路由。https://docs.spring.io/spring-cloud-gateway/docs/3.0.2/reference/html/#gatewayfil原创 2021-05-19 17:18:01 · 545 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战十一 Springcloud alibaba整合gateway应用之路由
SpringCloud Alibaba 2021微服务实战十一 Springcloud alibaba整合gateway1.前言之前学习了nacos,sentinel,并对sentinel进行了持久化改造。现在轮到了gateway了2.gateWay简介Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul 网关。网关作为流量的,在微服务系统中有着非常作用。 注:由于不是Sevlet容器,所以他不能打成war包, 只支持Sprin..原创 2021-05-19 13:56:41 · 968 阅读 · 0 评论 -
SpringCloud Alibaba 2021微服务实战十 sentinel实战之Sentinel生产环境部署实现持久化
Alibaba Sentinel规则持久化-推模式-【基于Nacos】一、推模式架构图二、原理简述 控制台推送规则: 将规则推送到Nacos或其他远程配置中心 Sentinel客户端链接Nacos,获取规则配置;并监听Nacos配置变化,如发生变化,就更新本地缓存(从而让本地缓存总是和Nacos一致) 控制台监听Nacos配置变化,如发生变化就更新本地缓存(从而让控制台本地缓存总是和Nacos一致) 三、微服务改造 加依赖 &.原创 2021-05-19 09:27:25 · 845 阅读 · 1 评论 -
SpringCloud 2020 Alibaba微服务实战九 sentinel实战之RestTemplate整合Sentinel及Feign整合Sentinel
一,RestTemplate整合Sentinelyml配置resttemplate: sentinel: #false 关闭@SentinelRestTemplate注解,在做开发调试的时候可以关闭此注解,专注于功能的实现 enabled: true@Bean@LoadBalanced@SentinelRestTemplatepublic RestTemplate RestTemplate(){ return new RestTemplate(new.原创 2021-05-18 17:24:02 · 471 阅读 · 1 评论 -
SpringCloud 2020 Alibaba微服务实战七 sentinel实战之处理熔断
概念说明消费者order-service需要先调用product-service获取具体的product,然后再处理其他的业务逻辑。但是这个product-service接口不是很稳定,经常抛出异常;或者是响应缓慢,导致order-service的响应变慢;如果置之不理,order-service可能会被product-service拖垮。这时候为了保护order-service,我们需要对product-service接口进行熔断。总之:熔断是通过限制自己对外部系统的调用, 起到节约响应时间、维护链原创 2021-05-18 15:29:53 · 391 阅读 · 1 评论 -
SpringCloud 2020 Alibaba微服务实战八 sentinel实战之优雅的处理限流异常
一,blockHandler使用blockHandler指定发生BlockException时进入的方法,方法需满足以下条件必须是 public 修饰 返回类型、参数与原方法一致,并在最后加BlockException 类型的参数 默认需和原方法在同一个类中代码package com.liu.controller;import com.alibaba.csp.sentinel.annotation.SentinelResource;import com.alibaba.csp.se原创 2021-05-18 12:31:59 · 525 阅读 · 2 评论 -
SpringCloud 2020 Alibaba微服务实战六 sentinel实战之服务限流及限流规则持久化
前面介绍了服务的注册与发现,服务配置中心,服务的调用及负载均衡,这一回介绍服务的限流及熔断!Alibaba 技术栈为Sentinel,Sentinel 是什么随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助您保护服务的稳定性。在SpringCloud体系中,sentinel主要是为了替换原Hystrix的功能,与Hystrix相比,sentinel...原创 2021-05-18 11:21:54 · 1096 阅读 · 2 评论 -
SpringCloud 2020 Alibaba微服务实战五 项目统一依赖管理 BOM
BOM 简介BOM(Bill of Materials)是由Maven提供的功能,它通过定义一整套相互兼容的jar包版本集合,使用时只需要依赖该BOM文件,即可放心的使用需要的依赖jar包,且无需再指定版本号。BOM的维护方负责版本升级,并保证BOM中定义的jar包版本之间的兼容性。为什么要使用BOM使用BOM除了可以方便使用者在声明依赖的客户端时不需要指定版本号外,最主要的原因是可以解决依赖冲突,防止你项目中出现NoSuchMethodError, ClassNotFoundException等不原创 2021-05-17 16:33:04 · 1000 阅读 · 1 评论 -
SpringCloud 2020 Alibaba微服务实战四 spring cloud 2020 LoadBalancer负载均衡算法切换
1、spring cloud 2020.0.1 LoadBalancer负载均衡算法切换springcloud 2020.0.1 版本之后 删除了eureka中的ribbon,替代ribbon的是spring cloud自带的LoadBalancer,默认使用的是轮询的方式如果切换,需要我们进行配置我们这里使用的是restTemplate作为访问工具1.1 首先定义一个CustomLoadBalancerConfiguration.class 这个包可以在主启动类所在包及其子包下 这一点和ri原创 2021-05-16 11:24:49 · 1213 阅读 · 0 评论 -
SpringCloud Alibaba微服务实战一 服务注册与发现(Nacos)
SpringCloud Alibaba微服务实战一 服务注册与发现(Nacos)一、Nacos简介Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。nacos架构设计图nacos简介及安装参考以下文章:springcloudal..原创 2021-05-14 11:26:20 · 1034 阅读 · 4 评论 -
springboot之spring-boot 2.3.x 整合swagger3.0.0
spring-boot 2.3.x 整合swagger3.0.0环境 版本 jdk 1.8.0_201 maven 3.6.0 Spring-boot 2.3.3.RELEASE 1、简介Swagger UI 是一款 API 在线文档生成和调试工具。在需求不断变更的开发环境下,手动编写文档的效率实在太低;在Swagger3版本中,减少了谷歌的guava依赖,更多的应用了java8的语法;新增了springboot流行的start启动包形式依..原创 2020-12-14 14:06:30 · 1770 阅读 · 0 评论 -
springcloud常用的微服务间的调用方式
springcloud常用的微服务间的调用方式目录常用的微服务间的调用方式RPC:Rest(Http):ribbon订单调用商品服务自定义负载均衡策略:feign方式实现服务间的调用Feign核心源码解读和 服务间的调用方式ribbon、feign选择常用的微服务间的调用方式RPC: 远程过程调用,像调用本地服务(方法)一样调用服务器的服务 支持同步、异步调用 客...原创 2020-12-10 17:01:01 · 3396 阅读 · 0 评论 -
Nacos是什么?
Nacos是什么?引用官方的介绍,他主要提供以下几个功能点:动态配置服务 服务发现及管理 动态DNS服务动态配置服务就是通过一个系统,管理系统中的配置项,在配置项需要更新的时候,可以通过管理系统去操作更新,更新完了之后,会主动推送到订阅了这个配置的客户端具体的使用场景,例如,在系统中,会有数据库的链接串,账号密码等配置信息,常规的做法是写在配置文件里面,如果需要修改更新,需要重新打包编译,如果你是分布式集群,那成本太大了,通常我们都会将它抽取出来,存放到db,或者一个管理系统,Nacos原创 2020-12-10 08:48:51 · 16126 阅读 · 5 评论 -
项目监控之Spring Boot 监控端点 Actuator 入门
1. 概述应用在部署在生产环境下,我们还需要考虑应用的管理与监控。例如说,应用是否健康存活、应用的 JVM 监控信息、服务器的监控信息(CPU、内存、磁盘等等)。如果我们为应用的管理与监控做相应的开发,是需要一定的成本的。幸运的是,在 Spring Boot 框架提供了一个非常重要的新组件spring-boot-actuator。其文档介绍如下:FROM《Spring Boot Actuator: Production-ready Features》Spring Boot ...原创 2020-12-08 13:57:04 · 1596 阅读 · 1 评论 -
Spring Cloud Alibaba Nacos Discovery 组件介绍
1. 概述Spring Cloud Alibaba提供的Spring Cloud Alibaba Nacos Discovery组件,基于 Spring Cloud 的编程模型,接入 Nacos 作为注册中心,实现服务的注册与发现。服务注册/发现: Nacos Discovery服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容。Nacos Discovery 可以帮助您将...原创 2020-12-08 11:01:32 · 21803 阅读 · 0 评论 -
系统整理springCloud系列 网关Gateway网关简介及使用
Gateway网关简介及使用Gateway网关简介及使用1. 什么是 API 网关(API Gateway)分布式服务架构、微服务架构与 API 网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这就要求必须使用一种语言和平 台无关的服务协议作为各个单元间的通讯方式。API 网关的定义网关的角色是作为一个 API 架构,用来保护.原创 2020-12-07 17:12:04 · 1422 阅读 · 0 评论 -
spring全家桶之 Spring Boot,Spring Cloud,Spring Cloud Alibaba 版本选择说明以及整理归纳
Spring Boot,Spring Cloud,Spring Cloud Alibaba 版本选择说明以及整理归纳前言本文的核心目的: 1.帮助搭建微服务不知道如何选择框架版本的朋友以帮助,不用对网上项目版本进行照抄。Spring Boot 版本 版本查询:https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies如何选择版本: 如果说你的项目只...原创 2020-12-02 14:10:32 · 1398 阅读 · 0 评论 -
CAP原则与与BASE理论的关系
简介CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时.原创 2020-11-20 13:43:46 · 733 阅读 · 1 评论 -
springcloud综述之springcloud全家桶
首先介绍一下系统架构演变1.1 系统架构演变随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。系统架构大体经历了下面几个过程: 单体应用架构—>垂直应用架构—>分布式架构—>SOA架构—>微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。接下来我们就来了解一下每种系统架构是什么样子的, 以及各有什么优缺点。1.1.1 单体应用架构web项目,然后部署到一台tomcat服务器上优点:项目架构简单,.原创 2020-09-03 09:20:33 · 3497 阅读 · 1 评论 -
理解前后端分离开发
理解前后端分离开发 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。以前老的方式是:1.产品经理/领导/客户提出需求2.UI做出设计图3.前端工程师做html页面4.后端工程师将html页面套成jsp页面(前后端强依赖,后端必须要等前端的html做好才能原创 2020-08-24 22:09:53 · 282 阅读 · 0 评论 -
项目技术栈,结构
原创 2020-08-24 17:12:24 · 3143 阅读 · 0 评论