自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

huangliuyu00的博客

写代码的蓝胖子

  • 博客(69)
  • 收藏
  • 关注

原创 jackson常用操作

jackson常用操作

2023-09-03 22:03:29 252

原创 通过es索引生命周期策略删除日志索引

在es 7.x版本之后,多了个索引生命周期的概念,可以一系列的设置,给新生成的索引绑定生命周期策略,到期后,索引自动删除。也可以通过linux定时任务实现,请查看另一篇文章。

2023-09-02 17:56:06 1535

原创 通过linux定时任务删除es日志索引

项目用上了elk,产生的日志索引要定时,其一个方法,通过linux定时任务,调用es接口删除索引。

2023-09-02 17:08:19 1196

原创 SpringCloudGateway集成SpringDoc CORS问题

集成SpringDoc后,在gateway在线文档界面,请求具体的服务接口,报CORS问题CORS。

2023-09-02 16:39:21 1766 3

原创 SpringCloudGateway集成SpringDoc

最近在搞Spring版本升级,按客户要求升级Spring版本,原来用着SpringBoot 2.2.X版本,只需要升级SpringBoot 2.X最新版本也就可以满足客户Spring版本安全要求,可是好像最新的SpringBoot 2.X貌似也不支持Swagger2了,综合考虑,把项目的环境升级到SpringBoot3。

2023-09-02 16:15:01 1874

原创 nginx 502 bad gateway响应头过大

通过nginx代理了个地址,请求接口直接响应 502 Bad Gateway。排查下来发现,被请求的服务,其实已收到请求,并且也已经正常响应回来,只是到了nginx处理出错了。查看nginx日志发现这个其实就是服务返的响应头过大,默认代理缓冲区太小,要设置一下。

2023-06-28 11:29:07 994

原创 Mybatis PostgreSQL查询带时区字段报错

因为带时区的类型PGSQL返回的类型是OffsetDateTime。

2023-05-08 17:27:42 1277

原创 Spring Cloud Gateway从数据库读取路由配置

由于运维特殊性,我们没有使用配置中心,仅仅只是使用了Nacos作为注册中心。业务场景对我们提出了需求,动态更新网关路由信息而不重启应用。考虑之下,我们选择了从数据库读取网关路由配置,更新配置到gateway应用。我们先后经历2个版本,一是直接实现RouteDefinitionRepository接口;二是更新路由配置信息到GatewayProperties bean,通过RefreshRoutesEvent刷新路由配置信息。

2022-12-01 22:34:34 2454

原创 Spring Cloud Gateway从数据库读取并更新Cors配置

由于运维特殊性,我们没有使用配置中心,仅仅只是使用了Nacos作为注册中心。目前项目gateway网关有个小需求,需求从数据库中读取Cors跨域配置,刷新到应用中。

2022-11-27 20:08:31 1078

原创 SpringMVC requestBody和responseBody重复获取

SpringMVC requestBody和responseBody重复获取最近有个需求,要根据响应结果来判断,是否需要保存requestBody的内容到数据库。想法使用拦截器HandlerInterceptor,拦截需要处理的url,根据响应结果判断是否需要保存内容到数据库。遇到问题requestBody不能重复获取问题responseBody 在HandlerInterceptor afterCompletion无法获取到内容其实际都是因为requestBody、responseBody

2021-09-27 21:57:09 1299 1

原创 Lucene使用IK中文分词

Lucene使用IK中文分词环境Lucene 6.xIKAnalyzer2012_u6IK中文分词配置Lucene 6.x使用IK分词需要继承Analyzer、Tokenizer,重新编写逻辑配置,再使用。分别配置子类IKAnalyzer6x、IKTokenizer6xIKAnalyzer6x.javapackage com.liuyu.lucene.ik;import org.apache.lucene.analysis.Tokenizer;import org.apache.lu

2021-04-22 00:00:08 613

原创 Zuul1请求生命周期

