自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (5)
  • 收藏
  • 关注

原创 读取文件内容

【代码】读取文件内容。

2024-03-14 16:07:04 385 1

原创 springboot在自定义拦截器中使用@Value获取值失败及@RefreshScope 不生效问题

因此,如果要使拦截器的属性值能够在应用程序运行期间动态更新,可以通过将该属性的值从 Spring 的 Environment 或 ConfigurableEnvironment 中获取,以确保始终使用最新的配置值。例如,在AuthenticationInterceptor类中,可以注入Environment或ConfigurableEnvironment的实例,并在需要使用timeout_exit属性的地方使用它来获取最新的配置值,而不是直接使用属性本身。注入 Environment 对象。

2023-05-12 11:07:38 1765 1

原创 ES查询请求中指定分词器

##或者在字段映射mapping中指定分词器。

2023-03-30 16:22:48 1627 1

原创 递归寻找子集单位指定类型的上级部门

【代码】递归寻找子集单位指定类型的上级部门。

2023-03-15 15:45:15 147

原创 stream对list进行升降序排序

【代码】stream对list进行升降序排序。

2023-03-11 10:52:20 10165

原创 Mybatis-Plus查询时排除某些字段

【代码】Mybatis-Plus查询时排除某些字段。

2022-11-22 16:37:10 1103

原创 Es 根据时间分组聚合 (趋势图 折线图数据)

【代码】Es 根据时间分组聚合 (趋势图 折线图数据)

2022-11-09 15:09:43 2751

原创 根据id,获取所有子部门列表(包括隔代子部门,一直到叶子节点)

【代码】根据id,获取所有子部门列表(包括隔代子部门,一直到叶子节点)

2022-09-26 16:34:02 174

原创 TreeUtil工具类,传入list递归生成树形结构

【代码】TreeUtil工具类,传入list递归生成树形结构。

2022-09-09 15:39:14 310

原创 Redis3.2.8集群搭建

Centos7redis3.2.8需要三台服务器,规定端口号为 7001 7002 7003 7004 7005 7006 并再linux中开放对应端口redis集群中总线端口为17001、17002、17003、17004、17005、17006 这些端口都要开放准备ruby环境下载redis创建文件夹下载 redis(也可手动上传)解压安装编译(在解压后目录)无法编译则执行复制配置文件修改配置文件启动 redis所有节点创建集群执行此步骤需要安装ruby环境...

2022-07-12 16:27:29 595

原创 Netty12-TCP粘包拆包

假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到字节数是不定的,故可能存在以下四种情况:

2022-06-30 15:21:15 515

原创 Netty12-Netty的入站出站编解码

关系继承图粘包拆包:由于不可能知道远程节点是否会一次性发送一个完整的信息,tcp有可能出现粘包拆包的问题,** **这个例子,每次入站从ByteBuf中读取4字节,将其解码为一个int,然后将它添加到下一个List中。当没有更多元素可以被添加到该List中时,它的内容将会被发送给下一个ChannelInboundHandler。int在被添加到List中时,会被自动装箱为Integer。在调用readInt()方法前必须验证所输入的ByteBuf是否具有足够的数据入栈bytebuff为八个字节,此

2022-06-30 11:30:07 224

原创 Netty11-编码和解码-Protobuf

Netty 自身提供了一些 codec(编解码器)Netty 提供的编码器• StringEncoder,对字符串数据进行编码• ObjectEncoder,对 Java 对象进行编码Netty 提供的解码器• StringDecoder, 对字符串数据进行解码• ObjectDecoder,对 Java 对象进行解码Netty 本身自带的 ObjectDecoder 和 ObjectEncoder 可以用来实现 POJO 对象或各种业务对象的编码和解码,底层使用的仍是 Java 序列化技术 , 而

2022-06-29 15:27:28 499

原创 Netty10-WebSocket长连接开发

Netty 实现 Websocket长连接

2022-06-27 18:12:08 898

原创 Netty-9-Netty心跳检测

netty 心跳检测

2022-06-25 18:08:58 239

原创 Netty9-Netty实现群聊系统 并附 实现点对点私聊思路

Netty实现群聊系统

2022-06-25 17:14:30 506

原创 Netty8-Netty核心模块2

1) 保存 Channel 相关的所有上下文信息,同时关联一个 ChannelHandler 对象2) 即ChannelHandlerContext 中 包 含 一 个 具 体 的 事 件 处 理 器 ChannelHandler ,同时ChannelHandlerContext 中也绑定了对应的 pipeline 和 Channel 的信息,方便对 ChannelHandler进行调用.3) 常用方法...

2022-06-24 16:36:59 243

原创 Netty7-Netty核心模块

1) Netty 网络通信的组件,能够用于执行网络 I/O 操作。2) 通过Channel 可获得当前网络连接的通道的状态3) 通过Channel 可获得 网络连接的配置参数 (例如接收缓冲区大小)4) Channel 提供异步的网络 I/O 操作(如建立连接,读写,绑定端口),异步调用意味着任何 I/O 调用都将立即返回,并且不保证在调用结束时所请求的 I/O 操作已完成5) 调用立即返回一个 ChannelFuture 实例,通过注册监听器到 ChannelFuture 上,可以I/O 操作

