![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 60
一个东北来的程序猿
这个作者很懒,什么都没留下…
展开
-
Mysql主从配置
修改从库配置 这里的后面两个值就是上面主库查出来的如果配错了 需要停掉从库服务 stop slave;第一步登录mysql。原创 2023-10-17 14:30:35 · 204 阅读 · 0 评论 -
记一次通过arthas+profilier解决队列内存爆炸问题
arthas 解决 disruptor的ringbuffer 内存过高问题原创 2022-09-23 14:07:02 · 706 阅读 · 1 评论 -
记一次 while(true) 产生的CPU爆满
背景最近工作中碰到一个问题测试系统稳定性的时候发现 CPU 一直爆满经过多方面排查 发现是多处用了while(true)处理办法在while(true) 的代码中加一个 Thread.sleep(1)即可事后思考为什么呢 那就得回顾一下操作系统相关的知识操作系统的 CPU 现在可能有四核、八核、16核 但是我们打开tomcat线程数一看有120多那么操作系统的 CPU 就要有正确的调度规则 , 操作系统中有很多算法 Unix系统使用的是时间片算法,而Windows则属.原创 2022-01-19 16:38:24 · 2084 阅读 · 1 评论 -
Gradle|Maven多模块开发解决循环依赖
前提纪要公司目前是gradle多模块开发 没有用到传统互联网公司的分布式 springCloud、dubbo等差不多是20个jar包 一个底座war 依赖所有jar包有公共模块framework、core等问题出现前面说过是多模块开发 其中有两个模块比较特殊一个是 定时调度暂且称为T、一个是数据抽取Etl 暂且称为E目前的业务要求是T需要调用E中的运行方法、E需要获取T中的定时运行状态以及记录按照分布式的解决方法很简单就利用Rpc相互调用方法就行了 也不存在直接依赖关系如图解决原创 2021-10-14 16:02:50 · 1171 阅读 · 0 评论 -
LeetCode---剑指 Offer 22. 链表中倒数第k个节点
题目输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题+ 从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lian-bi原创 2021-09-02 11:31:56 · 130 阅读 · 0 评论 -
Java---文件指定行添加内容
/** * 指定路径文件 从 flagStr 按行添加 writeContent * @param writeContent * @param path * @param flagStr * @throws IOException * @throws URISyntaxException */ public static void write2File(List<String> writeContent, String原创 2021-08-11 17:46:41 · 2682 阅读 · 0 评论 -
jar包读取资源文件报错:找不到资源文件(No such file or directory)
现象先看一段代码File readFile = null; try { String path = this.getClass().getClassLoader().getResource(fileLocation).getPath(); readFile = new File(path); } catch (Exception e) { logger.error("=================原创 2021-06-15 13:48:28 · 2333 阅读 · 1 评论 -
记一次由于 TCP 连接过多引起的错误 java.net.SocketException: Too many open files
背景最近项目开始集成测试,测试同学会不停打入数据测试稳定性所以问题就这么出现了现象以及分析项目启动报错Caused by: java.net.UnknownHostException: xxxxmysqlat java.net.InetAddress.getAllByName0(InetAddress.java:1281)at java.net.InetAddress.getAllByName(InetAddress.java:1193)at java.net.InetAddress.原创 2021-06-07 16:03:49 · 1013 阅读 · 0 评论 -
Synchronized锁机制详解
锁是一种怎样的存在一个简单的日常的生活的例子:如果有人问你怎样保证自行车不被偷走,肯定回答上锁就行了呗。类比如果有人又问你多线程情况下怎样保证数据安全性,上锁就行了呗。所以程序世界中的锁到底是什么样子呢Synchronized...转载 2021-05-13 15:35:11 · 443 阅读 · 0 评论 -
工作流之Camunda开发记录(三)---- 监听器的基本使用
前情纪要前面我记录了camunda的基本使用传送门还有用户任务和服务任务 以及 全局变量的使用传送门目前camunda已经可以正常运行,但是不正常的时候我们怎么办,就需要用到监听,需要程序帮我们盯着他看,到底执行到哪了,到哪坏了,方便事后查错(ps:我就是干这个用)还有前端实时显示目前工作流执行情况监听器简介监听器顾名思义,就是监听的机器(/手动滑稽),言归正传 这里我用到的监听大概有三种分别是start:启动监听 不能加在序列流上面end:结束监听 不能加在序列流上面ta原创 2021-05-07 15:35:00 · 5498 阅读 · 13 评论 -
工作流之Camunda开发记录(二)---- 用户任务、服务任务、全局变量的使用
前言上篇文章我们简单介绍了工作流的发布与启动直通车这篇文章 我们介绍几种常用任务与全局变量的使用全局变量会穿插在任务中介绍 不会单独列出来了奥用户任务用户任务 可以理解为我们常说的审批,工作流本身的意义在于自动执行某些业务逻辑,然而用户任务打断了所谓的自动,用户任务需要用户进行审批通过才能继续执行当前流程实例既然是需要审批的 那么就需要一个审批人,这个审批人Camunda 本身是维护一个用户列表的 但是使用中肯定是不方便的,我看其他有些人是通过把自己的用户信息同步到Camunda原创 2021-05-03 14:10:33 · 5474 阅读 · 12 评论 -
工作流之Camunda开发记录(一)----常用API与流程
它是什么 一种工作流引擎,是Activiti的变种,他怎么来的其他很多地方有介绍 我不怎么关心做什么 我本次记录的是作为工作流引擎使用 进行二次封装开发 只用他的一个壳子 具体流程是: 1、前端传他自己的Json结构。当然必要时需要添加后端定制化的东西 2、后端解析为Camunda识别的Json结构 3、解析中需要通过camunda 的 用户任务与服务任务调用自己业务的逻辑 4、发布流程定义原创 2021-05-03 13:25:00 · 10872 阅读 · 15 评论 -
Java实现登录与注销--JWT(2)
上文介绍了JWT的创建 与 拦截器的配置这篇基于上篇文档jwt生成token后的在登录中的具体使用(ps:因为我也是探索使用 所以陆续更新。有好的建议也欢迎指出)首先拦截器和 JwtTokenUtil我重新放一个。可能会有些许区别此篇文章加入了会话管理token的存储。当然你可以自己切换为redis管理。因为隐私问题 不方便透漏包名。请自行添加 若少什么不会的东西 可以留言 我会提供/** * @author chunying * @Date 2020.12.06 * @Descript原创 2020-12-15 17:14:46 · 2063 阅读 · 11 评论 -
java手动实现JWT(我和别人的不一样)
JWT是啥我不会官方语言,我只会最简单的解释 json web token为什么要用这个东西简单点说 现在都流行前后端分离开发,如果需要一个前后端的通讯验证,最简单的cookie+session可以完成这个任务。但是会有问题昂,万一给你浏览cookie器禁了咋整,现在的用户才是老大哥不是,所以呢 就出现这个东西了它能干点啥网上一搜一大片最多的就是。单点登录 + jwt。但是这两个东西不是一定要混为一谈的。jwt是jwt 简单点 他就是提供了一点token验证的方式,而不是一定要去作单点登录。(原创 2020-12-08 13:54:39 · 669 阅读 · 0 评论 -
20201122---整理面试问题
最近回北京重新找工作,面试(2.5年工作经验Java开发)也没好好准备背题啥的,就直接上阵了,那肯定是会被怼的现整理一波不会的不熟的以作记录 我也没查正确答案 完全就是自己的理解不分先后,想起来啥写啥1、MySQL优化 这个是必问的 我就把日常会用到的说一说 欢迎大神补充重点a)表结构:用适用字段,能用int不用vachar 前者对于mysql来说处理速度是比较快的b) sql语句:一般就是从sql优化说起来,sql优化一般就是从索引说起来,要适量加索引,这里可以展开说好多关于索引的东西原创 2020-11-22 22:45:03 · 143 阅读 · 0 评论 -
记一次奇怪的白屏之旅
前情纪要好久没写博客了,因为最近真的很忙,最近要补上几大篇,就从前几天一次诡异的白屏开始。新年之后返工接了一个迭代的项目,几个月从V1.1迭代到了V1.4。进入正题先说下业务手机端,大概就是一个携带appid和业务域名等等的链接,前端在跳板页通过重定向链接拿到code值去后端换openID 其余都是正常业务,和微信无关了。唯一有关的是在微信浏览器,入口要走公众号。从1.0版本开始 陆续有售后反映说访问手机端偶尔会白屏。一直没查出是什么原因,上线的那个晚上,甚是难熬,后端几乎没什么问题,前端小姐姐,原创 2020-05-13 18:05:00 · 264 阅读 · 0 评论 -
阿里云内容管理图片校验简单使用
最近在搞论坛 论坛可以发图片和文字,所以要保证图片文字的安全性对于文字校验 之前发过一篇DFA文字校验的 https://blog.csdn.net/java_ying/article/details/102902525这篇主要记录阿里与图片校验的使用其实使用步骤阿里云官网已经介绍的很完全了(认真脸,可能是实习生写的文档吧,唉)sdk写的也很棒(哪个人写的,出来我绝对不打死你)1、首先你...原创 2019-11-07 16:04:52 · 1899 阅读 · 1 评论 -
基于DFA算法实现文章敏感词过滤
最近公司要出一个论坛系统系统设计完全由我个人实现因为最近貌似xxx查的也比较严,所以图片和文字安全一样要注意其中文字就涉及到敏感字过滤的问题目前大概流传两种解决办法:1、利用分词器分词实现过滤 比如见得比较多的 IKAnalyzer2、利用一些效率优秀的算法 比如DFA算法DFA算法 中文称作中文有穷自动机 解释:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有...原创 2019-11-04 18:34:18 · 1285 阅读 · 3 评论 -
dubbo之奇怪的问题---No such application config Please add dubbo application name=...
今天调dubbo我是客户端 于是写好了代码测试 就发现了这个错误项目是springboot + dubbo xml配置搜了好多地方没有一个正确的答案 github好像有人提问也没有人解答至今我也不知道为什么 只知个大概 和我的解决办法 仅供参考dubbo读取配置文件 首先会读xml然后会去找dubbo.properties这个错误的意思是 没有读取到配置文件中 dubbo:app...原创 2019-10-24 00:07:08 · 21344 阅读 · 20 评论 -
Java基础知识-----String字符串 如何从a截取到b
今天有这样一个需求 从文章内容中截取出图片的链接。于是有了下面这个方法public class StringUtil {public static List<String> getHref(String param) { List<String> results = new ArrayList<>(); //参数是 正则表达式 从 '&l...原创 2019-10-08 15:40:54 · 1337 阅读 · 0 评论 -
Java------拷贝Oracle数据库到其他环境找不到序列解决办法
背景:首先使用的是springboot 持久层是jpa(hibernate) 用的是纯注解。由于代码需要兼容mysql和oracle主键 ID是这样定义的:@Id@Column(name="xxx")@GeneratedValue(strategy = GenerationType.AUTO)这时候jpa会自动生成hibernate_sequence 的序列今天我们切换...原创 2019-05-22 19:32:27 · 1111 阅读 · 0 评论 -
Dubbo异常之Dubbo client can not supported string message记录
今天系统上线,之前没有出现错误的war包在运行时突然出现如下错误一开始我是懵逼的 这个LOG臣妾是看不懂的,一开始还以为是什么编码格式错了,找了半天发现全是UTF-8后来注意到这段异常:[DUBBO] Dubbo client can not supported string message是说dubbo 不支持字符串信息,可能是没序列化?查看配置 使用了kryo序列化再后来,用某接口工具测试...原创 2018-06-05 16:26:07 · 13738 阅读 · 3 评论 -
利用RSA加密算法 生成公私钥进行加解密
首先今天公司需要对登录接口进行升级,由原来的单线加解密改为非对称加密以及前端记住密码的功能由于不了解,于是大概搜索了一下,在此进行整理。主要是一些工具类随便一搜,最多的就是基于RSA进行公私钥加解密先说下准备工具,工具类package com.hqjl.classcard.utils;import javax.crypto.Cipher;import java.io.ByteArray...原创 2019-09-16 16:45:34 · 896 阅读 · 0 评论 -
记一次搞笑的报错经历
今天和同事聊天,突然聊到难忘的报错,突然想起有一次很搞笑的经历,觉得不错想记下来。记得那时去年十月一前夕某天第一天”啪啪啪,啪啪啪~“键盘敲击的声音不断,今天项目要上线,十月长假我就要来啦!努力一天怀着愉悦的心情进行最后一个BUG的修改以及测试~“没问题了~“ 测试小姐姐说道。“好啊 那上线”。望着窗外朦胧的月光,明天下午要集体活动,然后就放长假啦~满怀期待。哎?测试环境异常错误。...原创 2019-08-27 16:22:46 · 247 阅读 · 0 评论 -
Could Not find resource [logback.groovy] ; Cound Not find resource [logback-test.xml]
今天上线由于分支没有从master切分支,于是手动把master分支合并过来。部署时启动出现报错报错大致意思是找不到两个日志配置文件找的到logback.xml一开始没有仔细看 怀疑是 配置被改过。查看pom.xml, application.properties 提交历史 都没有相关变动继续向下看报错 出现UTF-8 字样 于是怀疑编码问题。查看logback,xml 在合并m...原创 2019-08-20 15:03:51 · 6555 阅读 · 0 评论 -
java 利用ID生成六位唯一验证码
package com.hqjl.componentconfig.util;import java.util.Random;/** * @author chunying */public class ShareCodeUtil {/** * 邀请码生成器,算法原理: * 1) 获取id: 1111111 * 2) 使用自定义进制转为:gpm6 * 3) 转为字符串,并在后...转载 2018-10-10 14:51:53 · 7578 阅读 · 0 评论 -
dubbo管理平台---dubbo-admin
直接去github下载jar包链接https://github.com/apache/incubator-dubbo然后搜索 Ctrl+F dubbo-admin 找到点击 Dubbo-Ops 下载方法自己定 这是一个Springboot 项目 找到application.properties文件 修改一下启动端口等信息然后 用maven...原创 2018-08-24 18:46:03 · 897 阅读 · 0 评论 -
Java多线程之——ThreadLocal
ThreadLocal是什么:每一个ThreadLocal能够放一个线程级别的变量,也就是说,每一个线程有独自的变量,互不干扰。以此达到线程安全的目的,并且一定会安全。实现原理:要了解实现原理,我们先看set方法public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap ma...原创 2018-07-30 17:04:43 · 297 阅读 · 0 评论 -
Java8特性----lambda表达式之Collection常见操作
现在越来越多的公司开始使用jdk8了,jdk8有许多新特性,其中一个特性便是流式处理,进而有好多对于集合的便利操作我自己也是刚开始熟悉jdk8,便在此记录一些基本的关于集合的操作 至于一些理论上的东西我就不写了,某度一大堆,因为一点点介绍每段的含义来路也不是一篇博客就能写完的,我只会简单说一下每段的意思,废话不多说,上代码先创建一下的练习会用到的类 package com.chunying....原创 2018-07-13 16:10:14 · 6865 阅读 · 3 评论 -
SpringBoot————Flyway的使用
Flyway是什么我就不再赘述了 度娘随便搜搜有很多,大概就是一个帮你打数据库脚本的东西吧..不用手动执行sql了我只是大概记录一下Flyway的使用。首先想使用一个功能模块当然要添加依赖了flyway是会扫描classpath下/db/migration下是否有sql需要执行的,所以需要创建这个目录flyway通过一张叫做schema_version 来记录每次脚本的执行...原创 2018-06-07 17:10:03 · 8165 阅读 · 0 评论 -
Java原子性操作之——Atomic包的原理分析
Atomic: Atomic包是java.util.concurrent下的另一个专门为线程安全设计的java的包,包含多个原子性操作的类。基本特性就是在多线程情况下,当多个线程想要同时操作这些类的某些实例方法时,具有排他性,也就是当某个线程在执行某个方法时,不会被其他线程打断,其他线程会在外部等待,一直等到该方法执行完毕,才由JVM从等待队列中选择另一个线程进入,这只是一种逻辑上的理解。实...原创 2018-04-19 17:39:42 · 5178 阅读 · 0 评论 -
Java源码解析之———ArrayList
ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。继承于AbstractList,实现了List,RandomAccess,Cloneable,java.io.serializable这些接口。 和Vector不同,ArrayList中的操作不是线程安全的!!!所以建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者...原创 2018-04-16 18:16:49 · 243 阅读 · 0 评论 -
Java 实现异步调用
首先 我遇到的问题是 接口调用时需要更新缓存 而更新缓存又是个说快不快的过程 所以打算做异步调用 返回我所需要的结果即可 ,至于缓存什么时候更新完 就不是我所需要关注的了废话不多说 上代码public class MyExecutor { private ExecutorService executor = Executors.newCachedThreadPool() ; publi...原创 2018-04-03 15:27:12 · 58487 阅读 · 21 评论 -
SpringCloud学习笔记(一)Eureka——服务注册与发现
最近在学习SpringCloud,记录一下学习的过程 也希望一起学习的同学一起学习,给予指导SpringCloud是基于SpringBoot的微服务架构 ,具体是什么就不讲了度娘可以找到很详细的介绍 直接上正路~首先创建一个SpringBoot作为主工程,我使用的是1.4.0版本 由于版本不一致的问题有很多 具体请看下图springboot 与springcloud版本对应具体创...原创 2018-04-08 18:29:20 · 287 阅读 · 1 评论 -
Apache-POI 设置excel单元格样式字体等
大概思路就是设置样式以及字体后添加进单元格中Workbook wb = new XSSFWorkbook();Sheet sheet = wb.getSheetAt(0);//创建单元格Row row = sheet.getRow(0);if(null == row){ row = sheet.createRow(0);}Cell cell = row.getCell...原创 2018-10-30 18:23:05 · 3387 阅读 · 0 评论 -
Java 设计模式之--------适配器模式
适配器就是一种中间件,它存在于不匹配的两者之间,将不匹配变得匹配,相当于我们常见的转接头(万恶的某果取消3.5mm耳机孔了解一下,还有那么多跟风的) 适配器有三种:类适配器,对象适配器,接口适配器 前两种有些类似 ,第三种有些许不同1、类适配器 通过继承来实现调用其他类的方法。假如有接口A和B,现在想不改变A的前提下去调用B的方法,这时就可以做一...原创 2018-11-02 16:50:24 · 173 阅读 · 0 评论 -
xxl-job基本使用
前文首先要知道它的官网http://www.xuxueli.com/xxl-job/#/首页几个大字介绍的简单明了:轻量级分布式任务调度平台开发迅速、学习简单、轻量级、易扩展然后是详细的官方文档位置,全中文喔~http://www.xuxueli.com/xxl-job/#/?id=%e3%80%8a%e5%88%86%e5%b8%83%e5%bc%8f%e4%bb%bb%e5%8a...原创 2019-08-19 17:01:12 · 10796 阅读 · 11 评论 -
springboot 1.5.x slf4j + logback 动态修改日志输出级别与actuator权限控制
首先要求springboot 版本为1.5.x之上。2.x未试验过下面我们就来看看Spring Boot 1.5.x中引入的一个新的控制端点:/loggers,该端点将为我们提供动态修改Spring Boot应用日志级别的强大功能。该功能的使用非常简单,它依然延续了Spring Boot自动化配置的实现。首先导入依赖 actuator<dependency> &l...原创 2019-07-18 16:51:51 · 1349 阅读 · 0 评论 -
Java------Synchronized和Volatile区别
Java多线程中的原子性、可见性、有序性1、原子性:原子即不能被分割,某个线程的多个操作要么都不执行,要么都执行。不能被打断。2、可见性:线程之间的可见性,多个线程共享一个变量,A线程修改,B线程立刻可见3、有序性:Java中的编译器和处理器为了提高效率是会对多个指令进行重排序,重新排序会影响多线程执行的正确性,有序性就保证的执行的顺序。1、Volatile关键字保证了2和3.不能...原创 2019-06-13 16:07:46 · 317 阅读 · 0 评论 -
面试题---------dubbo服务中zookeeper挂掉了 消费者还可以正常消费吗
答案是可以的,启动时 dubbo服务端会从服务端拉取接口信息缓存到本地 调用时直接调用本地缓存的地址,但是由于zk挂掉了 是无法注册新的服务的原创 2019-06-12 14:53:53 · 5724 阅读 · 2 评论