Zuul1请求生命周期zuul默认定义了4种不同生命周期的过滤器类型pre 可以在请求被路由之前调用routing 在路由请求时被调用post 在routing和error过滤器之后调用error 处理请求时发生错误时被调用请求生命周期当http请求到过Api网关服务时,会先后经历以下阶段第一阶段 pre类型过滤器,主要 目的是在进行请求路由之前做一些前置加工,比如请求的校验。第二阶段 routing类型过滤器,具体内容是将外部请求转发到具体的服务实例上去,当服务实例将请求结果都返回

2021-04-19 22:53:47 188

原创 Spring AOP小笔记

Spring AOP小笔记AOP概念通知(Advice)、连接点(Join point)、切点(Poincut)、切面(Aspect)、引入(Introduction)、织入(Weaving)通知 定义了切面是什么以及何时使用。(何时)连接点 是有可能操作的地方。切点 定义了真正操作的连接点。操作的区域切面 定义要做什么。引入 允许我们向现有的类添加新方法或属性。织入 把切面应用到目标对象并创建代理对象的过程。也就是说,观察计划了这么久,要动手了。...

2021-04-17 17:39:55 95

原创 【JVM笔记】对象生死存亡

对象生死存亡java虚拟机要对堆内存的对象进行回收时,要先判断对象的存活状态,只有对象不可用时,才能对此进行垃圾回收,释放内存中的空间。可怎么确定对象是否可用呢?有引用计数算法,可不能解决对象互相引用的问题,实际这2个对象已经不再被访问,但由于它们相对引用,引用计数都不为0 ,该策略不可行。Java是通过可达性分析来判定对象是否存活的可达性分析算法(Reachability Analysis)算法基本思路是通过一系列的称为"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索走过的

2021-04-17 17:35:39 108

原创 Ribbon负载均衡策略(2)

Ribbon负载均衡策略(2)Ribbon负载均衡策略(1)负载均衡策略ClientConfigEnabledRoundRobinRule这个策略一般不直接使用,它的内部定义了一个RoundRobinRule策略,作为继承策略使用,当子类中做些高级的策略无法实施时,可以使用父类的实现作为备选。如BestAvailableRulepublic class ClientConfigEna...

2020-04-18 18:58:07 299

原创 LeetCode 移除元素

