自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (2)
  • 收藏
  • 关注

原创 常用正则表达式,持续更新

常用正则表达式,手机号,身份证号,邮编

2022-11-01 15:32:38 738 1

原创 JAVA使用xstream进行对象和xml互相转换

xstream对象和xml互相转换

2022-09-22 11:20:16 1409

原创 JVM内存结构

JDK8之前,分为新生代、老年代、持久代,新生代分为伊甸园、存活区JDK8之后,分为新生代、老年代、元空间(本地内存)

2022-08-05 10:25:30 781

原创 Mysql复杂排序

mysql复杂排序

2022-07-21 10:31:02 2472

原创 Executors新建线程池类型

Executors新建线程池类型

2022-07-08 14:49:30 369

原创 ThreadPoolExecutor中BlockingQueue的实现区别

ThreadPoolExecutor中BlockingQueue的实现区别

2022-07-08 14:16:15 270

原创 应用监控软件

应用监控软件介绍

2022-07-07 17:15:42 69

原创 JWT与token的区别

JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证

2022-06-24 15:06:47 2375

原创 java获取本年、本月、本周、本日开始时间结束时间

Java使用LocalDateTime获取本年、本月、本周、本日的开始时间和结束时间

2022-06-24 14:12:42 6112 5

原创 JAVA判断字符串中是否包含中文汉字

