自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 Springcloud Stream

文章目录前言 一、说明 二、使用 1.引入库 2.解读 3.配置文件 总结前言屏蔽底层消息中间件的差异,降低切换成本,同一消息的变成模型目前只支持Rabbitmq和kafka中文文档一、springcloud stream是什么其实就类似于jdbc一样,统一了对消息处理的细节,让我们不在于注重某一个消息队列是怎样实现的,都有一样的操作api二、使用1.引入库: 当前项目要依赖的坐标 <depen...

2021-11-16 22:38:28 1081

原创 入门微服务spring-cloud(第二章)

springcloudzuul使用(路由配置)过滤器使用过滤器zuulZuul 是 Netflix OSS 中的一员,是一个基于 JVM 路由和服务端的负载均衡器.提供路由、监控、弹性、安全等方面的服务框架。Zuul 能够与 Eureka、Ribbon、Hystrix 等组件配合使用。Zuul 的核心是过滤器,通过这些过滤器我们可以扩展出很多功能,比如:动态路由:动态地将客户端的请求路由到后端不同的服务,做一些逻辑处理,比如聚合多个服务的数据返回请求监控:可以对整个系统的请求进行监控

2021-11-16 22:34:59 407

原创 入门微服务spring-cloud(第一章)

springcloud服务调用不使用注册中心的调用方式使用注册中心 eureka新建一个boot服务,作为eureka的服务端修改消息提供方使用注册中心,并且使用RestTemplate调用服务负载均衡Ribbon的轮询规则(7钟)修改负载均衡策略自定义策略eureka集群HystrixFeign整合HystrixHystrix Dashboard监控(仪表盘)服务调用不使用注册中心的调用方式首先新建两个boot项目,一个做服务提供方,一个做服务的消费方,服务提供端:@GetMapping("/g

2021-11-16 22:34:37 415

原创 新版本springcloud(一)

springcloud开始EurekazookeeperConsul使用三个注册中心的区别补充:openFeign日志gateway新一代网关核心路由的第二种配置方式新版本的微服务,他的springboot版本是在2.x以上,springcloud在H以上在新版本上,使用eureka开始首先我们使用微服务的话,需要一个父工程,父工程不需要什么东西,但需要一个pom.xml文件来聚合这些依赖添加或者修改他<packaging>pom</packaging>然后<

2021-11-16 22:34:12 306

原创 新版本springcloud(二)

cloud分布式配置中心分布式配置中心

2021-11-16 22:33:13 256

原创 关于idea使用高版本jdk降级的话题

首先我们会遇到一些问题,比如要去探究不同jdk版本的String的一些代码执行会有什么不同,首先我们使用的是idea,已经有jdk了,且已经配置好了环境遍历,虽然改起来很方便,但也不是那么的方便,这里,我们以maven项目为例<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId&g

2021-11-16 22:31:28 1617

原创 spring-生命周期和三级缓存以及细节

循环依赖首先是A类里面有个B属性,B类里面有个A属性spring每次创建bean时,都会去一级缓存中去找,没有找到则创建,这里是先实例化,然后去将实例化好的bean加入到三级缓存中,value是一个lambda表达式然后实例化好之后再去初始化,初始化的过程中是需要对属性进行填充的,此时有一个引用类型的属性,由于没有这个属性所对应的·bean还没有进行创建,所以我们就要去创建这个bean,相当又重头开始了会去首先创建A对象,先去一级缓存中找,没有则进行实例化,实例化后判断是否存

2021-11-16 22:29:36 534

原创 spring cache基础篇

Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JSR-107注解简化我们开发;提供支持多种缓存的实现。主要接口有两个:org.springframework.cache.Cache:用于定义缓存的各种操作 org.springframework.cache.CacheManager:用于管理各个cache缓存组件常...

2021-11-16 22:28:27 1950

原创 分布式事务

我们先复习一下本地事务1.本地事务数据库事务的几个特性: 原子性(Atomicity),一致性(Consistency),持久性(Durabilily),隔离性(Isolation) 原子性:一系列的操作整体不可拆分,同时成功同时失败 一致性: 数据在事务前后,业务整体一致 隔离性:事务之间互相隔离 持久性:一旦事务成功,数据一定会落盘在数据库1.1.事务的隔离级别读未提交 READ UNCOMMITTED: 该隔离级别的事务会读到其他

2021-11-16 22:27:01 880

原创 springboot使用https

首先我们要有一个证书,这个可以去阿里云上买,或者买了服务器有免费的证书可以创建,然后我们就将证书下到本地。将证书放到resources目录下。配置:server: ssl: key-store: classpath:6081520_gww123.icu.jks key-password: Br755ajy key-store-type: jksstore是证书的路径下面是生成证书时的密码最下面是证书的格式在配置类上添加这么一个bean,或者

2021-11-16 22:25:42 713

原创 git的基本命令

设置名称和邮箱$ git config --global user.name "username" $ git config --global user.email "email"git config --list 查看配置git总共分为这么几个区域:工作区:也就是我们本地git暂存区: 此时还没有提交到git仓库git仓库: 此时是已经提交到git仓库了.提交到git仓库的文件,接下来就是提交远程了。----------------------------.

2021-09-03 22:47:33 716 3

原创 sentinel的熔断,降级,限流使用

二、使用步骤代码如下(示例):springboot工程 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> <version>2.1.0.RELEASE</version>

2021-09-03 14:26:28 1189

原创 nacos做注册中心和配置中心

官方文档首先先下载,然后安装,linux下的nacos启动是:./startup.sh -m standalone默认端口是8848

2021-09-01 22:08:12 505

原创 springboot与springcloud,springcloudalibaba等版本关系

先来一个地址:版本说明里面有对应的这些坐标依赖的版本对应描述,因为版本问题是很大的问题.这是springcloudalibaba的组件的版本对应关系这是springboot,springcloud,springcloudalibaba的版本对应关系其余更详细的可以参考官方文档...

2021-09-01 12:34:22 511

原创 支付宝支付功能(沙箱)

首先谈及加密算法相对于密钥A,密钥B, 密钥B是公钥相对于密钥C,密钥D,密钥D是公钥首先需要到我们的支付宝开放平台,然后找到沙箱,进去创建应用支付宝开放平台然后开始配置密钥刚创建应用的时候是没有的,需要我们去生成密钥,下载软件生成或者在线生成。但是生成的公钥和私钥我们都要保管好。这里的应用公钥就是我们的商户的公钥需要复制在这里交给支付宝管理那么配置号这些后,就可以写demo了。注意:这里是电脑端的支付...

2021-08-30 15:24:52 2187

原创 时间日期格式

从数据库获取时间传到前端进行展示的时候,可能无法得到一个满意的时间格式的时间日期,可以使用 @JsonFormat另一个问题是,我们在使用WEB服务的时,可能会需要用到,传入时间给后台,比如添加数据需要填入日期等。这个时候前台传递给后台的时间格式同样是不一致的@DataTimeFormat便很好的解决了这个问题---------------------------------------@JsonFormat使用:@JsonFormat(pattern="yyyy-MM-d.

2021-08-30 12:09:05 147

原创 内网穿透工具

这里我使用natapp:有一个月的免费时长。先注册,然后购买隧道,选择免费的映射到我们本地127.0.0.1, 端口是8080.还有一个是4040,需要通过我们本地来访问的,是查看被访问的具体情况信息。配置好以后,可以看到我们购买的隧道。然后我们需要下载一下natapp客户端,下载好后,我们还需要下载一个文件,放在natapp.exe同目录下,文件地址这里我们需要配置一下authtoken,这个在上面...

2021-08-29 20:39:31 670

原创 可靠消息+最终一致性方案(MQ延迟队列+死信路由)

RabbitMQ简单使用看这里,包括使用这个方案之前mq的配置环境RabbitMQ 死信Dead Letter exchanges (死信路由)》一个消息在满足如下条件下,会进死信路由,注意是路由不是队列,一个路由可以对应多个队列。 .一个消息被消费者拒收了,并且reject方法的参数里requeue是false,也就是说不会被再次放到队列里,被其他消费者使用。 (basic.reject/basic.nack) requeue=...

2021-08-29 16:25:35 410

原创 RabbitMQ

1. 消息中间件概述1.1. 什么是消息中间件MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。多用于分布式系统之间进行通信。为什么使用MQ: 在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从 而提高了系统的吞吐量。 1、任务异步处理: 将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。

2021-08-28 23:28:34 307

原创 seata解决分布式事务

什么是Seata:Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务,Seata将为用户提供了AY,TCC,SAGA和XA事务模式,为用户打造一站式的分布式解决方案。连接:seataTC (Transaction Coordinator) - 事务协调者维护全局和分支事务的状态,驱动全局事务提交或回滚。TM (Transaction Manager) - 事务管理器定义全局事务的范围:开始全局事务、提交或回滚全局事务。RM (Re...

2021-08-28 22:37:15 535

原创 接口幂等性

1.什么是幂等性 接口幂等性就是用户对于统一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生不同的效果,比如支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣除了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户发现余额多扣除了钱,流水记录也变成了两条,这就是没有保证接口的幂等性。2.哪些情况需要防止用户多次点击按钮用户页面返回再次提交微服务互相调用,由于网络问题,导致请求失败,feign触发重试机制其他...

2021-08-26 18:14:47 105

原创 关于Feign远程调用丢失请求头问题

当我们使用微服务时,由于功能独立于不同的服务,那么存在一种场景,就是当我们的其中一个服务需要去访问另一个服务进行远程调用时,当我们需要调用的这个接口如果是不需要登陆的话,那还好,直接可以调用成功,那么如果这个被调用的接口它是需要用户登陆过后才可以获取的呢,那么我们的远程调用就会失败现在在前后端分离的模式下,一般是前端向后端请求接口时,都是在·请求头里面添加令牌,然后后端统一处理,也就是说是用到了请求头的。而远程调用需要登陆的接口服务的话,在进行远程调用时,是会创建一个新.

2021-08-26 14:58:39 282

原创 关于高版本springboot回退到低版本springboot的测试无法使用的问题

首先我们在使用idea在创建项目时,有可能idea提供的可选择版本是过高的版本,但是我们却不需要过高的版本,但是我们必须要选择一个版本进行创建。这里就以sptingboot2.4.10回退springboot2.1.13.RELEASE为例修改完版本号后。此时我们的测试类已经报错了,显示没有改类import org.junit.jupiter.api.Test;解决::除了要另外加一个注解外,还需要给类和方法加上public才可以,否则依然报错。.

2021-08-24 22:51:31 1046

原创 oauth2做简单的gitee登陆

图来自网络

2021-08-23 14:02:23 1905 4

原创 关于阿里云服务器80端口被占

首先我们使用命令:netstat -nultp来看端口的使用情况或者使用:netstat -nat |grep ":80" 来查看,要查看其他端口,则修改端口号即可其中后面跟着LISTEN的表示是已经被监听的端口,是已经被占用的,后面跟着被什么服务占用了。办法是。停掉占用该端口的进程:fuser -k 80/tcp...

2021-08-22 21:19:31 2340

原创 密码加密补充

之前我们使用的密码加密普遍是使用的是md5加密。MD5加密是不可被破解的,在网上出现的一些可以破解md5的网站或者工具,其实都是使用的暴力破解是预先将一些密码加密后进行存储,然后将密文于我们要解码的密文进行比较,从而得到原密码。那么从这个信息我们也可以得知,相同内容的密码加密后的密文其实是一样的,那么解决办法就是使用加盐的方式。当然spring security也提供了一个工具类可以用来加密 bCryptPasswordEncoderBCryptPasswordEncoder.

2021-08-22 20:38:53 1882

原创 CompletableFutrue异步编排

引出问题: 虽然线程池可以解决线程的频繁创建和销毁的工作,但有一个场景,但靠线程池是无法完成的,那就是如果一些业务场景中,某一些请求需要等待其他的请求返回的结果然后在进行操作。或许有人会说,线程不是有那个等某个线程执行完后在执行的吗,还有一些并发包下的一些类也可以实现。但是那样都是非常不方便的,也许功能真的可以实现,但不建议,因为java还有其他的解决办法就是使用CompletableFuture来实现public class CompletableFuture<T..

2021-08-22 15:26:39 135

原创 RDB与AOF

文章目录rdb触发RDB快照通过RDB文件恢复数据RDB 的优缺点AOF配置重写触发机制根据AOF文件恢复数据AOF的重写机制AOF 的优缺点rdbsave 900 1save 300 10save 60 10000rdb默认配置当 900 秒执行 1 个写命令时,启用快照备份。当 300 秒执行 10 个写命令时,启用快照备份。当 60 秒内执行 10000 个写命令时,启用快照备份。触发RDB快照1 在指定的时间间隔内,执行指定次数的写操作2 执行save(阻塞, 只管保存快照,

2021-03-13 14:58:05 83 1

原创 springboot2.0+整合日志使用@Slf4j注解

文章目录首先idea需要与lombok插件,然后引入坐标 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>日志

2021-03-13 14:57:27 280

原创 请求参数有反斜杠等非保留字符报Invalid character found in the request target. The valid characters are defined in

解决在springboot的启动类上添加一个方法,如下:@Bean public ConfigurableServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory.addConnectorCustomizers((TomcatConnectorCustomizer

2021-03-13 14:56:07 388

原创 redis整合springboot做消息的发布与接收

定义一个配置类@Configurationpublic class RedisListenerConfig { @Bean RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter,

2021-03-13 14:49:53 219

原创 spring定时任务

文章目录前言前言1、使用jdk的Timer和TimerTask实现可以实现简单的间隔执行任务,无法实现按 日历去调度 执行任务。2、使用Quartz实现Quartz是一个异步任务调度框架,功能丰富,可以实现按日历调度。3、使用SpringTask实现Spring3.0后提供SpringTask实现任务调度,支持按日历调度,相比 Quartz功能稍简单,但是在开发基本够用,支持注解编程方式在启动类上加上@EnableScheduling注解,他会扫描在启动类所在包及其子包下的所有

2021-01-26 11:11:32 143

原创 简单快乐的vue

文章目录一、v-bind 指令v-html 指令v-model指令v-on 指令过滤器情况一情况二条件指令v-if指令v-else 指令v-else-if指令v-show指令v-if 与 v-show 的区别v-for指令计算属性(computed)methodscomputed vs methods(简单比较)样式控制动态调节事件修饰符表单修饰符侦听器组件全局组件局部组件组件模板与组件分离Prop父组件向子组件传值子组件向父组件传值自定义指令全局局部AxiosGETPostall并发执行请求请求方式(请求

2020-12-31 17:43:02 88

原创 简单快乐的vue脚手架

文章目录一、介绍及胡扯一、介绍及胡扯 本人使用的是Hbuilder,在使用vue之前,我们需要在在Hbuilder的命令终端里使用npm命令,所以nodejs是必不可少的,安装也比较方便,直接下载插件即可,然后创建项目,我们这里使用点点点的方式创建项目,vue项目, 项目结构是这样的,但其实vue.config.js文件和router目录是自己创建的assets——静态资源,如css,jscomponents——公共组件router——路由文件App.vue——根组件main.js——入口

2020-12-31 14:30:20 80 1

原创 vue生命周期钩子函数

var vm=new Vue({ el: "#app", data: { name: '666' }, beforeCreate :function(){ console.log("创建前"); console.log("beforeCreate"); console.log(this.$el); console.log(this.$data); console.log("========="...

2020-12-31 14:27:57 86

原创 java虚拟机之虚拟机栈

文章目录一、虚拟机栈描述栈的存储单位栈帧栈帧内容局部变量表slot操作数栈(Operand Stack)字节码demo栈顶缓存技术动态链接(指向运行时常量池的方法引用)静态链接动态链接虚方法表方法返回地址一、虚拟机栈包含java方法(局部变量表,操作数栈,动态链接,方法出口)描述Java的指令都是根据栈来设计的,优点是跨平台,指令集小,编译容易实现,缺点是 性能下降,实现相同的功能需要更多的指令每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧,是线程私有的 一个栈帧就对

2020-10-25 09:32:59 115 1

原创 了解localStorage、sessionStorage

文章目录一、localStorage优势不足使用删除localStorage的键获取二,sessionStorage使用在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的。解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。在HTML5中,本地存储是一个window的属性,包括localStorage和ses

2020-10-24 23:32:42 127

原创 java之activeMQ

文章目录一、activeMQ默认已经安装完毕队列点对点模式服务提供方服务消消费方(一)服务消消费方(二)主题服务提供方服务消费方(一)服务消费方(二)手动签收事物总结springboot 整合activemq点对点坐标yml创建一个Queue(队列)服务提供方启动类服务消费方发布订阅一、activeMQ默认已经安装完毕启动,进入activemq目录下的bin目录,启动,./activemq start关闭防火前或者打开端口activemq监听的是61616,我们访要查看消息队列的状态时访问816

2020-10-23 19:31:39 2322

原创 java虚拟机(HotSpot)之运行时数据区

文章目录jvm运行时数据区一、pandas是什么?二、使用步骤1.引入库2.读入数据总结jvm运行时数据区一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.f

2020-10-22 16:45:23 243 1

原创 java虚拟机之方法区

文章目录前言一、方法区版本区别方法区内部结构方法区的演变前言堆和方法区和栈的关系 㤡 One one=new One 其中One类会被加载进方法区如果是在方法里面new的对象,那么one变量就会存在虚拟机栈的局部变量表中,而new One ,new的对象则会存在堆内存中,局部变量表的one指向了堆内存中实例数据,而该实例数据中包含了一个到对象数据类型的指针,而该指针指向了方法区的对象类型数据,一、方法区方法区与java堆一样,是各个线程共享的内存区域。方法区在jvm启动

2020-10-21 17:36:14 143

空空如也

空空如也

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

TA关注的人

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