自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (9)
  • 收藏
  • 关注

原创 跨域请求(个人笔记)

1、什么是跨域请求?说明:使用ajax获取数据的时候,如果当前界面的地址和所需要请求的服务器的地址不一样,不一样的判断依据是:协议、域名、端口。任意一种不一样,就判定为跨域请求。例如:当前端页面的请求地址是:http://127.0.0.1:5500/index.html页面按钮的请求路径是:http://127.0.0.1:9999/index_data2、跨域请求的表现通过ajax请求,获取不到后台传给前端的数据。3、获取不到数据的原因原因:浏览器不将数据给ajax请求中的succes

2020-06-28 15:50:10 3656

原创 自定义异常+全局异常处理

1、自定义异常public class MyException extends Exception{ private static final long serialVersionUID = -1; @Getter @Setter private String errorCode; /** * 异常处理类 * @param errorCode 错误码 * @param message 错误信息 */ public MyException(final String erro

2020-06-27 22:26:28 585

转载 @Controller和@RestController的区别?

@RestController注解相当于@ResponseBody + @Controller合在一起的作用1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。例如:本来应该到success.jsp页面的,则其显示success.2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器Intern

2020-06-27 21:38:39 189

转载 form表单提交onclick和onsubmit

onsubmit只能表单上使用,提交表单前会触发, onclick是按钮等控件使用, 用来触发点击事件。在提交表单前,一般都会进行数据验证,可以选择在submit按钮上的onclick中验证,也可以在onsubmit中验证。但是onclick比onsubmit更早的被触发。提交过程1、用户点击按钮 ---->2、触发onclick事件 ---->3、onclick返回true或未处理onclick ---->4、触发onsubmit事件 ---->5、onsubm

2020-06-18 06:33:49 316

原创 65、SpringCloudStream:消息生产者、消费者入门案例

1、安装RabbitMQ2、创建消息生产者(steam_producer)、消息消费者(stream_consumer)模块3、在两个模块中引入坐标 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream</artifactId> &l

2020-06-11 16:14:02 899

原创 64、SpringCloudStream:核心概念

绑定器Binder 绑定器是Spring Cloud Stream中一个非常重要的概念。在没有绑定器这个概念的情况下,我们的Spring Boot应用要直接与消息中间件进行信息交互的时候,由于各消息中间件构建的初衷不同,它们的实现细节上会有较大的差异性,这使得我们实现的消息交互逻辑就会非常笨重,因为对具体的中间件实现细节有太重的依赖,当中间件有较大的变动升级、或是更换中间件的时候,我们就需要付出非常大的代价来实施。通过定义绑定器作为中间层,实现了应用程序与消息中间件(Middleware)细节之间的隔离

2020-06-11 14:18:32 195

原创 63、SpringCloudStream:实现思想

Spring Cloud Stream由一个中间件中立的核组成。应用通过Spring Cloud Stream插入的input(相当于消费者consumer,它是从队列中接收消息的)和output(相当于生产者producer,它是从队列中发送消息的。)通道与外界交流。通道通过指定中间件的Binder实现与外部代理连接。业务开发者不再关注具体消息中间件,只需关注Binder对应用程序提供的抽象概念来使用消息中间件实现业务即可。说明:最底层是消息服务,中间层是绑定层,绑定层和底层的消息服务进行绑定,顶层是

2020-06-11 14:14:15 153

原创 62、SpringCloudStream:概述

在实际的企业开发中,消息中间件是至关重要的组件之一。消息中间件主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。不同的中间件其实现方式,内部结构是不一样的。如常见的RabbitMQ和Kafka,由于这两个消息中间件的架构上的不同,像RabbitMQ有exchange,kafka有Topic,partitions分区,这些中间件的差异性导致我们实际项目开发给我们造成了一定的困扰,我们如果用了两个消息队列的其中一种,后面的业务需求,我想往另外一种消息队列进行迁移,这时候无疑

2020-06-11 14:01:28 130

原创 61、链路追踪:zipkin客户端向rabbitmq中发送数据并测试

1、在每个需要数据收集的模块添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sleuth-zipkin</artifactId> </dependency> <dependency>

2020-06-11 10:39:53 611

原创 60:链路追踪:zipkin服务端链接rabbitmq

1、安装rabbitMQ+可视化插件初始用户名:guest密码:guest2、修改zipkin服务端的启动命令java -jar zipkin-server-2.12.9-exec.jar --RABBIT_ADDRESSES=127.0.0.1:5672RABBIT_ADDRESSES : 指定RabbitMQ地址RABBIT_USER: 用户名(默认guest)RABBIT_PASSWORD : 密码(默认guest)启动Zipkin Server之后,我们打开RabbitMQ的控制

2020-06-11 09:55:22 465

原创 59、链路追踪:zipkin通过消息中间件进行数据收集的思路分析

1、原因分析:zipkin客户端的数据通过http请求形式发送到zipkin服务端,http是一种同步的阻塞式的请求,当zipkin响应时间较长,无形之中会影响我们服务之间的执行效果。2、解决方案在zipkin客户端和服务端之间加上rabbitMQ,这样客户端发送数据过来,rabbitMQ能够及时响应,即便zipkin服务器宕机也没关系,不影响服务之间调用执行的效率。...

2020-06-11 09:41:53 304

原创 58、链路追踪:zipkin服务端数据保存mysql数据库

1、创建数据库,执行脚本,建表。(此表是由zipkin提供的,是固定的)/*SQLyog Ultimate v11.33 (64 bit)MySQL - 5.5.58 : Database - zipkin**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @O.

2020-06-10 09:52:13 600

原创 57、链路追踪:zipkin整合sleuth的执行过程和存在的问题分析

问题1、每次我们的zipkin服务段重启,之前的调用链路信息就会清空,如何有持久化保存数据。问题2、当调用http请求可能出现网络波动或者不稳定的情况,如何优化数据采集的过程

2020-06-09 16:11:00 270

原创 56、链路追踪:zipkin整合sleuth展示调用链路

1、在需要收集调用链路信息的服务模块加上zipkin的依赖(网关服务模块、订单服务模块、商品服务模块等) <!--zipkin依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId>

2020-06-09 15:48:15 218

原创 55、链路追踪:zipkin server的部署和配置

1、 Zipkin Server下载从spring boot 2.0开始,官方就不再支持使用自建Zipkin Server的方式进行服务链路追踪,而是直接提供了编译好的 jar 包来给我们使用。可以从官方网站下载先下载Zipkin的web UI,我们这里下载的是zipkin-server-2.12.9-exec.jar2、启动在命令行输入 java -jar zipkin-server-2.12.9-exec.jar 启动 Zipkin Server1、默认Zipkin Server的请求端口为

2020-06-09 14:22:48 831 1

原创 54、链路追踪:Zipkin的概述

Zipkin 是 Twitter 的一个开源项目,它基于 Google Dapper 实现,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。 我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的 API 接口之外,它也提供了方便的 UI 组件来帮助我们直观的搜索跟踪信息和分析请求链路明细,比如:可以

2020-06-09 12:53:39 366

原创 53、链路追踪:sleuth入门

前置环境搭建首先在网关服务中配置好两个服务的路由规则:一个是订单微服务、一个是商品微服务。调用规则是订单微服务调用商品微服务。server: port: 8080 #端口spring: application: name: api-gateway-server #服务名称 redis: host: localhost pool: 6379 database: 0 cloud: #配置SpringCloudGateway的路由 gateway:

2020-06-09 12:40:12 227

原创 52、链路追踪:概述

一、 微服务架构下的问题在大型系统的微服务化构建中,一个系统会被拆分成许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心,也就意味着这种架构形式也会存在一些问题:1、如何快速发现问题?2、如何判断故障影响范围?3、如何梳理服务依赖以及依赖的合理性?4、如何分析链路性能问题以及实时容

2020-06-09 11:49:50 346

原创 51、springCloudGateway-网关高可用

1、概述高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。我们都知道,单点是系统高可用的大敌,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他backup能够顶上。我们实际使用 Spring Cloud Gateway 的方式如上图,不同的客户端使用不同的负载将请求分发

2020-06-05 15:19:25 7089 11

原创 50、springCloudGateway-sentinel限流

Sentinel 支持对 Spring Cloud Gateway、Zuul 等主流的 API Gateway 进行限流。从 1.6.0 版本开始,Sentinel 提供了 Spring Cloud Gateway 的适配模块,可以提供两种资源维度的限流:route 维度:即在 Spring 配置文件中配置的路由条目,资源名为对应的 routeId自定义 API 维度:用户可以利用 Sentinel 提供的 API 来自定义一些 API 分组Sentinel 1.6.0 引入了 Sentinel A

2020-06-05 14:46:22 718

原创 49、springCloudGateway-filter限流

1、准备工作1、redis本地安装好redis,解压后,双击运行目录下的redis-server.exe启动redis。然后双击运行目录下的redis-cli.exe启动客户端,输入:monitor 命令,监听redis里面的数据变化。2、在工程中引入redis相应的依赖:基于reactive的redis依赖 <!--监控依赖--> <dependency> <groupId>org.springframework.

2020-06-04 17:57:29 247

原创 48、springCloudGateway-网关限流算法

(1) 计数器计数器限流算法是最简单的一种限流实现方式。其本质是通过维护一个单位时间内的计数器,每次请求计数器加1,当单位时间内计数器累加到大于设定的阈值,则之后的请求都被拒绝,直到单位时间已经过去,再将计数器重置为零。(2) 漏桶算法漏桶算法可以很好地限制容量池的大小,从而防止流量暴增。漏桶可以看作是一个带有常量服务时间的单服务器队列,如果漏桶(包缓存)溢出,那么数据包会被丢弃。 在网络中,漏桶算法可以控制端口的流量输出速率,平滑网络上的突发流量,实现流量整形,从而为网络提供一个稳定的流量。为

2020-06-04 15:58:31 406 1

原创 47、springCloudGateway过滤器-认证过滤器

1、统一鉴权内置的过滤器已经可以完成大部分的功能,但是对于企业开发的一些业务功能处理,还是需要我们自己编写过滤器来实现的,那么我们一起通过代码的形式自定义一个过滤器,去完成统一的权限校验。(1)鉴权逻辑开发中的鉴权逻辑:1、当客户端第一次请求服务时,服务端对用户进行信息认证(登录)2、认证通过,将用户信息进行加密形成token,返回给客户端,作为登录凭证3、以后每次请求,客户端都携带认证的token4、服务端对token进行解密,判断是否有效。(2)代码/** * 自定义一个全局过滤器

2020-06-04 15:22:28 886

原创 46、springCloudGateway过滤器-全局过滤器

1、过滤器的生命周期Spring Cloud Gateway 的 Filter 的生命周期不像 Zuul 的那么丰富,它只有两个:“pre” 和 “post”。PRE: 这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的 HTTPHeader、收集统计信息和指标、将响应从微服务发送给客户端等。2、 过滤器类型Spring Cloud Gateway 的 Filte

2020-06-04 14:51:30 587

原创 45、springCloudGateway路由-根据微服务名称转发

server: port: 8080 #端口spring: application: name: api-gateway-server #服务名称 redis: host: localhost pool: 6379 database: 0 cloud: #配置SpringCloudGateway的路由 gateway: discovery: locator: enabled: true #开启根据微服

2020-06-03 17:48:59 4065

原创 44、springCloudGateway路由-重写转发路径

server: port: 8080 #端口spring: application: name: api-gateway-server #服务名称 redis: host: localhost pool: 6379 database: 0 cloud: #配置SpringCloudGateway的路由 gateway: routes: - id: product-service #保持唯一 uri: l

2020-06-03 17:25:47 9548

原创 43、springCloudGateway路由-动态路由配置

1、引入eureka依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>2、在网关服务启动类上配置服务发现注解@SpringBootAp

2020-06-01 15:33:56 506 1

原创 42、springCloudGateway路由-内置断言条件

2020-06-01 14:22:57 357

原创 41、springCloudGateway路由-基本配置搭建

1、核心概念1. 路由(route) 路由是网关最基础的部分,路由信息由一个ID、一个目的URL、一组断言工厂和一组Filter组成。如果断言为真,则说明请求URL和配置的路由匹配。2. 断言(predicates) Java8中的断言函数,Spring Cloud Gateway中的断言函数输入类型是Spring5.0框架中的ServerWebExchange。Spring Cloud Gateway中的断言函数允许开发者去定义匹配来自Http Request中的任何信息,比如请求头和参数等。

2020-06-01 14:16:44 501

ssmbuild.zip

学习过程中搭建的简单的ssm框架。

2020-12-22

zjl-es-api.zip

学习ElasticSearch过程中的笔记,包括索引的增删改查,文档的增删改查,以及一个能够实现高亮搜索的小项目(包括jsoup爬数据到es,高亮搜索等功能)

2020-12-22

自学多线程demo代码

此文件是自己在学习多线程时候,写的demo代码,上传资源到这里,方便日后寻找及复习,也希望为广大网友提供一点学习资料,有不足之处,多多指出,相互学习,共同进步!

2020-11-19

Mybatis-Study.zip

这份代码是自己在学习Mybatis时,编写的demo案例,其中包含自己在jwt认证原理博客中的所有代码,传上来方便自己回顾,同时也分享给大家共同学习,如有不足之处,请多多指教,相互学习,相互进步!

2020-11-13

springbootjwt.zip

这份代码是自己在学习JWT认证原理时,编写的demo案例,其中包含自己在jwt认证原理博客中的所有代码,传上来方便自己回顾,同时也分享给大家共同学习,如有不足之处,请多多指教,相互学习,相互进步!

2020-11-12

rabbitMQ-study.zip

此文件是自己在学习rabbitMQ时候,写的demo代码,上传资源到这里,方便日后寻找及复习,也希望为广大网友提供一点学习资料,有不足之处,多多指出,相互学习,共同进步!

2020-11-09

springboot-security.zip

springboot整合springSecurity项目demo,有不足之处多多指出,共同进步!加油!

2020-08-24

swagger-demo.zip

springboot集成swagger的demo源码,分享给大家,有不足之处,可以多多指出,互相学习,共同进步!

2020-08-17

wangEditor.zip

wangEditor相关js和css、fonts文件,不做任何商业用途,只为了给广大读者作为学习资料

2020-05-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除