自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 homebrew安装

安装完后设置文件目录不然会报错Command failed with exit 128:git。

2023-03-23 23:45:18 153

原创 CSRF Token ‘null‘ 报错解决方案

Spring Security CSRF,默认是开启。CSRF默认支持的方法: GET|HEAD|TRACE|OPTIONS,不支持POST。2.配置控制当然,也可以将excluded配置为/*来规避所有url,达到和关闭一样的效果。

2022-12-04 15:38:29 1064

原创 ThreadLocal原理和使用场景

ThreadLocal是一个关于创建线程局部变量的类。通常情况下,我们创建的成员变量都是线程不安全的。因为他可能被多个线程同时修改,此变量对于多个线程之间彼此并不独立,是共享变量。而使用ThreadLocal创建的变量只能被当前线程访问,其他线程无法访问和修改。也就是说:将线程公有化变成线程私有化(空间换时间)。

2022-11-23 23:14:00 464

原创 mysql-Innodb解析

mysqlinnodb相关知识汇总

2022-11-17 10:03:51 911

原创 B端和C端

C端:Consumer(也可理解为Customer),通常为消费者、个人终端用户使用的客户端。如:微信、淘宝、网易云音乐等。B端:B端,代表企业用户商家,英文是Business,是互联网产品中的商家界面(即:管理平台)。用户通过它进行日常的商业活动,例如企业库存管理,销售统计,员工出勤考核等等。可以说,用来解决企业需求的产品,都是 B 端产品。

2022-11-15 20:41:57 2311

原创 视频编解码原理

视频编解码

2022-11-15 20:40:53 1119 4

原创 容器概念和云原生

云原生

2022-06-11 15:57:19 717

原创 docker从入门到实践-docker swarm

docker swarm

2022-06-11 15:54:59 472

原创 docker从入门到实践

docker入门

2022-06-11 15:52:51 541

原创 Java程序员日常开发提效工具(谷歌,Idea)-长期更新

各种开发常用的工具

2022-06-01 17:10:23 1900

转载 缓存穿透和布隆过滤器

缓存雪崩缓存雪崩指的是Redis当中的大量缓存在同一时间全部失效,而假如恰巧这一段时间同时又有大量请求被发起,那么就会造成请求直接访问到数据库,可能会把数据库冲垮。缓存雪崩一般形容的是缓存中没有而数据库中有的数据,而因为时间到期导致请求直达数据库。解决方案解决缓存雪崩的方法有很多,常用的有以下几种: 加锁,保证单线程访问缓存。这样就不会有很多请求同时访问到数据库。 key值的失效时间不要设置成一样。典型的就是初始化预热数据的时候,将数据存入缓存时可以采用随机时间来确保不会在同

2022-03-25 18:34:22 440

原创 mysql-innodb汇总

mysql innnodb 详解正在上传…重新上传取消相对于CPU和内存操作,我们可以看到磁盘的操作延时明显要大得多,一次磁盘搜索的延时需要10ms。假入我们某一个业务操作进行了大量磁盘读写,那可以预料到这个服务的性能肯定是非常差的,那么到底是什么原因导致磁盘读写速度这么慢呢?对于机械磁盘来说(这里先抛开SSD),它的速度主要依赖转动磁盘和移动磁头的时间,这是一种机械运动;而CPU和内存(RAM)主要是依赖电信号,这两者肯定不是在同一数量级的。磁盘io远远慢于内存操作...

2022-03-25 18:27:51 926

原创 springboot配合线程池做异步调用

线程池,异步调用

2022-03-02 14:20:32 200

原创 spring实现策略模式的几个方式

策略模式实现

2022-03-02 14:17:16 449

原创 centos6.10解决中文乱码

1、 查看自己系统有没有安装中文语言包,可使用locale -a命令列出所有可用的语言环境:看里面是否有下面四项:如果有,则不用安装,如果没有,需要重新安装,使用yum install kde-l10n-Chinese2、 修改i18n和locale.conf的配置文件第一,vim/etc/sysconfig/i18n,在里面添加如下两行代码:LANG="zh_CN.UTF-8"LC_ALL="zh_CN.UTF-8"然后执行一下,以使刚修改的文件生效:source/etc/sy

2021-12-22 17:34:29 445

原创 log4j2高危漏洞原理分析

原理分析了解2.15版本前log4j2可输出变量首先新建一个maven项目,加入log4j2的代码,我们用maven方式,只需要引入这两个pom依赖即可<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><ve...

2021-12-22 11:51:32 3329

原创 java agent

java agent实现字节码增强到过程大概是:1.修改字节码、2.加载新到字节码、3.替换旧的字节码第二步可以通过自定义ClassLoader来加载修改的字节码,第三步可以通过JVM加载或运行字节码时进行替换,那么第一步修改字节码该如何进行呢,至少大部分人时不会修改的,那么就需要使用工具来修改,修改字节码的工具主要有ASM、Javassist和byte buddy...

2021-04-13 19:11:04 61

转载 mysql binlog redo和undo日志总结

binlog二进制日志是server层的,主要是左主从复制,时间点恢复使用redo log重做日志是InnoDB存储引擎层的,用来保证事务安全undo log回滚日志保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读事务两阶段提交为每个事务分配一个XID一阶段:事务状态为prepare,redo log和undo log已经记录了对应的日志二阶段:binlog 完成write和fsync后,成功,事务一定提交了,否则回滚 发送co..

2021-04-12 16:56:21 246

原创 AQS简析

.

2021-04-12 15:47:56 80

原创 linux零拷贝简介

copy on write写时拷贝技术,也算是一种零拷贝技术,其核心思想是:当有多个调用者都需要请求相同资源时,一开始资源只会有一份,多个调用者共同读取这一份资源,当某个调用者需要修改数据的时候,才会分配一块内存,将数据拷贝过去,供这个调用者使用,而其他调用者依然还是读取最原始的那份数据。每次有调用者需要修改数据时,就会重复一次拷贝流程,供调用者修改使用。【传统io】4次用户态和内核态的上下文切换和4次拷贝那么,这里指的用户态、内核态指的是什么?上下文切换又是什么?简单来说,用户空间

2021-04-07 11:15:06 126

原创 zookepper选举机制简介

首先介绍一下两个关键的指标zxidmyid zk的选举主要根据这两个指标的大小来确定leader【zxid】zxid为64位且初始化是 0,也就是这样例如,此时你写入了zk一次,就会变成下图这样前32位变化有以下两种情况1 选举一次前32位加1,后32位重置为02 除了选举以外,当后 32 位彻底用完也会让前 32 位增加 1,因为无地可记。如下图情况,计数器再加一# 00000000000000000000000000000000 11111111111...

2021-03-29 19:46:37 142

原创 java统一异常处理工具记录

public class AjaxResult { //是否成功 private Boolean success; //状态码 private Integer code; //提示信息 private String msg; //数据 private Object data; public AjaxResult() { } //自定义返回结果的构造方法 public AjaxResult(Boolean succe.

2021-03-19 11:38:41 97

原创 mysql诊断步骤,日常问题查询步骤

【查看当前mysql链接状态】show processlist;SHOW PROCESSLIST显示哪些线程正在运行。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。如果有线程在update或者insert 某个表,此时进程的status为updating 或者 sending data。如果您不使用FULL关键词,则只显示每个查询的前100个字符(show full proc...

2021-03-18 12:35:31 188

原创 mysql索引相关知识,索引优化,分页查询优化

关于索引在 InnoDB 引擎中有三种索引:B-Tree 索引 哈希索引 (哈希索引在 InnoDB 引擎中叫作自适应哈希索引,它是由数据库自身根据你的使用情况创建的,并不能认为的干预,所以叫作自适应哈希索引,采用的是哈希表数据结构,所以对于字典类型查询就非常的快,但是对于范围查询就无能为力啦。) 全文索引(全文索引是一种比较特殊的索引,一般都是基于倒排索引来实现的,es 也是使用倒排索引。倒排索引跟 B-Tree 索引一样也是一种数据结构,在辅助表中存储了单词与单词自身在一个或多...

2021-03-15 21:04:35 145

原创 python读取redis中文乱码解决

直接用redis-cli ,后边加--raw即可解决。redis-cli -h xxxx -p xxxx -a xxxx --raw使用python#核心代码 r=redis.StrictRedis(host="10.0.147.8",port=6010,db=0,password='w876b@575', decode_responses=True)userInfo = r.get('test')print(userInfo.decode('unicode_escape'))..

2021-03-15 16:37:40 1859

原创 一些日常开发好用的在线工具推荐

Aliyun Java Initializr:https://start.aliyun.com/bootstrap.html覆盖了Spring Initializr的所有功能,又在其基础上增加了很多实用功能,它几乎可以集成当下所有主流技术,只要勾选相应的模块就可以自动集成进来。magicalcoder :http://bbs.magicalcoder.com/自动生成代码的工具,JAVA代码自动生成,还有H5样式布局器。在线正则表达式:http://tool.chinaz.com/tools...

2021-03-10 17:13:51 229

原创 skywalking自己写插件,自定义插件

此分享基于8.5.0版本的源码首先下载源码,导入idea,并且构建成功,如何构建见另一篇https://mp.csdn.net/editor/html/114141447 后边联调先不用管找到apm-sdk-plugin 在下边新建module 项目 。也可以单拉项目,这边我没有新建 直接在skywalking源码项目里建了个项目 方便提交。pom.xml(根据你自己的项目起名即可)<?xml version="1.0"?><!-- ~ Lice...

2021-03-10 16:58:34 1858 3

原创 linux-tcp并发连接数分析

linux可通过五元组唯一确定一个链接:源IP,源端口,目的IP,目的端口,传输层协议。一个端口不允许被两个及以上进程占用(一个进程可同时占用多个端口)【作为客户端】一、对于服务器来说,每一个TCP连接都要占用一个文件描述符,一旦文件描述符使用完,新的连接到来返回给我们的错误是"Socket/File:Can't open so many files"。这时,你需要明白操作系统可以打开最大文件数的限制。默认为1024 可以执行命令 ulimit -n 1000000或修改配置文件ul

2021-03-04 11:49:41 641 2

原创 sed用法记录

 代替一行或多行 [root@localhostipm]# sed '1c Hi' ab#第一行代替为Hi [root@localhostipm]# sed '1,2c Hi' ab#第一行到第二行代替为Hi Hi end  替换一行中的某部分  格式:sed's/要替换的字符串/新的字符串/g' (要替换的字符串可以用正则表达式)[root@localhostipm...

2021-02-26 17:18:19 74

原创 skywalking源码编译和自我开发项目联调

一、 skywalking源码编译 步骤其实很简单,很多博客也写过git clone https://github.com/apache/skywalking.git git submodule init git submodule update 运行./mvnw clean package -DskipTests 所有打出来的包都在目录/dist下 (Linux 下为 .tar.gz, Windows 下为 .zip)但是一般会遇到几个坑,在此说明:1.最新的skywalki...

2021-02-26 17:17:34 717

原创 java常用启动参数和调优

设置JVM内存的参数有四个:GC日志参数有:参数 功能 -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式) -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800) -XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信

2021-01-13 16:57:02 636

原创 rocketmq配合docker服务使用不消费问题记录

因为docker启动的服务 有可能出现ip相同的问题所以注册到rocketmq的消费组中的ClientId有可能会出现相同的情况,此情况可能导致消息不被消费,不断阻塞解决方法如下,在java项目中加入配置,使之注册的时候进程id有所改变。import org.apache.rocketmq.common.UtilAll;import org.springframework.stereotype.Component;import javax.annotation.Pos..

2021-01-10 12:11:31 869

原创 Rocketmq操作方式-python

#! /usr/bin/python#encoding:utf-8from rocketmq.client import Producer, Messageimport jsonimport sysimport timereload(sys)sys.setdefaultencoding( "utf-8" )'''rocketmq写入消息'''def send(): producer = Producer('test') producer.set_namesrv_addr('1..

2021-01-06 17:19:08 1040

原创 修改springboot一些三方插件默认配置

常识:在spring同一个配置文件中,不能存在id相同的两个bean,否则会报错。在两个不同的spring配置文件中,可以存在id相同的两个bean,启动时,不会报错。这是因为spring ioc容器在加载bean的过程中,类DefaultListableBeanFactory会对id相同的bean进行处理:后加载的配置文件的bean,[color=darkred]覆盖先加载的配置文件的bean[/color]。DefaultListableBeanFactory类中,有个属性allowBeanD

2020-12-23 15:14:33 172

原创 LongAdder与 AtomicLong使用场景分析

1.AtomicLong 是基于 CAS 方式自旋更新的;LongAdder 是把 value 分成若干cell,并发量低的时候,直接 CAS 更新值,成功即结束。并发量高的情况,CAS更新某个cell值和需要时对cell数据扩容,成功结束;更新失败自旋 CAS 更新 cell值。取值的时候,调用 sum() 方法进行每个cell累加。2.AtomicLong 包含有原子性的读、写结合的api;LongAdder 没有原子性的读、写结合的api,能保证结果最终一致性。3.低并发场景Atomi

2020-12-23 15:14:09 772

原创 springboot2.X 整合pushgateway推送到prometheus,最后以grafana展示

1 pom.xml中添加以下依赖 <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.1.3</version> </dependency>

2020-12-23 15:10:41 4549 2

原创 java内存泄漏的几个简单的原因

生产环境用gc日志导入下两个当中的一个分析MATJProfiler不要用jmap会导致线上服务卡住。常见的java内存泄露1 list不断增加2 new了很多线程 native内存满了3 nio 内存爆了 (Unsafe没设计好)4 System.gc()5 finalize() 大量重写6 jira 源码有问题(调整垃圾回收器为g1 并且扩大内存)7 分库分表 跨服务器查询 join出来的数据太多。 或者查询服务超时 重试 不断的添加到内存导致内存不够...

2020-12-21 21:47:16 190

原创 springboot覆盖配置文件

常识:1、在spring同一个配置文件中,不能存在id相同的两个bean,否则会报错。2、在两个不同的spring配置文件中,DefaultListableBeanFactory默认配置allowBeanDefinitionOverriding为true 会将最后加载的bean覆盖之前的bean,如果该值为false,则不会进行覆盖,而是抛出异常。此操作再allowBeanDefinitionOverriding为true的前提下进行。如此可以自己定义写第三方插件默认的bean属性,而不影

2020-12-18 17:23:17 1573 1

原创 利用python将一张图片导成横板大图和竖版大图

#!/usr/bin/env python# -*- coding:utf-8 -*-# Created by victor# 本模块的功能:<更改图片尺寸>import redisimport osimport os.pathfrom PIL import Image,ImageFilterimport urllib2import cStringIOclass MyGaussianBlur(ImageFilter.Filter): name = "Gauss.

2020-12-02 19:53:56 526

原创 关于集合切分,大集合转分散的小集合

java:List<String>list=Lists.newArrayList();intsize=109900;for(inti=0;i<size;i++){list.add("hello-"+i);}//切割大集合到指定的长度:11List<List<String>>rsList=Lists.par...

2020-11-27 18:52:03 316

springboot最小demo

springboot项目, springboot2.26,java8最小的web项目 导入eclipse或者idea,右击DemoApplication.java,run即可启动项目,非常简单哦

2020-04-29

grafana-TiDb.rar

grafana展示prometheusTiDB数据界面所需的json 监控TiDB prometheus+grafana

2020-04-20

年会抽奖 纯净台页面 js html

可用于年会抽奖的一个系统 此项目不和后台数据库交互 简单易用 项目目前无bug 解压打开Lottery.html即可应用。

2019-01-23

dubbo springboot logback

dubbo是一套基于java的高可用的分布式服务框架。由阿里巴巴开发,并对外开源。和其他RPC框架一样,在服务端声明接口服务,并实现,同时将服务注册到服务注册中心(开源使用zookeeper作为注册中心);客户端声明与服务端一致的接口,然后调用即可。

2018-10-30

java 五子棋项目

简单的五子棋程序,有人机,人人,难度中等。下载运行即可获得游戏,完整项目,需要的下载。 如有不懂的问题,可以私信或者留言我

2015-01-07

空空如也

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

TA关注的人

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