自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

子涵先生

几乎所有事务、工作都有其道法,知其道,而御也,所谓码山有道……????

  • 博客(76)
  • 资源 (9)
  • 收藏
  • 关注

原创 黑白名单方案

设计一套灵活的黑白名单机制,要求无需修改代码即可修改黑白名单逻辑的切换。使用场景如下,比如原先一个新功能上线,我们期望给部分企业使用;等功能成熟后,我们一般会开放给所有的企业一起使用,但是好巧不巧,一家企业不愿意使用这个功能。我们不可能给每一个企业配置白名单。这样,我们就需要一个黑名单功能,即实现单独给不愿意使用新功能的企业单独配置一个名单。为了不修改代码,我们只需要修改名单类型,配置相关名单的企业就好了。

2024-03-10 16:00:29 95

原创 Mybatis-plus神技:公共字段填充

是 MyBatis-Plus 提供的一个强大的接口,用于处理实体类公共字段的自动填充。通过实现此接口,我们可以极大地简化对于创建时间、更新时间等字段的处理逻辑,使得代码更加简洁,并且保持了一致性和可维护性。这种自动填充功能是 MyBatis-Plus 的一大特色,能够有效地提升开发效率。在实践中,我们可以根据实际的业务需求来自定义填充策略,使其更贴合项目的需求。

2024-03-10 09:43:48 619

原创 ES高级用法:DeleteByQueryRequest

- 希望以上示例代码能够帮助你在Java中使用Elasticsearch的Rest High Level Client执行delete_by_query操作。- 另外,谨慎使用立即刷新策略,特别是在高吞吐量的生产环境中。祝你在使用Elasticsearch时顺利无阻!

2023-12-30 19:13:44 1192

原创 再聊canal的FlatMessage和事务之间的关系

不同事务的FlatMessage的id可能是不同的,而相同id的FlatMessage不一定来自同一个事务。类比到日记本的例子中,FlatMessage的id就像是日记本中写满纸张的页码。

2023-11-11 21:33:22 289

原创 尝试一下Guava带返回值的多线程处理类ListenableFuture

与普通的Future不同,ListenableFuture提供了一种更加灵活且易于使用的方式来处理并发操作。ListenableFuture主要用于异步计算场景,允许在计算完成后添加回调函数(Callback),从而实现对异步任务执行结果的监听和处理。总之,ListenableFuture提供了一种更加灵活、高效且易于使用的方式来处理并发操作和异步任务。它允许开发者在计算完成后添加回调函数,从而实现对异步任务执行结果的监听和处理。这篇博客的时候,没有找到比较好的一个学习demo,故在此整理一下。

2023-08-05 08:23:04 773

原创 使用es必须要知道的一些知识点:索引篇

如果你的批量太大,它们会占用过多的内存。分区规则不一致:不同的索引模板可能具有不同的分区规则,例如按时间分区、按地理位置分区等。当批量处理器处理多个索引模板的请求时,如果分区规则不一致,会导致数据在不同的分区之间不均匀分布,影响查询性能和数据的存储效率。当Elasticsearch被用作大数据量存储中心时,尤其是从Mysql迁移数据进来的情况下,我们很多场景下其实无需对字符串分词,也就是说字符串存储不使用es中的。管理复杂性:处理多个索引模板的请求会增加管理的复杂性,包括索引模板的创建、更新和删除等操作。

2023-07-23 16:36:18 4859

原创 es BulkProcessor踩坑记录:es索引模板生成索引分区不正确

BulkProcessor 是 Elasticsearch 的一个高级客户端 API,它允许您在一次批量操作中执行大量的索引、更新和删除请求。索引模板分区结果为什么会不正确?本文给你答案

2023-07-01 21:02:38 708

原创 Mysql事务隔离级别是怎么实现的?

Mysql的事务隔离级别是由Mysql的各种锁以及MVCC机制来实现的。不同隔离级别存在的问题:在Mysql Innodb存储引擎下,RC、RR是基于MVCC(多版本并发控制)进行并发事务控制的。先来看一个问题,先想一下在不同隔离级别下,事务D读取到的内容是什么?Undo Log版本链RC隔离级别时的ReadView:修改隔离级别完整设置语句案例:设置全局隔离级别为读提交级别。隔离级别演示Mysql事务操作Mysql事务开启有两种方式:InnoDB里面每个事务有一个唯一的事务ID,