汉字的Unicode范围扩展了好多次了,网上的各种判断正则都是之前的,漏了很多汉字下面是最新的最全的判断正则 /** * 判断字符串中是否包含中文汉字 * * @param content * @return true至少包含1个 */ public static boolean hasChinese(CharSequence content) { if (null == content) {

2022-05-09 14:10:16 5684 1

原创 Java一个方法优雅的返回多个值

1. 使用map/** * @author liangks * @date 2022/4/26 */@Data@NoArgsConstructor@AllArgsConstructorclass Principal { private String name;}@Data@NoArgsConstructor@AllArgsConstructorclass Student { private String name;}@Data@NoArgsConst

2022-04-26 14:56:04 8189 1

原创 Gateway和Zuul对比

GatewayZuul 1.xZuul 2.x靠谱性官方支持曾经靠谱过专业放鸽子性能Netty同步阻塞,性能慢NettyRPS>3200020000左右25000左右Spring Cloud已整合已整合暂无整合计划长连接支持不支持支持上手难度略难简单易上手略难调试&链路追踪略难无压力略难...

2022-04-21 11:14:05 141

原创 Ribbon中自定义负载均衡策略一致性hash的实现

/** * 一致性hash算法 * * @author liangks * @date 2022/2/23 */@NoArgsConstructorpublic class MyRule extends AbstractLoadBalancerRule implements IRule { /** * 虚拟节点的数目,这里写死,一个真实结点对应10个虚拟节点 */ protected static final int VIRTUAL_NODES = 10;

2022-02-23 17:39:46 440

原创 客户端负载均衡与服务端负载均衡对比

客户端负载均衡服务端负载均衡开发团队灵活修改运维人员把控修改运维成本低,开发人员直接可以修改运维成本高强依赖注册中心不依赖注册中心微服务框架tomcat等传统应用

2022-02-10 18:18:43 884

原创 undertow、tomcat下临时目录tmp抛错误异常

问题场景springboot上传文件报错:java.nio.file.NoSuchFileException: /tmp/undertow.XXXjava.nio.file.NoSuchFileException: /tmp/tomcat.XXX原因分析系统长时间不使用导致临时目录被删除Spring Boot 应用以 java -jar 命令启动时,会在操作系统的 /tmp 目录下生成一个临时目录,对于http POST请求来说,它需要使用这个临时目录来存储post数据。由于临时 /tmp 目

2022-01-07 11:28:50 2626

原创 MyBatis3 Dynamic SQL中添加mysql函数find_in_set

官网地址使用Mybatis3 Dynamic Sql,发现要用mysql的函数find_in_set,但是官方没有定义,下面放扩展。主要是继承 AbstractSingleValueCondition 即可/** * 自定义find_in_set 实现 * * @param <T> * @author liangks * @date 2021年12月22日16:32:05 */public class FindInSet<T> extends Abstract.

2021-12-22 18:03:32 745

原创 java多线程处理数据

要查询的数据量过多时,分多个线程查询,查完合并,提高效率 static class ThredQuery implements Callable { private List<Integer> parms; private Object object; public ThredQuery(List<Integer> parms) { this.parms = parms; } @Override public O.

2021-11-26 15:51:12 789

原创 Json中key驼峰命名转蛇形命名(下划线)

基于FastJson实现的 public static void main(String[] args) { String str = "{\"userName\":\"tom1\",\"age\":18,\"address\":[{\"province\":\"上海市\"},{\"ciTy\":\"上海市\"},{\"disrtict\":\"静安区\"}]}"; JSONObject jsonObject = JSON.parseObject(str);

2021-11-25 17:19:48 3669

原创 mysql可能导致索引失效的场景

mysql可能导致索引失效的场景索引列不独立(列不能是表达式的一部分,也不能是函数的参数)解决方案: 事先计算好,然后传过来,或者替换为等价的SQL语句使用了左模糊使用了or查询的部分字段没有使用索引解决方案: or的字段都分别添加索引字符串条件未用’'包起来解决方案: 规范的编写sql,where name= ‘123’;不符合最左前缀原则解决方案: 调整索引的顺序索引字段建议添加not null约束(单列索引无法存储null的值,组合索引无法储全为null的值,查询时采用is nu

2021-10-09 18:36:07 99

原创 mysql创建索引的原则

应该创建索引select中经常出现在where查询条件中的字段select中多个查询条件应该创建组合索引,考虑最左前缀原则update/delete中的where条件需要分组、排序的字段可以创建索引DISTINCT所使用的字段字段需要唯一性约束的可以创建唯一索引多表关联,连接的字段应该创建索引,字段类型应该保持一致,避免隐式转换不建议创建索引where中用不到的字段表的数据非常少有大量重复数据,选择性低,比如性别字段频繁更新的字段,需要考虑创建索引的开销...

2021-10-09 18:11:51 400

原创 分布式锁的实现基于数据库悲观锁、redis、zookeeper

分布式锁在同一个jvm进程内,我们可以使用synchronized或者ReentrantLock锁,来完成对共享资源的互斥访问。然而现在大多数系统都是分布式系统,jvm进程分布在不同的节点上,为了全局数据的一致性,这个时候就需要分布式锁了。下面展示几种分布式锁的实现数据库,使用悲观锁for update机制。Zookeeper,通过创建临时的顺序节点。Redis,通过数据库悲观锁原理通过select …for update访问同一条数据实现在数据库中建立分布式锁所需的表CREA

2021-09-14 21:01:21 349

原创 RabbitMQ消息的可靠性投递

可靠性保障消息成功发送出去保障mq节点成功接收消息消息发送端需要收到mq服务的确认应答完善的消息补偿机制(百分百成功成功,需要该步骤)方案消息落库方案订单服务调用物流服务举例子在创建订单的操作的时候,把数据插入到订单相关的表中,把消息插入到消息表中,初始状态为0(发送中)把物流消息投递到消息队列中消息队列访问一个确认消息,并且由订单服务来监控mq server的确认消息根据收到的确认消息来更新数据库中的消息记录的状态为1已确认使用定时任务抓取超过5分钟未确认的消息进行重新发

2021-09-06 10:09:22 115

原创 纯JS实现的一款月日历效果

纯JS实现的一款月日历控件业务需要开发个月日历,一些独特的功能各种组件都不支持,随自己开发了,使用了纯js,没有用到第三方库,下面是剥离了业务代码的一个demo,虽然写的很垃圾,但还是记录下,如果有用的话,希望能帮到别人,直接上代码。Gitee地址:https://gitee.com/lksai/monthlyCalendar体验地址:https://lksai.gitee.io/monthlycalendar/index.html...

2021-09-02 14:24:07 852 1

原创 FastDFS安装和配置

参考文献https://github.com/happyfish100/fastdfs/wikihttps://www.cnblogs.com/leechenxiang/p/5406548.htmlhttps://www.cnblogs.com/leechenxiang/p/7089778.html环境准备Centos7.x 两台,分别安装tracker与storage下载安装包:libfatscommon:FastDFS分离出的一些公用函数包FastDFS:FastDFS本体fast

2021-08-31 17:30:01 61

原创 分布式文件系统FastDFS

什么是分布式文件系统随着文件数据的越来越多,通过tomcat或nginx虚拟化的静态资源文件在单一的一个服务器节点内是存不下的,如果用多个节点来存储也是不利于管理和维护,所以我们需要一个系统来管理多台计算机节点上的文件数据,这就是分布式文件系统。分布式文件系统是一个允许文件通过网络在多台节点上分享的文件系统,多台计算机节点共同组成一个整体。比如常见的网盘,本质就是一个分布式的文件存储系统。虽然我们是一个分布式的文件系统,但是对用户来说是透明的,用户使用就像是访问本地磁盘一样。分布式文件系统可以提供冗

2021-08-31 15:46:15 122

原创 logstash的安装与配置

介绍Logstash是elastic技术栈中的一个技术。它是一个数据采集引擎,可以从数据库采集数据到es中。我们可以通过设置自增id主键或者时间来控制数据的自动同步。id:假设现在有1000条数据,Logstatsh识别后会进行一次同步,同步完会记录这个id为1000,以后数据库新增数据,那么id会一直累加,Logstash会有定时任务,发现有id大于1000了,则增量加入到es中。时间:同理,一开始同步1000条数据,每条数据都有一个字段,为time,初次同步完毕后,记录这个time,下次同步的时

2021-08-31 11:19:10 777

原创 Elasticsearch整合SpringBoot

引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> <!--<version>2.1.5.RELEASE</version>--> <version>2.2.2.RELEASE</

2021-08-30 15:36:03 77

原创 elasticsearch集群脑裂现象

什么是脑裂如果发生网络中断或者服务器宕机,那么集群会有可能被划分为两个部分,各自有自己的master来管理,那么这就是脑裂。脑裂解决方案master主节点要经过多个master节点共同选举后才能成为新的主节点。就跟班级里选班长一样,并不是你1个人能决定的,需要班里半数以上的人决定。解决实现原理:半数以上的节点同意选举,节点方可成为新的master。# N为集群的中master节点的数量,也就是那些 node.master=true 设置的那些服务器节点总数。discovery.zen.minim

2021-08-30 15:20:37 109

原创 elasticsearch集群配置

配置集群修改 elasticsearch.yml 这个配置文件如下:# 配置集群名称,保证每个节点的名称相同,如此就能都处于一个集群之内了 cluster.name: es-cluster # 每一个节点的名称,必须不一样 node.name: es-node1 # http端口(使用默认即可) http.port: 9200 # 主节点,作用主要是用于来管理整个集群,负责创建或删除索引,管理其他非master节点(相当于企业老总) node.master: true # 数据节点,用于

2021-08-30 11:47:22 165

原创 elasticsearch批量操作bulk

基本语法

2021-08-30 11:07:30 472

原创 elasticsearch中DSL搜索

入门语法请求参数的查询(QueryString)查询[字段]包含[内容]的文档GET /{index}/_doc/_search?q=desc:张三 GET /{index}/_doc/_search?q=nickname:张&q=age:25text与keyword搜索对比测试(keyword不会被倒排索引,不会被分词)这种方式称之为QueryString查询方式,参数都是放在url中作为请求参数的。DSL基本语法QueryString用的很少,一旦参数复杂就难以构建,所以大多查

2021-08-19 11:53:39 223

原创 elasticsearch分词

什么是分词?把文本转换为一个个的单词,分词称之为analysis。es默认只对英文语句做分词,中文不支持,每个中文字都会被拆分为独立的个体。es内置分词器POST /_analyzestandard:默认分词,单词会被拆分,大小会转换为小写。simple:按照非字母分词。大写转为小写。whitespace:按照空格分词。忽略大小写。stop:去除无意义单词,比如 the / a / an / is …keyword:不做分词。把整个文本作为一个单独的关键词。...

2021-08-18 15:13:30 69

原创 elasticsearch索引的mappings映射

操作index:默认true,设置为false的话,那么这个字段就不会被索引创建索引的同时创建mappingsPUT /index_str # keyword 精确,不会被分词{ "mappings": { "properties": { "realname": { "type": "text", "index": true }, "username": { "type": "keyword", "index": false

2021-08-16 15:07:37 98

原创 elasticsearch操作命令

索引的一些操作集群健康GET /_cluster/health创建索引PUT /index_test { "settings": { "index": { "number_of_shards": "2", "number_of_replicas": "0" } } }查看索引GET _cat/indices?v删除索引DELETE /index_test...

2021-08-16 14:45:18 116

原创 ElasticSearch核心术语

核心概念ES -> 数据库索引index -> 表文档 document -> 行(记录)字段 fields -> 列

2021-08-13 16:39:59 65

原创 分布式会话

什么是分布式会话会话Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。曾经的Servlet时代(jsp),一旦用户与服务端交互,服务器就会为用户创建一个session,同时前端会有一个jsessionid,每次交互都会携带。如此一来,服务器只要在接到用户请求时候,就可以拿到jsessionid,并根据这个ID在拿到对应的会话session,当拿到session会话后,那么我们就可以操作会话了。会话存活期间,我们就能认为用户一直处于正在使用着网站的状态,一旦sessi

2021-07-26 19:53:23 88

原创 Redis集群搭建加Springboot配置

引子哨兵模式:一种集群,能够提高读请求的并发,但是容错方面有问题,如果master同步数据给slave的时候,master挂了,那个slave上的数据就没有master新,数据同步的1-2秒的数据会丢失。redis主从复制以及哨兵,可以提高读的并发,但是单个master容量有限,数据达到一定程度会有瓶颈,这个时候可以通过水平扩展为多个master-slave成为集群。redis-cluster:可以支持多个master-slave,支持海量数据,实现高可用与高并发。特点每个节点知道彼此之间的

2021-07-16 20:31:50 832

原创 SpringBoot集成Redis哨兵配置

spring: redis: database: 1 password: 123456 sentinel: # 哨兵名称 master: my-master # 哨兵地址 nodes: 192.168.1.111:26370,192.168.1.112:26370

2021-07-16 19:45:08 150

原创 Redis哨兵模式

引子使用了Redis主从复制,读写分离后,如果master挂了,如何保证可用性,实现继续读写。什么是哨兵Sentinel(哨兵)是用来监控Redis集群中master状态的工具,是redis高可用的解决方案,可以监控一个或者多个master服务,以及这些master的所有从服务,当某个master服务宕机后,会把这个master下的某个服务升级为master来替代已宕机的master继续工作。配置哨兵# 关闭保护模式protected-mode no # 端口

2021-07-14 18:41:28 74

原创 Redis缓存过期处理与内存淘汰机制

引子Redis的高并发都是基于内存的已过期的key如何处理?设置了expire的key缓存过期了,但是服务器的内存还是会被占用,这是因为Redis的两种删除策略(主动)定时删除定时随机的检查过期key,如果过期则清理删除。(每秒检查数在redis.conf中hz配置)(被动)惰性删除当客户端请求一个key时,那么redis会检查这个key是否过期,如果过期,则删除,返回nil。对CPU比较友好,但内存会占用比较高。内容被Redis缓存占用慢了如何处理?Redis提供了一套缓存淘汰机制:

2021-07-14 17:57:16 89

iframe-resizer-master.rar

iframe-resizer-master解决iframe高度自适应问题,跨域问题 iframe-resizer-master解决iframe高度自适应问题,跨域问题

2019-12-26

AxureRP8汉化

AxureRP8汉化 中文汉化 下载可用

2018-09-12

空空如也

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

TA关注的人

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