自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

半路出家的码农小王

半路出家的码农小王

  • 博客(136)
  • 资源 (5)
  • 收藏
  • 关注

原创 服务间超时处理

1-重试:客户端需要主动做好重试方案,比如类似mq的重试队列(1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h),主要的技术,spring-retry框组件,将请求扔到mq,依靠mq的重试队列主动重试,或者建立定时任务表重试。在一个很普遍的场景中,涉及到双端通信的情况下,不论是传统的单机服务,还是现在的微服务,甚至 事异步通信技术(进程内,进程与进程),一直都存在着三态的问题,即:成功,失败,超时。3-服务端处理正常,但响应结果阶段超时。

2024-01-02 20:48:18 468

原创 Java开发过程中的幂等性问题

update 操作,如果只是单纯的更新数据,比如: update user set status=1 where id=1 ,是没有问题的。如果还有计算,比如: update user set status=status+1 where id=1 ,这种情况下多次请求,可能会导致数据错误。绝大数情况下,为了防止重复数据的产生,我们都会在表中加唯一索引,加了唯一索引之后,第一次请求数据可以插入成功。第一次请求接口超时了,为了解决这个问题,可以加悲观锁,将用户A的那行数据锁住,在同一时刻只允许一个请求获得。

2024-01-01 23:02:47 1019

原创 生产问题一:redis锁处理幂等性失效

如果有两个线程a,b。如果a线程释放锁后,退出方法前,让出时间片,由于方法未执行完,此时事务没有提交,那么b线程在去数据库查询的时候仍然出来count为0,执行了insert操作,两个线程执行完该方法提交事务,此时数据库中会增加两条数据,幂等性失效。去掉@Transactional注解,这样在a线程在insert时候就会自动提交事务,a释放锁后,b在查询时候,count不等0,不执行插入操作。将锁放到到事务提交后。

2023-12-31 17:50:11 570

原创 在千万级别数据库查询中,从数据库设计,SQL语句,java等层面提高查询效率

d.索引并不是越多越好,索引固然可以提高相应的select的效率,但同时也降低了insert及update 的效率,因为insert或update时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。c.并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex 上建了索引也对查询效率起不了作用。若应用系统需要频繁更新索引数据列,那么需要考虑是否应将该索引建为索引。

2023-12-30 19:40:35 913

原创 Linux常用命令-vi

`:s/old/new/g`:替换文本中的 "old" 为 "new"- `:wq` 或 `:x`:保存并退出。- `:set number`:显示行号。- `:w`:在普通模式下进入命令模式。- `i`:在当前光标位置前插入文本。- `a`:在当前光标位置后插入文本。- `I`:在当前行的开头插入文本。- `A`:在当前行的末尾插入文本。- `p`:粘贴已复制或删除的文本。- `o`:在当前行下面插入新行。- `O`:在当前行上面插入新行。- `x`:删除光标处的字符。- `n`:查找下一个匹配项。

2023-12-18 16:03:42 48

原创 linux常用命令-sed(流编辑器)

`/start/,/end/s/old/new/g`:在 "start" 和 "end" 之间的行中替换 "old" 为 "new"。- `s/old/new/g`:将文本中所有匹配 "old" 的地方替换为 "new"。这些是一些常见的 `sed` 命令,`sed` 提供了许多功能,可以根据需要进一步研究和使用。- `-i`:直接修改文件内容,保存更改。- `d`:删除模式空间中的当前行。- `p`:打印模式空间中的当前行。- `1,3d`:删除第1到第3行。- `i`:在匹配行前插入文本。

2023-12-18 15:56:21 392

原创 MySQL中如何将Json格式字段中某个属性查出来

在MySQL数据库中,你可以使用 `JSON_EXTRACT()` 函数来解析和提取 JSON 数据中的特定字段。-- 获取 nested_key 的值。-- 检查是否存在 key2。-- 获取 key1 的值。

2023-12-18 14:31:31 521

原创 maven常用命令

这只是一些基本命令,Maven 支持许多其他命令和插件,具体取决于项目的需求。mvn install: 将项目的 JAR 文件安装到本地 Maven 仓库,以供其他项目使用。mvn clean verify: 清理项目,编译代码,并执行验证测试,确保项目符合质量标准。mvn clean install: 清理项目、编译代码,并将 JAR 安装到本地仓库。mvn clean package: 清理项目并打包,生成 JAR 或 WAR 文件。mvn package: 打包项目,生成 JAR 或 WAR 文件。