2022-12-06 07:30:00 833 1

原创 按规范初始化的服务器

拿到一台Linux服务器后,我们最好做一些初始化,以便在未来使用的时候能够更加顺手。每一个团队都应该形成各自的服务器管理规范,从而为自动化做好准备,同时也方便内部的沟通、协调……

2022-12-05 07:30:00 190

原创 Linux常用的两种防火墙

linux常见的两种防火墙管理中最最最常用的语句

2022-11-19 17:44:44 723

原创 互联网大厂的建表规范

顺便提一下,使用过Mybatis-plus的同学应该知道,Mybbatis-plus基于Mybatis的拦截器功能,实现了用户信息的自动转换,从而避免手工设置基础属性的值)每个业务系统从需求到实现,都会经历逻辑模型到物理模型的转换。每个团队都应统一术语,从而避免沟通交流中存在鸡同鸭讲的局面。对于命名,并没有很严苛的规定,但在同一个应用中,建议风格统一。...

2022-09-01 16:33:45 393

原创 关于Mysql的“字符串”数值转换使用

工作中遇到Mysql的字符串转数值问题该怎么处理?

2022-08-06 09:31:05 2200

原创 Zipkin-mysqlConnector8.0 sql拦截器

Connector8.0 sql拦截器官方提供了2个java文件:TracingExceptionInterceptor.java/* * Copyright 2013-2020 The OpenZipkin Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License..

2022-05-07 16:27:15 1643

原创 Sentinel限流规则使用总结

Sentinel限流/熔断规则目前Sentinel支持以下三种限流/熔断规则:基于资源限流(Flow Rule)、系统自适应限流(SystemRule)、系统熔断降级(DegradeRule),sentinel还支持基于授权的限流(AuthorityRule),其父类为AbstractRule。网关限流原理另外,Sentinel还支持网关限流,说到底就是Filter限流,控制限流资源范围。其实现原理为为Servlet添加了一个CommonFilter,doFilter方法如下:public void

2022-04-01 23:02:16 4867 2

原创 使用Axure+svn+httpd搭建自己的在线画图工具

文章目录一、为什么要画图?二、Axure团队项目搭建三、Axure团队项目拉取四、​搭建Apache服务使用http协议访问svn安装httpd配置httpd添svn.conf配置配置http用户名密码认证文件 `/data/work/svn/passwdfile`配置/etc/httpd/conf/httpd.conf设置防火墙和Selinux设置权限测试http方式访问svn总结一、为什么要画图?随着经验、软件复杂程度的提升,我们程序员也一定会越来越注重文档编写,文档写过程中呢,我们就不可避免的要去

2022-03-20 13:12:30 3070

原创 你的公司适合建设业务中台吗?

文章目录一、为什么要使用中台二、业务中台是怎么支撑业务的?有何优缺点?中台抱大业务的大腿,小业务抱中台的大腿中台并不总是能够提炼共性需求中台的"轮子”会不断变化,业务被动升级中台是某类业务的中台三、中台实施可以达到什么样的效果?中台的效果,我认为是这样的中台的效果,实际上是这样的四、对建设中台的几个建议五、QA平台和中台有什么区别?一、为什么要使用中台可以让各业务部门保持相对的独立和分权,保证对业务的敏感性和创新性;另一方面,用一个强大的平台来对这些部门进行总协调和支持,平衡集权与分权,并为新业务新部门

2022-02-26 08:00:00 439

原创 使用ssh隧道“升级”你的堡垒机网络

一、什么是隧道?用子涵的大白话来讲,隧道就是一种代理转发机制,其基本步骤为:创建代理:把堡垒机的能力,在本地PC创建一个代理服务;代理服务使用:本地PC或其他PC则可以直接使用代理服务,实现堡垒机的功能。二、ssh隧道使用场景首先我先介绍两种常见的使用ssh隧道的场景:2-1 解决访问内部应用1、PC是开发者电脑,Server是内网服务器;2、PC连接VPN后,可以访问Server1,但无法访问Server2-4中的服务。如果我们想在VPN环境中访问Server2-4的服务该怎么办?

2022-02-18 10:31:55 1480

原创 Netty池化内存分配流程详解

文章目录Netty内存分配Netty内存分配对象Netty内存池化过程Netty内存划分——Arena参考资料Netty内存分配如果是在堆上分配内存空间将会触发频繁的 GC,在堆外内存使用方面,Netty 自己实现了一套创建、回收堆外内存池的相关功能。本文是围绕Netty堆外池化内存的分配流程,总结了Netty是怎么向操作系统申请内存的?Netty申请到内存之后又是怎么管理的?Netty内存分配对象ByteBuf是Netty整个结构里面最为底层的模块,主要负责把数据从底层I/O读到ByteBuf,

2022-01-05 22:26:50 855

原创 Elasticsearch:如何基于Script实现按照text属性值的字符串长度排序

Elasticsearch Script脚本使用填坑,如何基于Script脚本实现text属性按长度的排序规则?

2021-12-18 11:07:03 2781

原创 技术人成长之源码阅读心法

十年Java,我总结了技术人成长过程中应该知道的源码阅读心法~

2021-12-12 16:40:49 1277

原创 Git指北:提交不上去的分支

文章目录背景说明操作步骤1. 查分支状态2. 建新分支dev3. 拉取已有分支4. 合并到当前分支5. 验状态背景说明同事有个git项目不能在IDEA中push,分支显示是灰色的,也不能切换分支。分支信息显示为:HEAD->d6b079ff。操作步骤经过一番探索,此类问题解决方式如下:1. 查分支状态查看分支状态,显示不在任何分支上——“Not currently on any branch”:E:\dwlijx_code\crm_pro>git statusNot curren

2021-11-01 20:52:10 1389

原创 CanalClient:认识Message和FlatMessage

概念与总结Message和FlatMessage什么区别?Message和FlatMessage都有各自对应的Handler。FlatMessage在网络中传播过程中是一个json;而Message比较接近字节码数据,传输效率高,但需要反序列化;public class Message implements Serializable { private static final long serialVersionUID = 1234034768477580009L; priv

2021-10-27 10:21:25 2495

原创 接过火炬,升级canal-client-springboot-starter,一个支持rabbitmq的CanalClient

探索之路升级canal.client支持rabbitmqcanal-client-springboot-starter引用jar包canal-client升级1.1.5。<dependency> <groupId>com.alibaba.otter</groupId> <artifactId>canal.client</artifactId> <version>${canal-client.version}

2021-10-26 15:50:55 1333

原创 CanalClient卡死宿主服务原因分析

文章目录背景说明GC日志canal Server日志jstack查看dump日志解决方案临时解决方案:最终解决方案:背景说明数据库进行大批量数据更新的时候,会导致集成Canal client所在的服务无响应。首先,大批量的数据更新一定是会超过单个节点的负载能力的;但是,我们此篇就是要分析一下到底是什么地方导致了服务无响应的问题。首先先查看了CPU、内存信息,没有问题。当时怀疑了两个点:线程死锁;GC时间太长。GC日志查看进程的GC状态,也没有问题。[root@localhost zhe

2021-10-15 13:44:15 1001

转载 七种方式在SpringBoot初始化时搞点事情

文章目录二、容器刷新完成扩展点1、监听容器刷新完成扩展点`ApplicationListener`基本用法易错的点高阶玩法2、`SpringBoot`的`CommandLineRunner`接口3、`SpringBoot`的`ApplicationRunner`接口二、Bean初始化完成扩展点1、`@PostConstruct`注解2、`InitializingBean`接口3、`@Bean`注解的初始化方法4、通过构造函数注入Bean初始化完成扩展点执行顺序?我们经常需要在容器启动的时候做一些钩子动作,

2021-09-28 17:14:24 160

原创 es基于ik分词器“长”关键字wildcard匹配不到数据

文章目录问题描述问题分析mapping分词器设置分析猜想修改属性配置总结问题描述用一句话总结问题便是:使用ik分词器,“长”关键字wildcard搜索不到数据。最终解决方法是没有再使用ik分词器匹配,如有朋友们有更好的方案,欢迎留下您的脚印????????。POST /lpm-company-dev/_search{ "query":{ "bool" : { "must" : [ { "bool" : { "shou

2021-09-24 16:46:42 3296

原创 Anaconda环境安装问题

文章目录Anaconda环境安装问题问题1:current_repodata.json找不到解决方案问题2:ssl模块不可用Anaconda环境安装问题问题1:current_repodata.json找不到新建conda环境报错C:\Users\Lijx>conda create -n pytorch python=3.7Collecting package metadata (current_repodata.json): failedCondaHTTPError: HTTP 00

2021-08-15 19:57:58 2574

原创 Netty堆外内存泄漏如何应对?

文章目录一、背景二、Netty堆外内存回收机制什么是堆外内存?Netty堆外内存回收机制具体如何?如何回收?三、堆外内存监控配置反射监控堆外内存服务器上监控堆外内存四、其他案例一、背景开发过程中,我们遇到了堆外内存泄漏的问题——服务会出现假死现象(看似服务进程还跑着,但是没有业务响应)。查看logback的error日志中记录下下面的信息:[location-center:192.168.5.14:8017] [,] 2021-07-27 09:38:39.640 ERROR 53950 [lett

2021-08-11 12:29:45 1254

原创 @RequestParam、@RequestBody不够用?一起来看Springboot如何自定义参数解析器

文章目录场景自定义注解解析接口入参1. 添加自定义注解2. 定义参数解析器3. Spring注入参数解析器使用方法参考资料场景Springboot参数接收方式,提供了@RequestParam、@RequestBody,还有@RequestAttribute、@PathVariable。但是有的时候,接口入参只需要一个参数,如果将一个参数封装成一个对象显得有些麻烦且没有必要。我么可以通过自定义注解实现,参数的自动解析和赋值。自定义注解解析接口入参1. 添加自定义注解import java.lang

2021-08-10 16:10:50 843

转载 Nacos多环境下如何“管理”及“隔离”配置和服务

文章目录前言Namespace如何进行配置和服务的管理、隔离创建和获取NamespaceIDNamespace实施方案1Namespace下新建配置文件创建项目启动工程Namespace实施方案2场景描述新建Namespace和配置文件修改项目的配置文件bootstrap.yml启动项目问题描述总结参考与感谢前言前景回顾:Nacos(五):多环境下如何“读取”Nacos中相应环境的配置Nacos(四):SpringCloud项目中接入Nacos作为配置中心现如今,在微服务体系中,一个系统往往被

2021-07-02 10:04:54 489

原创 用什么手段可以把linux服务器的CPU跑在50%左右?

文章目录需求背景用什么手段可以把CPU跑在50%左右?1-1 创建Python死循环任务1-2 创建cpu任务需求背景项目初期申请的服务器资源,其实很难得到充分的使用。今天收到客户说要进行服务器使用率的检查,否则就要进行降配处理。需求虽然不常规,但存在即合理。用什么手段可以把CPU跑在50%左右?实现思路:分配50%CPU给cgroup任务;然后把该资源组分配给死循环进程。实现步骤:1-1 创建Python死循环任务centos7自带python2.7,所以我们使用Python

2021-06-28 18:28:03 2507 2

原创 2-2 Byte数组与缓冲区基础

文章目录第一节 byte数组基础一、Byte数据类型数据转换数组截取数组合并第二节 缓冲区基础一、缓冲区基础limitposition(位置)mark(标记)二、非直接缓冲区和直接缓冲区非直接缓冲区直接缓冲区第一节 byte数组基础一、Byte数据类型Bit 意为"位"或"比特",是计算机运算的基础单位;Byte 意为"字节",是计算机文件大小的基本计算单位。1 bit 就是1位二进制数,比如 1 或者 0;1 Byte 就是 1 个字节,1 个字节是由8个二进制位组成的。比如1111111,000

2021-06-09 21:49:04 738

原创 2-1 Socket家族的基石

文章目录一、什么是 socket?Socket通讯的基础流程缓冲区(Buffer)单播、广播、多播二、Socket的基础操作ServerSocket类Socket说起905.4王国,Socket家族可谓功不可没。可以这么说,没有Socket家族的技术背景,905.4王国根本无从谈起。本节总结一下,我们在学习Socket编程的时候,需要知道的一些基础性概念。一、什么是 socket?socket 的原意是“插座”,在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定

2021-05-28 23:07:21 124

原创 1-2 认识905.4王国的交流规范

遥知兄弟登高处,遍插茱萸少一人。在计算机技术栈的世界里,其实也有故事。今天就让我们来一起窥探这个IT技术界JT/T 905.4-2014王国(以下简称905.4王国)的生存故事。核心功能通信方式905.4王国是个纪律严明的国度,长久以来,便形成了有问必答的一个交流方式。不像人类那么复杂,会因为情绪的问题刻意避开问题,显得那么不礼貌。这个王国有总是会分为两个派系,Server(上级平台)和Client(下级平台)。一个无休止的问,一个无休止的答。上级平台与下级平台之间应采用面向连接的链路通.

2021-05-25 22:42:18 124

原创 1-1 前言 为什么要学习Socket编程

文章目录课程介绍实战案例课程特点章节介绍学习方法结束语课程介绍学习本课程,你将收获:轻松理解Socket编程中的核心概念及应用场景;快速而整体掌握Socket中的在项目中的实际应用案例;解读并通过编码实现交通部905.4-2014数据交换协议核心逻辑;你好,我是子涵,大学主修通信工程,互联网公司工作近8年,现任上市公司软件技术架构师一职。经过多年的摸爬滚打,深深的体会到学习编程的最好方式就是通过项目历练,才能更好的“打怪升级”。子涵认为,作为一个IT人,对技术的关注点除了从SSH、SSM等

2021-05-20 23:31:59 227

原创 阿里云ACP考试复习心得,文末送福利~

本节就和大家聊一下,ACP考试的一些心得。获取相关复习材料的同学可以查看另一篇《菜鸟架构师爆肝分享!云计算ACP考试学习资料!!》。对于考试,我们都会有一些原始紧张????在里面的。上班累如狗,还得ACP。一次考试不光是对注意力的一种考验,甚至是体力。题型变化笔者是在2021年4月参加阿里云ACP考试的,差不多集中复习是在最后半个月,利用下班时间完成复习的,最终获得了91分的成绩。考试过程中发现,题目把判断题取消了,现在的题目组成是这样的:60题单选,40题多选,每题1分,80分通过。有题库中的考

2021-05-04 11:19:38 564 5

原创 没错,我把这个协议(JT/T 905.4-2014)实现了!

文章目录905.4-2014协议协议约定内容技术要点第一次遇到和客户做数据对接,客户不需要提供任何接口的场景……905.4-2014协议905.4-2014协议,是交通运输部公路科学研究院起草定制的一个协议标准,它也是基于TCP之上的一个应用层传输协议。协议详情,请参考此文。谈谈我对这个协议的理解。首先,我们知道,互联网的数据是由0和1构成的,我们在浏览器中能看到对应的数据,是因为浏览器接收的数据遵循了一定的规范,专业点讲就是协议。http协议就是这样的一个协议,它把传输在网络中的数据变得

2021-04-28 21:56:49 1503

原创 nginx动静分离中的雷,你踩过吗?

今天子涵先生见到了另外一种动静分离的配置方式,nginx产生了诡异的问题,配置的静态资源无法访问了!今天老板又从客户那里带来了告急问题~说主页访问不了经过nginx的排查,发现连静态页面都无法访问。经过仔细的排查、测试,终于真相大白。带雷的配法该服务中的nginx是这样配置的,我们把它称为配法一:server { listen 80; server_name xxxxx.cn www.xxxxx.cn; location / {

2021-04-22 23:23:53 161

原创 HashMap实验:容量、阈值,知多少

文章目录HashMap的几个概念子涵提问实验工具类源码解读结论HashMap源码已经在面试过程中,被问烂了,不过这里有太多细节了,我相信这个问题永不过时。不信,你来试试?HashMap的几个概念容量:大于初始容量参数的最小2次幂;负载因子:HashMap扩容条件的一个参数,默认为0.75f;阈值:容量与负载因子的乘积;子涵提问那么,你知道new HashMap(16)与new HashMap()的初始阈值分别是多少吗?实验工具类public class HashMapTest

2021-04-10 11:39:57 1162 2

原创 菜鸟架构师爆肝分享!云计算ACP考试学习资料!!

文章目录一、考试很多种,该选那一项?1-1 ACE和ACP互联网架构有何区别?1-2 ACP的各个专业该如何选择?1-3 考取云计算还是企业互联网架构?二、总结三、亲手爆肝资料分享一、考试很多种,该选那一项?1-1 ACE和ACP互联网架构有何区别?阿里云云计算架构师认证所需的报名条件:1、 具备阿里云ACP云计算认证证书,报名需提供证书原件;2、 具备5年以上云计算领域工作经验,报名需提供个人介绍;1-2 ACP的各个专业该如何选择?相关阅读:五种阿里云ACP专业技术认证,你应该怎么选?针

2021-03-27 16:59:38 1286 4

从NIO到Netty,编程实战出租车905协议-08172347.pdf

905.4-2014协议,是交通运输部公路科学研究院起草定制的一个协议标准,它也是基于TCP之上的一个应用层传输协议。 第2章,介绍在Socket编程过程中一些基础知识,让大家建立起对这块知识内容的一个整体轮廓; 第3章,结合905.4-2014协议的基本内容,动手实现NIO长连接服务端的实现,以及协议内容的设计和实现思路; 第4章,实现长连接客户端,以及采用多线程技术进行系统性能测试; 第5章,介绍Netty相关基础知识,并使用Netty实现长连接服务端的编码。 适用人群 具有一定的Java开发基础; 学习Java开发领域Spring框架之外的东西; 想快速通过实战项目提升个人能力的同学。 想通过实战入门NIO、Netty。

2021-06-11

xls转换为xlsx的exe工具

这是博主开发的xls批量格式转换工具,用于把一个文件夹下的多个xls文件自动转换为xlsx。 - 选择文件夹; - 打开文件夹,即可实现批量xls转换为xlsx。

2020-10-06

VirusBroadcast-master.zip

《计算机仿真程序告诉你为什么现在还没到出门的时候》源码 https://v.hoopchina.com.cn/bbs-editor-web/56607617149595/1580808307076_999..mp4?auth_key=1581051317-0-0-dcd92b9d0a8b4c47eecbc22f5067320c

2020-02-07

omohfhadnbkakganodaofplinheljnbd-1.5.1-Crx4Chrome.com.crx

小幺鸡官网提供的帮助文档中无法从谷歌插件官网下载浏览器插件,特收集至此。 tips:插件安装后需要重启浏览器才能生效。

2019-07-31

hive-jdbc-0.7.0-pentaho-1.0.2.jar解决kettle取hive数据乱码

使用kettle抽取hive中的数据时,遇到了取数结果乱码的问题。替换此包可以解决

2015-12-21

小草手把手教你LabVIEW仪器控制

非常好的教程,适合新手观看。是从论坛的一个系列的帖子整理出来的,比较珍贵,而且文字通俗易懂。经典! 一,开篇词...............................................................................................................................3 二,VISA 驱动下载安装篇: ................................................................................................5 三,安装使用仪器现有驱动...................................................................................................7 四,初识VISA 串口.............................................................................................................12 五,VISA 串口配置..............................................................................................................19 六,字符串处理.....................................................................................................................27 七,通信协议(指令).........................................................................................................30 八,使用虚拟串口.................................................................................................................34 九,使用串口调试小助手.....................................................................................................37 十,常见问题举例分析.........................................................................................................40 十一,生成EXE 和SETUP 的问题.....................................................................................42 十二,结束语.........................................................................................................................48 串口常见问题总结:.............................................................................................................50

2014-05-26

c语言实现最小公倍数程序

最小公倍数简单的c怨言程序,实现大数的分解

2012-10-20

空空如也

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

TA关注的人

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