LeetCode 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。实例class Solution { public int removeElement(int[] ...

2020-04-07 23:08:48 140

原创 【笔记】使用RestTemplate发送http请求

RestTemplate restTemplate=new RestTemplate(); List<HttpMessageConverter<?>> converterList = restTemplate.getMessageConverters(); converterList.remove(1); // 移除原来的转换器 //...

2019-11-18 16:12:16 259

原创 【netty笔记】基本概念

Bootstrapnetty应用程序通过设置bootstrap(引导)类开始,该类提供了一个用于网络成配置的容器。一种是用于客户端的Bootstrap一种是用于服务端的ServerBootstrapChannelnetty中的channel定义了丰富的和socket交互的操作方法:bind、close、config、connect、isActive、isOpen、isWriteabl...

2019-10-18 11:04:54 633

原创 HBase过滤器基本概念

HBase过滤器过滤器可以根据列族、列、版本等更多的条件来对数据进行过滤,基于HBase本身提供的三维有序(主键、列、版本有序),这些过滤器可以高效地完成查询过滤的。使用过滤器至少需要两类参数:操作符HBase提供了枚举类型的变量来表示这些抽象的操作符LESS (<)LESS_OR_EQUAL (<=)EQUAL (=)NOT_EQUAL (!=)GREATER...

2019-08-11 22:54:54 416

原创 HBase过滤器工具类

HBase过滤器工具类package com.liuyu.utils;import org.apache.hadoop.hbase.CompareOperator;import org.apache.hadoop.hbase.filter.*;import java.util.Collection;/** * @author huangliuyu * @description...

2019-08-09 17:41:53 455

原创 docker 设置日志文件大小及个数

docker容器在运行一定时间后会产生大量的日志,导致磁盘空间问题出现。现在有2个方案可以限制docker容器日志文件大小及个数容器范围内docker run或dokcer create时添加参数如创建并运行docker run --log-opt max-size=10m --log-opt max-file=3全局范围内修改docker daemon.json文件,配置日志文件...

2019-05-20 23:14:56 16689 2

原创 【缓存算法】LRU 最近最少使用

LRU是Least Recently Used,最近最少使用。LRU思想固定缓存大小,需要给缓存分配一个固定的大小。每次读取缓存都会改变缓存的使用时间,将缓存的存在时间重新刷新。需要在缓存满了后,将最近最久未使用的缓存删除,再添加最新的缓存。Java实现HashMap + 双向链表/** * @author huangliuyu * @description LRU 最...

2019-05-10 15:07:12 633

原创 【排序算法】插入排序

插入排序每一趟将一个待排序的记录,按其关键字的大小插入到已经排好顺的一组记录的适当位置上,直到所有待排序记录全部插入为止。直接插入排序算法思想(1)设待排序的记录存放在数据组r[1…n],r[1]是一个有序序列。(2)循环n-1次,每次使用顺序查找法,查找ri在已经排好序的序列r[1…i-1]中的插入位置,然后将r[i]插入表长为i-1的有序序列r[1…i-1],直到将r[n]插入表...

2019-03-21 18:10:42 238

原创 Ribbon负载均衡策略(1)

Ribbon负载均衡策略AbstractLoadBalancerRule抽象类里定义了负载均衡器ILoadBalancer,该对象能够在具体实现选择服务策略时,获取到一些负载均衡中维护的信息,来作为分配依据,并以此设计一些算法实现针对特定场景的高效策略。public abstract class AbstractLoadBalancerRule implements IRule, ICli...

2019-03-19 23:07:22 354

原创 Hystrix工作原理

工作原理官方 wifi地址:https://github.com/Netflix/Hystrix/wiki/How-it-Works

2019-03-11 17:06:16 272

原创 SpringBoot CAS单点登录客户端报SSL证书错误

登录后报ValidatorException: PKIX path building failedSunCertPathBuilderException: unable to find valid certification path to requested targetCaused by: sun.security.validator.ValidatorException: PKIX p...

2019-01-09 22:01:39 2957 2

转载 【整理】微服务中的 API 网关(API Gateway)

API网关API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问AP...

2019-01-06 22:06:04 987

原创 Spring Cloud Eureka Server 设置及时清理无效节点

想法开发环境下,更新代码重启服务很频繁,我们希望Eureka能快速剔除无效的服务节点。1、调整Eureka服务端配置,关闭Eureka自我保护功能,设置短间隔服务列表刷新时间。2、Eureka客户端开启健康检查,减短心跳包发送时间、服务到期时间。Eureka Server配置eureka: server: # 默认是true,调整为false,关闭eureka的自我保护 ...

2019-01-03 16:00:43 3486 4

原创 docker swarm

docker swarm系统:CentOS 7docker版本:docker-ce-18.03.12台主机主机名ipmanager192.168.10.131woker192.168.10.130环境搭建配置安装yum管理工具,添加dokcer阿里源配置阿里的docker yum源,快速下载docker-ceyum –y install yum-u...

2018-12-19 10:59:51 268

原创 使用docker-compose与SpringBoot搭建ELK日志分析系统

ELK对应Elasticsearch、Logstash、Kibana,版本7.17.7Logstash作为日志采集工具,向Elasticsearch写日志信息;Elasticsearch提供存储与检索功能;Kibana为Elasticsearch的查询接口,提供友好的图形界面。

2018-12-10 19:49:34 3209 2

原创 Redis数据结构

Redis数据结构redis有5种结构类型STRING、LIST、SET、HASH、ZSET(有序集合)结构类型结构存储的值结构的读写能力STRING字符串、整数或浮点数对整个字符串或字符串的其中一部分执行操作;对整数或浮点数执行自增或自减操作LIST一个链表,链表上的每个节目都包含一个字符串从链表的两端推入或者弹出元素;根据偏移量链表进行修剪;读取单个或...

2018-11-21 11:48:33 140

原创 Redis安装后服务器外不能访问问题

版本:redis 3.2在CentOS 7下通过yum install redis 安装了redis,发现不能通过外网访问。记录下解决的方案修改 redis.conf 配置文件把bind 127.0.0.1 调整为bind 0.0.0.0#bind 127.0.0.1bind 0.0.0.0其实可以通过docker运行redis的容器,方便多了。docker run -d -p ...

2018-11-20 17:13:36 905

原创 【JVM笔记】类加载器·双亲委派模型

类加载器·双亲委派模型从Java虚拟机的角度来看,只存在2种不同的类加载。一是启动类加载器(Bootstrap ClassLoader),作为虚拟机的一部分;二是所有其它类加载器,独立于虚拟机外部,并且继承于抽象类java.lang.ClassLoader。划分从可以Java开发人员角度来看,类加载器可更细分点。启动类加载器(Bootstrap ClassLoader)负责将存放&amp;amp;amp;...

2018-10-23 23:22:51 273

原创 【JVM笔记】类与类加载器

类与类加载器对于任意一个类,都需要由加载它的类加载器和这个类本身一同确定其在java 虚拟机中的唯一性,每一类加载器,都拥有一个独立的类名称空间。不是同一类加载器加载的类,会对类的Class对象的equals()、isAssignableFrom()、isInstance(),以及instanceof关键字。instanceof关键字影响如下package jvm;import jav...

2018-10-23 22:22:52 112

原创 ElasticSearch安装笔记

ElasticSearch安装笔记需要东西:1、JDK我这里用的是JDK112、ElasticSearch安装包是 elasticsearch-6.4.2.tar.gz地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz环境准备系统用的是CentOS 7JDK环境配置...

2018-10-19 10:54:26 800

原创 docker overlay 跨主机容器网络

构建跨主机容器网络这里使用libnetwork自带的Overlay类型驱动来实现跨主机的网络通信。Overlay驱动默认采用VXLAN协议,在IP地址可以互相访问的多个主机上之间搭建隧道,让容器可以互相访问。配置网络信息管理数据库在libnetwork网络方案中,需要配置一个键值数据库,如Consul、Etcd、Zookeeper等来实现跨主机容器网络通信。这里使用Consul,在这里...

2018-10-15 23:10:53 1028

原创 【JVM笔记】Class类文件结构

Class类文件结构Class文件是一组以8位字节为基础单位的二进制流,各个数据项严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符。Class文件格式采用一种类似于语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:无符号数(u)和表(_info)。SmartyPantsSmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:...

2018-10-14 23:09:15 163

原创 【JVM笔记】类初始化的规范

类的生命周期大概地了解一下类的生命周期及发生顺序。类初始化的规范Java虚拟机规范严格地规定 有且只有 5种情况必须立即对类进行“初始化”。如果类没有进行过初始化,则需要触发其初始化。遇到new、getstatic、putstatic或invokestatic这4条字节码指令睦,如果类没有进行过初始化,则需要触发其初始化。常见的java代码场景是:new 实例化对象、读取或设置类...

2018-10-14 22:07:00 135

原创 获取表关联关系(外键)

MySQL按数据库查询表关联关系,建议把下面的换内连接查询,提高查询速度。--CONSTRAINT_NAME 约束名称, TABLE_NAME 表名(外键表), COLUMN_NAME 列名(外键列), --REFERENCED_TABLE_NAME 引用表(主键表), REFERENCED_COLUMN_NAME 引用列(主键列)select CONSTRAINT_NAME, TABLE...

2018-10-05 18:03:27 1921

原创 获取存储过程信息

MySQL--先通过proc获取到存储过程的名称select * from mysql.proc where db = ? and `type` = 'PROCEDURE'--再通过存储过程名称获取具体的定义SQLSHOW CREATE PROCEDURE procedure_nameSQL Server--name 存储过程名称,definition 存储过程定义SELECT p...

2018-10-03 16:54:25 793

空空如也

空空如也

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

TA关注的人

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