2023-12-14 16:47:33 223

原创 NACOS配置,bootstrap.properties详解

3、profile: 指定环境 文件名:${application.name}-${profile}.${file-extension}#1、只有上面的配置的时候他默认加载文件为:${application.name} nacos-config。#5、 自定义 group 配置,这里也可以设置为数据库配置组,中间件配置组,但是一般不用,#加载文件为:${application.name}.${file-extension}#nacos-config.yaml,不配置默认为properties文件。

2023-04-05 19:36:53 2400 1

原创 Linux配置多端口sftp

linux配置多端口sftp

2023-03-19 12:45:16 949

原创 连接sftp报错:packet_write_wait: Connection to ...,fatal:bad ownership or modes for chroot directory...

packet_write_wait: Connection to 127.0.0.1port 21: Broken pipe Could not read packet: connection reset by peerfatal:bad ownership or modes for chroot directory component "/path/"

2023-03-02 20:11:55 1984

原创 Shell脚本中获取机器的日期和时间

在这个示例中,我们使用了date命令和格式化字符串来获取当前日期和时间。%Y代表年份,%m代表月份,%d代表日期,%H代表小时,%M代表分钟,%S代表秒钟。要在Shell脚本中获取机器的日期和时间,可以使用内置的date命令。注意,在date命令中,字符串必须用引号括起来,以便正确解释格式化字符。

2023-02-23 21:27:45 6411

原创 查看inux系统版本

命令: 该命令是Linux基金会提供的一个用于查询系统版本信息的工具,适用于大多数发行版。命令:该命令可以显示您的操作系统的详细版本信息。根据您的系统,您可以选择上述任意一种方法来查看您的Linux版本。

2023-02-11 02:17:25 333

原创 Linux用户创建

创建用户并指定根目录为/xwuseradd xw -d /xw-o 允许用户重复-u 指定uid-g 指定分组很多参数看help信息useradd --help给用户设定密码,免人机交互,可用于脚本中echo "新密码" | passwd --stdin 用户名

2023-02-08 15:13:29 1012

原创 系统间通用返回值处理类

【代码】系统间通用返回值处理类。

2023-01-04 23:20:58 89

原创 SpringBoot项目中通过JSR-303实现后端参数校验

JSR是Java Specification Requests的缩写,意思是Java 规范提案。任何人都可以提交JSR,以向Java平台增添新的API和服务。5.校验不合法的提示信息,在Controller中通过 BindingResult对象来获取校验的结果信息,然后解析出来后封装为R对象响应。JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation。2.在需要校验的Bean的字段头部添加对应的注解。当我们提交一个非空的数据是可以通过的。

2022-12-11 12:54:00 121

原创 上传照片到阿里云OSS服务器,回显报403错误

在oss上打开公共读权限,如下图: 图片能够正常回显了

2022-12-06 23:02:54 2179 2

原创 阿里云OSS依赖无法导入的问题

版本背景:springboot:2.4.12,spring-cloud:2020.0.1在使用阿里云对象存储OSS服务时候,根据官方参考文档:aliyun-spring-boot/aliyun-spring-boot-samples/aliyun-oss-spring-boot-sample at master · alibaba/aliyun-spring-boot · GitHub出现依赖无法下载的问题,无maven配置问题,编译报如下问题 添加版本后,无编译错误,但是运行仍会报错,如下:解决:更

2022-12-04 14:09:19 1628

原创 el-tree报TypeError: Cannot read properties of undefined (reading ‘getCheckedNodes‘)解决

主要是少了一行代码,加上ref="tree"即可。

2022-12-02 22:39:12 2741

原创 解决springboot上传大文件失败的问题

解决springboot上传大文件失败的问题

2022-11-22 23:48:44 551

原创 Linux修改用户主目录(解决修改用户主目录后bash环境异常问题)

2.通过root用户修改/etc/passwd文件中的主目录为/cib。4.把原目录/home/cib下的4个隐藏文件拷贝到/cib目录。5.退出后重新登陆cib用户发现bash环境正常了。1.cib用户当前主目录为/home/cib。3.切换到cib用户,发现bash环境异常。目的:将cib用户的主目录由。