2022-06-24 15:34:12 243

原创 Netty6-快速入门HTTP服务

HTTPServerInitializer 通道初始化对象创建一个通道初始化对象 并给WorkGroup的 EventLoop 对应的管道设置处理器 可以是Netty提供的 也可以是自定义的Http ServerHandle服务启动后访问监听的浏览器端口即可得到返回消息此时控制台打印会发现浏览器发送了两次请求一次是请求网站,一次是请求网站的图标进行请求过滤...

2022-06-24 13:37:37 343

原创 Netty5-Netty模型

ServerHandler中处理事件是有一个非常耗时长的业务 -> 异步执行 -> 提交该channel 对应的NIOEventLoop 的 taskQueue中解决方案1 用户程序自定义的普通(异步)任务解决方案2 : 用户自定义定时任务 -》 该任务是提交到 scheduleTaskQueue中Netty异步模型基本介绍说明:当 Future 对象刚刚创建时,处于非完成状态,调用者可以通过返回的 ChannelFuture来获取操作执行的状态,注册监听函数来执行完成后的操作。常见有如下操作• 通

2022-06-24 10:37:49 189

原创 Netty5-入门实例-TCP服务

Netty 模型理论

2022-06-23 22:38:25 651

原创 Netty4-Netty入门-模型理论

Netty 对 JDK 自带的 NIO 的 API 进行了封装工作原理图黄色的框表示对象, 蓝色的框表示线程白色的框表示方法(API)模型特点问题分析基于 I/O 复用模型:多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象等待,无需阻塞等待所有连接。当某个连接有新的数据可以处理时,操作系统通知应用程序,线程从阻塞状态返回,开始进行业务处理Reactor 对应的叫法: 1. 反应器模式 2. 分发者模式(Dispatcher) 3. 通知者模式(notifier)2) 基于线程池复用线程资源:

2022-06-23 20:10:06 219

原创 Netty3-NIO与零拷贝

传统IO 进行四次拷贝,三次切换(仅仅是读写)mmap 优化sendFile 优化1所谓零拷贝是操作系统角度看,是没有CPU拷贝sendFile 优化小结:这里其实有 一次cpu 拷贝kernel buffer -> socket buffer但是,拷贝的信息很少,比如lenght , offset , 消耗低,可以忽略零拷贝的再次理解零拷贝案例-Server零拷贝案例-CLientBIO、NIO、AIO对比表NIO零拷贝关键方法...

2022-06-23 14:49:12 85

原创 Netty2-基于NIO的群聊系统

基于NIO额群聊系统

2022-06-23 13:34:27 179

原创 Netty-1-IO模型

Netty是一个处理网络高并发的框架 JDK ---> NIO ---> Netty">Java共支持3种网络编程模型/IO模式:BIO、NIO、AIOBIO、NIO、AIO适用场景分析BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序简单易理解。NIO方式适用于连接数目多且连接比较短(netty基于NIO 但是支持长连接)的架构,比如聊天服务器,弹幕系统,服务器间通讯等。编程比较复杂,JDK1.4开始支持。AIO方式使

2022-06-23 10:15:00 130

原创 ruoyi使用AOP控制数据权限案例

Aspect :表示切面,给业务方法增加的功能,叫做切面。 切面一般都是非业务功能, 而且切面功能一般都是可以复用的。 例如 日志功能, 事务功能, 权限检查,参数检查, 统计信息等等Orient:面向,对着Programming:编程详细请查看 AOP缓存实现ruoyi使用的是使用注解方式为切入点此注解可传入两个参数 分别为用户表别名 及部门表别名在查看完自定义注解后,再来看一下切面业务类定义切入点@annotation 即使用注解方式切入JoinPoint 当前切入点对象handl

2022-06-21 09:14:39 609

原创 Alibaba-Sentinel简单入门

1、简介项目地址:https://github.com/alibaba/Sentinel随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel

2022-04-17 11:54:26 2322 1

原创 org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms)错误解决

