自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (4)
  • 收藏
  • 关注

原创 spingboot+Vue前后端分离部署到阿里云上

目录1、将本地数据库导入到服务器上的数据库上 1.1在服务器上创建名为book的数据库 1.2、创建完成后本地使用Navicat连接到阿里云上的数据库 1.3、执行sql脚本2、部署后端项目,Spingboot项目 2.2、上传jar包后,让jar包在服务器后台运行 2.3、开启阿里云安全组的9000端口号,防火墙放行9000端口 2.3.1、开启安全组......

2021-12-25 21:02:42 3210 1

原创 JUC并发编程

ThreadLocal 提供了线程本地变量,它可以保证访问到的变量属于当前线程,每个线程都保存有一个变量副本,每个线程的变量都不同。ThreadLocal 相当于提供了一种线程隔离,将变量与线程相绑定。Threadlocal 适用于在多线程的情况下,可以实现传递数据,实现线程隔离。ThreadLocal 提供给我们每个线程缓存局部变量。

2024-03-30 17:38:13 829

原创 毕设-社区志愿者管理系统(小程序+pc端)

本系统主要包括志愿者首页、社区志愿者个人中心、志愿者管理、活动类型管理、活动信息管理、活动报名管理、活动通知管理、活动心得管理、交流反馈、系统管理、留言板等功能,通过这些功能的实现基本能够满足日常社区志愿者管理的操作。本系统主要包括志愿者首页、社区志愿者个人中心、志愿者管理、活动类型管理、活动信息管理、活动报名管理、活动通知管理、活动心得管理、交流反馈、系统管理、留言板等功能,通过这些功能的实现基本能够满足日常社区志愿者管理的操作。文章知识点与官方知识档案匹配,可进一步学习相关知识。

2023-11-30 14:36:25 178

原创 RocketMQ相关概念

RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发,RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。能够保证严格的消息顺序提供丰富的消息拉取模式高效的订阅者水平扩展能力实时的消息订阅机制亿级消息堆积能力。

2023-11-08 10:14:47 216

原创 分布式搜索引擎----elasticsearch

elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容。elasticsearch结合kibanaLogstashBeats,也就是ELK)。被广泛应用在日志数据分析、实时监控等领域。Mysql:擅长事务类型操作,可以确保数据的安全和一致性。Elasticsearch:擅长海量数据的搜索、分析、计算。

2023-08-21 17:37:21 2427

原创 分布式事务及解决方案

分布式事务就是在一个交易中各个服务之间的相互调用必须要同时成功或者同时失败,保持一致性和可靠性。在单体项目架构中,在的情况下也会发生 分布式事务问题。本质上来说,分布式事务就是为了保证。在传统的单机环境中,事务处理通常符合ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。在这种情况下,一个事务要么完全执行成功,将所有的更改提交到数据库中,要么完全失败,将所有的更改回滚,数据库状态不受影响。

2023-07-28 20:07:55 636

原创 mybatisplus查询不到数据,但是使用sql可以查询到数据

mybatisplus查询不到数据,sql语句可以查询到数据

2023-02-08 16:41:27 6564 1

原创 记录一次触发器的使用场景

在工作中遇到这样一个场景,数据的name值是唯一索引,是唯一的,删除使用的是逻辑删除(为删除的数据dtime字段为null,删除的数据dtime字段为删除时间)。再次添加一个name值为‘rk’的数据,此时会报错,因为name字段是唯一索引,并且使用的是逻辑删除,第一次添加的数据并未真正删除,所以当再次添加name值为‘rk’的是会报错。如果是修改dtime字段,就是删除操作。这样在删除数据的时候,在name值后面拼接上‘_当前数据id’,这样name值就不会重复了,再次添加的时候也就没有影响了。

2023-02-02 10:44:11 187

原创 SpringBoot集成MongoDB实现DRUD

MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。

2022-11-12 14:44:37 811

原创 使用EasyExcel导入导出数据字典

excel上传和下载

2022-11-04 16:29:11 2062

原创 mybatis plus实现自动填充字段、乐观锁机制以及逻辑删除

乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据.

2022-10-26 14:42:45 1679

原创 RabbitMQ解决幂等性问题

幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的。如果一个插入操作的消费者,插入完成之后的代码发生了异常,这样就抛出异常,然后rabbitmq就会使用重试机制,这样这个消费者就会不断的往数据库里插入该订单数据,这样就会产生多条同样的订单数据,造成结果不一致的。如果消费者处理消息时,因为代码原因抛出异常是需要从新发布版本才能解决的,那么就不需要重试,重试也解决不了该问题的。存放到死信队列或者是数据库表记录、后期人工实现补偿。

2022-10-13 10:15:08 1694

原创 Rabbitmq死信队列

死信队列俗称,备胎队列;消息中间件因为某种原因拒收该消息后,可以转移到死信队列中存放,死信队列也可以有交换机和路由key等。消费者在消费生产者生产的消息时发生了某些特殊情况(下文会说),导致消息无法被正常消费,存放这些未被消费的消息的队列即为死信队列。

2022-10-12 16:11:11 4325

原创 Springboot整合RabbitMQ

在Spring启动时,利用Spring Bean管理工厂BeanFactory接口,这里使用的是扇形交换机,交换机会把消息路由到绑定到它的所有队列。这里直接发送的user对象,实现能者多劳和手动确认。访问注册接口,会立即响应。

2022-10-11 15:13:01 1648

原创 RabbitMQ常用消息模式

在RabbitMQ中,生产者发送消息不会直接将消息投递到队列中,而是先将消息投递到交换机中, 在由交换机转发到具体的队列, 队列再将消息以推送或者拉取方式给消费者进行消费。生产者发送一条消息,经过交换机转发到多个不同的队列,多个不同的队列就多个不同的消费者。

2022-10-10 15:42:43 857

原创 初识-MQ