2022-11-22 23:38:30 1046

原创 sftp报错:couldn‘t read packet:connection reset by peer

在修改sftp目录的所有者和权限后报了这个错,解决:chown root:sftp /home/sftp根目录chmod 755 /home/sftp根目录

2022-09-20 09:12:41 3015

原创 No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc

【代码】No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer。

2022-09-06 22:52:05 1122 1

原创 centos7安装docker报错:Can‘t read dir of ‘/etc/mysql/conf.d/

centos7安装docker报错:Can't read dir of '/etc/mysql/conf.d/

2022-08-21 21:42:35 771 1

原创 Docker启动报错:Failed to chown socket at step GROUP: No such process

docker启动报错:Failed to chown socket at step GROUP: No such process

2022-08-09 08:36:41 2299 5

原创 排序算法四:归并排序(Merge Sort)

分治(分而治之)把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。3.依次按照递归的返回顺序,不断地合并排好序的子数组,直到最后把整个数组的顺序排好。2.一直递归地把子数组划分成更小的子数组,直到子数组里面只有一个元素。时间复杂度O(n*logn)1.把数组从中间划分成两个子数组;.........

2022-07-28 22:28:42 277

原创 linux免密

需求在root用户在A服务器免密登录xw用户B服务器查看当上用户下是否存在非对称加密秘钥,cd ~/.ssh如果.ssh目录不存在,使用ssh localhost 可生成如果rsa秘钥不存在,使用ssh-keygen -t rsa -P ""生成公私钥,将公钥发送到服务器B的.ssh目录下scp ./id_rsa.pub xw@ipB:/home/xw/.ssh/pubkey_serverBxw用户登录服务器B将pubkey_serverB内容写入authorized

2022-07-27 15:27:59 2942 2

原创 Java8新特性-Stream流

注意请暂时忘记对传统IO流的固有印象!整体来看,流式思想类似于工厂车间的“生产流水线”。当需要对多个元素进行操作(特别是多步操作)的时候,考虑到性能及便利性,我们应该首先拼好一个“模型”步骤方案,然后再按照方案去执行它。这是一种集合元素的处理方案,而方案就是一种“函数模型”。这里的都是在对函数模型进行操作,集合元素并没有真正被处理。只有当终结方法count执行的时候,整个模型才会按照指定策略执行操作。而这得益于Lambda的延迟执行特性。备注数据源流的来源。可以是集合,数组等。。.........

2022-07-17 20:34:15 267

原创 Lambda表达式二:方法引用

在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案拿什么参数做什么操作。那么考虑一种情况如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑?...

2022-07-15 08:40:40 250 1

原创 Java 内部类