org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts. Command: (HEXISTS), params: [com.dinsmooth.storehbase.schedule:entryTaskDelay, 1f15dcac-22b6-4865-92a5-a6452e6ae5c3:154], channel: [i

2022-04-16 15:49:23 8398

原创 分布式事务与本地事务

事务保证:1、订单服务异常,库存锁定不运行,全部回滚,撤销操作2、库存服务事务自治,锁定失败全部回滚,订单感受到,继续回滚3、库存服务锁定成功了,但是网络原因返回数据途中问题?4、库存服务锁定成功了,库存服务下面的逻辑发生故障,订单回滚了,怎么处理?利用消息队列实现最终一致库存服务锁定成功后发给消息队列消息(当前库存工作单),过段时间自动解锁,解锁时先查询订单的支付状态。解锁成功修改库存工作单详情项状态为已解锁1、远程服务假失败:远程服务其实成功了,由于网络故障等没有返回导致:订单回滚,库.

2022-04-12 19:20:22 288

原创 分布式session解决方案-SpringSession

1.Session复制让两个服务器之间互相同步Session,小型系统使用,在大型分布式系统下不适用2. 客户端存储3.hash一致性同一个hash后的ip落到同一个服务器上4.统一存储让Session统一存储在中间件或者数据库中,不存在内存中Spring整合SpringSession1.导入依赖<dependency> <groupId>org.springframework.session</groupId>

2022-04-11 12:25:25 146

原创 RabbitMQ

1.消息中间件使用场景异步处理应用解耦流量削峰简介大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力消息服务中两个重要概念:消息代理(message broker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。消息队列主要有两种形式的目的地队列(queue):点对点消息通信(point-to-point)• 消息发送者发送消息,消息代理将其放入一个队列中,消息接收者从队列中获取消息内容

2022-04-11 12:24:27 1543

原创 如何保证接口的幂等性(防止重复提交)

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

2022-04-11 12:22:58 5157

原创 Feign远程调用丢失请求头或异步情况丢失请求上下文

Feign在远程调用之前要构造请求,会调用很多拦截器来对请求进行增强,如果没有的拦截器,会创建一个新的request请求,这个请求里什么都没有解决:添加拦截器解决远程调用丢失请求头package cn.cloud.xmall.order.config;import feign.RequestInterceptor;import feign.RequestTemplate;import org.springframework.context.annotation.Bean;import o.

2022-04-09 19:55:50 687

原创 SpringBoot添加视图控制器来简写controller页面跳转

发送一个请求,跳转到一个页面前言发送一个请求,跳转到一个页面,通常是在controller定义一个空方法进行跳转例如: @GetMapping("/login.html") public String loginPage(){ return "login"; }可以使用springmvc的 viewcontroller 将请求和页面映射一、使用方法1.新建配置类package cn.cloud.xmall.auth.confi.

2022-03-23 14:30:18 1131

原创 GROUP_CONCAT(DISTINCT xxx.`xxx`) 使用

项目场景:mysql分组查询例如:例如要查询三个属性,需要对前两个属性去重,第三个结果进行去重并分组问题描述SELECT ssav.`attr_id`,ssav.`attr_name`,ssav.`attr_value`FROM `pms_sku_info` infoLEFT JOIN `pms_sku_sale_attr_value` ssav ON ssav.`sku_id` = info.`sku_id`WHERE info.`spu_id` = 1 GROUP BY ssav.

2022-03-21 13:40:56 1703

原创 Java中的异步与线程池

初始化线程的4种方式1、继承Thread Thread01 thread01 = new Thread01(); thread01.start(); public static class Thread01 extends Thread{ @Override public void run() { System.out.println("当前线程:"+Thread.currentThread().getId());

2022-03-20 19:00:32 7084

原创 gateWay-API网关

Route:网关的基本构建块。它由 ID、目标 URI、谓词集合和过滤器集合定义。如果聚合谓词为真,则匹配路由。断言:这是一个Java 8 函数断言。输入类型是Spring FrameworkServerWebExchange。这使您可以匹配来自 HTTP 请求的任何内容,例如标头或参数。过滤器GatewayFilter:这些是使用特定工厂构建的实例。在这里,您可以在发送下游请求之前或之后修改请求和响应。spring: cloud: gateway: routes:

2022-03-19 08:32:44 240

原创 vue-组件抽取、父子组件交互

多个页面需要使用相同的一部分代码样式,可以将这部分代码拿出来封装为组件例如下面代码中的 “菜单 ” 就可以封装为一个通用的组件<template> <div> <el-row :gutter="20"> <el-col :span="6"> 菜单 </el-col> <el-col :span="18"> 表格 </el-col&g.

2022-03-19 08:31:45 525

原创 ElasticSearch-整合SpringBoot

1)、9300:TCPspring-data-elasticsearch:transport-api.jar;springboot 版本不同, transport-api.jar 不同,不能适配es 版本7.x 已经不建议使用,8 以后就要废弃2)、9200:HTTPJestClient:非官方,更新慢RestTemplate:模拟发HTTP 请求,ES 很多操作需要自己封装,麻烦HttpClient:同上Elasticsearch-Rest-Client:官方Re

2022-03-19 08:31:04 1547

原创 JVM-调优入门

jvm 内存模型程序计数器Program Counter Register:记录的是正在执行的虚拟机字节码指令的地址,此内存区域是唯一一个在JAVA 虚拟机规范中没有规定任何OutOfMemoryError 的区域虚拟机:VM Stack描述的是JAVA 方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法接口等信息局部变量表存储了编译期可知的各种基本数据类型、对象引用线程请求的栈深度不够会报StackOverflowError 异常

2022-03-17 21:27:48 466

集合梳理,继承关系....

集合梳理

2021-07-21

heima_mm.sql

黑马面面sql

2021-07-16

秒杀后端.zip 后端代码

秒杀后端.zip

2021-07-15

kaptcha232_jb51.rar

kaptcha232_jb51.rar

2021-07-15

typora软件、主题及配置.zip

typora软件

2021-07-15

空空如也

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

TA关注的人

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