消息(message)是指在应用间传送的数据。消息可以非常简单,也可以很复杂。消息队列中间件(Message Queue Middleware,简称为MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排列模型,它可以在分布式环境下扩展进程间的通信。

2022-10-09 21:27:45 783

原创 Spring Cloud Gateway入门

网关是微服务最边缘的服务,直接暴露给用户,用来做用户和微服务的桥梁。没有网关:客户端直接访问我们的微服务,会需要在客户端配置很多的ip:port,如果user-service 并发比较大,则无法完成负载均衡。有网关:客户端访问网关,网关来访问微服务,(网关可以和注册中心整合,通过服务名称找到目标的 ip:prot)这样只需要使用服务名称即可访问微服务,可以实现负载均衡,可以实现 token 拦截,权限验证,限流等操作。

2022-10-05 18:22:12 889

原创 Spring Cloud Hystrix入门

在分布式的链路中,只要有一个服务宕机,那么就可能导致一整个业务线都瘫痪。服务雪崩的本质:线程没有及时回收。不管是调用成功还是失败,只要线程可以及时回收,就可以解决服务雪崩

2022-10-02 15:55:26 304

原创 设计模式---代理模式(结构型)

代理模式为某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。扩展目标对象的功能,核心功能是方法增强。代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。

2022-09-17 21:04:48 760

原创 JVM---GC垃圾回收总

SWT指的是GC事件发生过程中,会产生应用程序的停顿。停顿产生时整个应用程序线程都会被暂停,没有任何响应, 有点像卡死的感觉,这个停顿称为STW。可达性分析算法中枚举根节点(GC Roots)会导致所有Java执行线程停顿。原因很简单,因为java进行垃圾回收时使用可达性分析,从GC Root向下判断对象是否有引用,如果不把所有线程进入safe points并阻塞起来就会出现对象上一秒没有引用被删除,后一秒又出现引用,导致错误的产生。

2022-09-11 16:18:25 771

原创 SpringBoot项目结合mybatis generator自动生成代码

从头创建Sprintboot项目---->代码自动生成

2022-08-28 22:00:19 569

原创 设计模式---工厂模式(创建型)

什么是工厂设计模式工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式。工厂模式是用工厂方法代替new操作的一种模式。我们不暴露创建对象的具体逻辑,而是将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。

2022-08-21 16:02:59 304

原创 设计模式----单例模式(创建型)

单例模式是比较常见的一种设计模式,目的是保证一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例,避免频繁创建对象,节约内存。在程序编写上,一般将单例模式分为两种,分别是饿汉式和懒汉式。

2022-08-20 17:49:31 197

原创 在spring和springboot项目中main方法如何调用service方法

这样就可以从容器中获取组件了。

2022-08-13 17:17:01 5557

原创 解决 Incorrect string value: ‘\xF0\x9F\x98\xAD“,...‘ for column ‘commentContent‘ at row 1 报错

离谱的居然是解析表格的前300行没有出现这个错误,到了第301行的时候报了sql异常。首先想到的是会不会第301行的数据会不会有特殊的格式,结果发现并没有,只是数据内容不一样,并没有特殊的格式,排查了半小时,结果是因为数据库的编码不对。原因在于我们的表格数据中有的被解析成表情了,而这些表情是按照四个字节一个单位进行编码的,而我们通常使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的,正是这个原因导致将数据存入mysql数据库的时候出现错误。(3)、修改连接数据库的连接代码。...

2022-07-21 11:53:57 3368

原创 JWT原理和整合Springboot实现登录认证

目录1、JWT的结构2、使用JWT3、封装工具类3.1、引入依赖3.2、生成token3.3、解析token3.4、封装工具类4、整合pringboot JWT 最后的形式就是个字符串,它由头部、载荷与签名这三部分组成,中间以「.」分隔。像下面这样: Header: 标头通常由两部分组成:令牌的类型(即JWT)和所使用的签名算法,例如HMAC SHA256或RSA。它会使用 Base64 编码组成 JWT 结构的第一部分。 注意:Base64是一种编码,也就是说,

2022-07-04 13:34:16 4535 1

原创 JSON Web Token----JWT和传统session登录认证对比

JWT简称JSON Web Token,也就是通过JSON形式作为Web应用中的令牌,用于在各方之间安全地将信息作为JSON对象传输。在数据传输过程中还可以完成数据加密、签名等相关处理。Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源.........

2022-07-03 10:37:36 626

原创 Springboot的Controller中的参数接收以及@Mapper和@Repository的区别

目录1、@PathVariable2、@RequestParam3、@RequestBody4、无注解5、@Repository 与 @Mapper的区别6、解决使用@mapper接口时,注入mapper爆红问题获取路径参数。即url/{id}这种形式。获取查询参数。即url?name=这种形式这两种方式结合:http://localhost:80/demo/123?name=rk3、@RequestBody方式1: 方式2:相同点 :@ Mapper和 @ Repository 都是作用在dao

2022-06-29 17:23:13 624

原创 Docker自定义镜像

目录 1、了解镜像结构2、Dockerfile语法2.1、什么是Dockerfile2.2、构建Java项目 2.2.1、需求:基于Ubuntu镜像构建一个新镜像,运行一个java项目2.2.2、基于java8构建Java项目2.3、总结 简单来说,镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、依赖文件等组合,然后编写好启动脚本打包在一起形成的文件。镜像是分层结构,每一层称为一个Layer: 构建自定义的镜像时,并不需要一个个文件去拷贝,打包。我们只需要

2022-06-28 09:38:02 1698

原创 Docker--容器挂载

目录1、什么是数据卷2、数据卷操作命令2.1、创建和查找数据卷 2.2、小结3、容器挂载到数据卷3.1、挂载数据卷命令 3.2、案例-给nginx挂载数据卷 4、容器挂载到宿主机目录 1、去dockerhub搜索mysql并拉取镜像​编辑 2、创建/mysql/data和/mysql/conf两个目录作为mysql容器的挂载点 3、在DockerHub查看mysql镜像的详细资料,通过Mysq镜像创建并运行mysql器 4、测试远程连接mysql容器

2022-06-27 10:54:56 2771

原创 Docker基本操作

目录1、初识Docker1.1、什么是Docker1.2.Docker和虚拟机的区别1.3.Docker架构2、Docker的基本操作2.1.镜像操作2.1.1、镜像命令2.1.2、案例:从DockerHub中拉取一个nginx镜像并查看 ,保存到本地再导入 2.2.容器操作2.2.1.容器相关命令2.2.2.案例-创建并运行一个容器2.2.3、进入Nginx容器,修改HTML文件内容,添加“rk学Docker”2.2.4、删除容器2.2.5、小结微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很

2022-06-22 19:55:54 444 1

原创 http客户端Feign基本使用

目录Feign远程调用1、Feign替代RestTemplate5、总结2、自定义配置1、配置文件方式2、java代码方式3、总结3、Feign底层性能优化1、优化12、优化2以前利用RestTemplate发起远程调用的代码: 存在下面的问题: •代码可读性差,编程体验不统一 •参数复杂URL难以维护1、引入依赖2、添加注解在order-service的启动类添加注解开启Feign的功能: 3、编写Feign的客户端 ...

2022-06-19 16:06:31 543

原创 Nacos注册中心、配置中心

目录1、安装Nacos1.1、下载安装包1.2、解压并且配置端口1.3、启动、访问2、服务注册到nacos2.1、引入依赖2.2、在user-service和order-service中配置nacos地址3、服务分级存储模型3.1、给user-service配置集群 3.2、同集群优先的负载均衡4、权重配置5、Nacos进行统一配置和配置热更新5.1、统一配置管理5.2、从Nacos上拉取配置5.3、配置热更新5.4、配置共享...

2022-06-18 21:24:47 1887

原创 Eureka注册中心搭建以及Ribbon负载均衡原理

1、Eureka注册中心2、Ribbon负载均衡3、Nacos注册中心

2022-06-16 10:38:19 822 1

原创 初识微服务

1、微服务架构

2022-06-13 20:59:50 268

原创 解决springboot处理时间日期格式化问题(从数据库至前端)和Springboot-定时执行任务的实现

1、数据库在数据库中的时间数据类型为datetime:在数据库中的时间格式为:2、java中该表该字段对应的实体类的属性类型为Date3、前端发起请求后接收到的参数把实体类用 @RestController 往前端返回的时候,Date 数据会默认使用 ISO 8601 格式返回,也就是如下格式:以前 springboot 是默认返回时间戳的,现在是默认返回 ISO 86014、解决方案4.1、全局配置:在application.ym......

2022-05-31 15:49:18 4431 1

原创 Spring中的事务的原理、实现方式、隔离性、传播性

1. 什么是事务数据库事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么一起成功,要么一起失败,是一个不可分割的工作单元。 在我们日常工作中,涉及到事务的场景非常多,一个 service 中往往需要调用不同的 dao 层方法,这些方法要么同时成功要么同时失败,我们需要在 service 层确保这一点事务的四大特性:A:原子性 C:一致性 I:隔离性 D:持久性...

2022-05-23 21:46:30 1100 1

原创 Spring boot打包成可执行jar包后无法访问jsp(404错误)的解决方法,直接粘贴可用

打包jsp等资源文件, pom.xml需要配置以下内容 <build> <finalName>打包后的文件名</finalName> <plugins> <!-- 指定编译java版本 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId&gt.

2022-05-15 19:30:23 1137

原创 使用七牛云进行文件上传

一、七牛云入门测试1、注册七牛云账号,完成后选择对象存储 2、在里面创建空间,一个空间相当于一个文件夹,就是将对象上传到的地方创建完成后,后期上传的静态资源,可以根据域名+文件名直接访问,自定义域名必须是备案域名 3、查看个人秘钥,注册完成账号后,会有一个秘钥,上传文件的时候进行授权和认证。 4、文件上传测试 进入七牛云开发者中心测试代码:package c...

2022-05-14 21:41:44 8655 1

原创 第三方的登录----微信登录实现流程

一、微信登录1、客户端授权 - 授权码模式客户端必须得到用户的授权,才能获得令牌,OAuth2.0定义了四种授权方式: 1、授权码模式(authorization code) 2、简化模式(implicit) 3、密码模式(resource owner password credentials) 4、客户端模式(client credentials)这里,我们主要介绍一下授权码模式:授权码模式是功能最完整,流程最严密...

2022-05-03 13:43:46 19002 3

mysql基础到进阶学习笔记

mysql学习笔记

2023-03-25

CentOS7下卸载、安装Docker

CentOS7安装Docker、CentOS7安装DockerCompose、Docker镜像仓库的配置

2022-06-17

es安装教程:单点部署es、部署kibana、以及IK分词器

单点部署es、部署kibana、以及IK分词器详细教程

2022-06-17

遇见狂神说笔记-全部内容,包含所有章节

狂神说笔记-全部内容,包含所有章节

2022-06-12

nacos集群搭建-详细步骤

使用nacos进行集群搭建

2022-06-09

空空如也

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

TA关注的人

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