在Java中,可以将一个类定义在另一个类里面或者一个方法里边,这样的类称为内部类,广泛意义上的内部类一般包括四种:成员内部类,局部内部类,匿名内部类,静态内部类 。1.成员内部类public class NormInner { private int age = 88; final static String name = "tom"; class Inner { public void m1() { System.out.prin

2022-07-14 09:00:00 125 1

原创 Lambda表达式一(Java)

JAVA8新特性,是一种匿名函数。它能够使代码变得简洁、紧凑,Lambda表达式实质上是个语法糖。必须有一个函数式接口 有且只有一个抽象方法的接口 @FunctionnalInterface注解(可选)CallableSupplierConsumerComparatorPredicateFunctionLambda表达式的语法格式基本语法函数体只包含一个语句,不需要大括号2.可选的参数圆括号()只有一个参数,省略圆括号,同时

2022-07-13 16:39:47 182 1

原创 linux设置时间和时区

linux设置时间和时区。

2022-06-24 15:20:08 76 1

原创 c盘使用100%清理方法

把这个目录下的文件全部删除,放心删,亲测清理出来60多个g的空间!

2022-06-24 12:01:31 377 1

转载 JMH(Java Microbenchmark Harness) Java微基准测试

官网:OpenJDK: jmh什么是JMH?微基准测试,他是测的某一个方法的性能到底是好或者不好,换了方法的实现之后他的性能到底好还是不好创建JMH测试 创建Maven项目,添加依赖,我们需要添加两个依赖: 1.1:jmh-core (jmh的核心) 1.2:jmh-generator-annprocess(注解处理包) <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.a

2022-05-29 22:00:13 388

原创 Hello Java,Hello world

我与Java同为九零后,目前都处于最好的年龄。Hello World作为人生第一行代码,不仅敲开了我的java学习之路,也改变了我的人生方向,成功从土木男转身程序猿。本来需要碾转在不同的工地,现在能稳定的在一个地方上班,家庭稳定,选择还是很值得。有了这一层,后来再看王小波那一句“你好哇,李银河!”,也是赋予了程序猿更多浪漫色彩。从入门Java转战IT行业到现在工作五年,经历过大大小小多个项目。普通本科毕业后进入建筑行业,再从头开始转行进入外包5年,到...

2022-05-28 10:43:05 95 5

转载 丰田五问与定位生产问题

有一次,丰田汽车公司的董事长,发现一条生产线上的机器总是停转,原因是因为保险丝烧断了。虽然每次都及时更换保险丝,但用不了多久又被烧断,严重影响整条生产线的效率。他觉得:更换保险丝并没有解决根本问题。于是,他与工人做到了以下问答:一问:“为什么机器停了?”答:“因为超过了负荷,保险丝就烧断了。"二问:“为什么超负荷呢?”答:“因为轴承的润滑不够。"三问:“为什么润滑不够?”答:“因为润滑泵吸不上油。四问:“为什么吸不上油?”答:“因为油泵轴磨损、松动。”五问:“为什么磨损了呢?”再答:“

2022-05-24 18:36:47 162 1

原创 修改maven配置文件settings.xml(阿里云镜像,下载速度快)

使用方法:先备份自己的settings.xml 然后复制下面的内容到空白的settings.xml文件中即可<?xml version="1.0" encoding="UTF-8"?><settings> <localRepository>D:\repository</localRepository><!--需要改成自己的maven的本地仓库地址--> <mirrors> <mirror>.

2022-05-22 22:49:20 3250 1

原创 基于SpringCloud实现灰度发布

目录1.什么是灰度发布?2.灰度发布有什么作用?3.灰度发布的实现方式:网关到服务,服务到服务3.1网关到服务代码实现3.1.1整体流程3.1.2前置环境(需要自行搭建四个至少服务)3.1.3核心代码3.2网关到服务代码实现3.2.1整体流程3.2.2前置环境(需要自行搭建5个至少服务)3.2.3核心代码1.什么是灰度发布?灰度发布又称金丝雀发布,是在系统升级的时候能够平滑过渡的一种发布方式。在其上可以进行A/B测试,即让一部分用户继续用产品特性A,一部分

2022-05-22 20:23:21 2451 1

转载 浅谈xss和csrf攻击

文章目录前言 一、XSS是什么? 存储型(持久型) 反射型(非持久型) dom型 二、CSRF是什么? 总结前言由于博主目前在一家主做网络安全的公司实习,之前没有意识到网络安全的严重性,现在才感受到我们的系统存在了这么多问题,很容易被黑客攻入。下面我们一起来聊一聊最常见的两种攻击方式,xss和csrf吧!一、XSS是什么?XSS 全称是 Cross Site Scripting(即跨站脚本),为了和CSS区分,故叫它XSS。XSS攻击是指浏览器中执行恶意脚本(无论是

2022-05-15 22:48:39 2468

原创 多线程实战:字母和数字交替打印(两种方式)

需求:要求1-26,26个数字和A-Z,26个字母进行交替打印,字母开头,数字结尾。方式一:通过LockSupport实现public class AlternatePrint { static Thread t1, t2; static Integer[] nums = new Integer[26]; static char[] chars = new char[26]; //生成测试数据A~Z,1~26 static { for (i

2022-05-12 15:48:55 1039 1

TX-LCN实现分布式锁 Java代码实现

TX-LCN实现分布式锁 Java代码实现

2022-04-16

RabbitMQ安装包,版本:rabbitmq-server-3.9.11.exe

rabbitmq-server-3.9.11.exe

2021-12-05

Erlang安装包,版本:otp_win64_24.1.7.exe

otp_win64_24.1.7.exe

2021-12-05

将excel转换为html

excel转html 内含demo 包含两种方式方式1 poi ,方式2 jxl

2018-04-27

文件夹复制、文件复制工具

文件夹复制(复制指定文件夹下所有内容以及文件复制工具

2018-04-27

空空如也

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

TA关注的人

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