自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

itwxming的博客

互联网的好处是总有文明的道路可以走,如果在产品、技术、管理上挖掘潜力的话,可以不作恶而通向成功的道路。(布局自己的技术体系,不要被公司需求牵着走!)

  • 博客(170)
  • 收藏
  • 关注

转载 画架构图的知识集锦

参考:https://blog.csdn.net/kion0929/article/details/102667123

2020-10-19 10:17:36 227

原创 Aop切面各注解执行顺序及是否执行情况总结

@AfterReturning切点方法执行后的返回值@AfterThrowing抛出通知@After无论什么情况下都会执行的方法@Around拦截对目标方法调用,pjp.proceed();方法去调用。可用于统计调用方法执行时间。@Before在目标方法调用前调用,可在调用入口赋值全局参数都ThreadLocal,便于后续深入方法使用。此时需在After做remove。after先于afterThrowing执行。是否执行与执行顺序:try{tr...

2020-09-25 16:25:20 704

转载 Spring AOP切入点指示符的含义及使用(execution、within、args等)

execution:用于匹配方法执行的连接点;execution(* com.test.method.des..*.*(..))1, execution()表达式的主体2, 第一个“*”符号 表示返回值的类型任意3, com.test.method.des AOP所切的服务的包名,即,需要进行横切的业务类4, 包名后面的“..” 表示当前包及子包5, 第二个“*” 表示类名,*即所有类6, .*(..) 表示任何方法名,括号表示参数,两个点表示任何参数类型...

2020-09-25 11:14:54 773

转载 线上系统突然运行缓慢——CPU飙升——以及Full GC次数过多问题排查

转自:https://www.cnblogs.com/dennyzhangdd/p/11585971.html目录一、引子 二、问题复现 三、问题排查 3.1 核心排查步骤 3.2 原因分析 四、总结正文回到顶部一、引子对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考讨论提高。回到顶部二、问题复现线上系统突然运行缓慢,CPU飙升,甚至到100%..

2020-09-23 18:04:16 737

转载 redis缓存过期策略,监听redis缓存失效事件

https://blog.csdn.net/weixin_41497481/article/details/85322794场景:​​​​​​redis缓存中的缓存过期了,但是还需要用到他,然而如果设置缓存为永不过期的话,数据会越堆越多,严重占用空间。所以需要对过期缓存进行监听。在缓存过期的时候进行处理。如果还需要用到就重新加载缓存,用不到了可以不用处理。解决了有用缓存过期的尴尬,又不会造成数据堆积。过期事件通过Redis的订阅与发布功能(pub/sub)来进行分发。配置文件而.

2020-09-23 16:08:53 1672

转载 Thread的setDaemon(true)方法的作用

定义:守护线程--也称“服务线程”,在没有用户线程可服务时会自动离开。优先级:守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。设置:通过setDaemon(true)来设置线程为“守护线程”;将一个用户线程设置为守护线程的方式是在线程对象创建之前用线程对象的setDaemon方法。example:垃圾回收线程就是一个经典的守护线程,当我们的程序中不再有任何运行的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是JVM上仅剩的线程时,垃圾回收线程会自动...

2020-09-21 16:26:01 887

转载 端口状态 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT详解,以及三次握手,滑动窗口

原文:https://blog.csdn.net/zzhongcy/article/details/38851271本文根据众多互联网博客内容整理后形成,引用内容的版权归原始作者所有,仅限于学习研究使用网上查了一下端口状态的资料,我下面总结了一下,自己学习学习:TCP状态转移要点 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连...

2020-09-18 15:03:12 1626

原创 isAssignableFrom()方法与instanceof关键字用法

isAssignableFrom()方法与instanceof关键字的区别总结为以下两个点:isAssignableFrom()方法是从类继承的角度去判断,instanceof关键字是从实例继承的角度去判断。 isAssignableFrom()方法是判断是否为某个类的父类,instanceof关键字是判断是否某个类的子类。使用方法:父类.class.isAssignableFrom(子类.class)子类实例 instanceof 父类类型isAssignableFrom()方法的调

2020-09-15 14:18:34 661

原创 idea导入结构不规范的Java工程之后进行相关配置调整

idea导入结构不规范的Java工程之后进行相关配置调整:

2020-09-08 10:12:26 134

原创 OpenFeign相关配置说明

{ "groups": [ ], "properties": [ { "name": "feign.hystrix.enabled", "type": "java.lang.Boolean", "description": "If true, an OpenFeign client will be wrapped with a Hystrix circuit breaker.", "defaultValue": "false" }, { "name": "f.

2020-09-04 10:35:04 706

原创 最详细的十大经典排序算法总结(Java语言实现)

详见:https://blog.csdn.net/wq_1995/article/details/81937926

2020-09-03 10:42:34 131

原创 线程池使用——多层线程嵌套如何保证子线程全部执行完毕再做后续操作及java.util.concurrent.RejectedExecutionException报错解决

当使用线程池的时候,如果多层线程嵌套使用,在子线程提交下一级子线程没有执行完毕的情况下结束线程池,就会报错java.util.concurrent.RejectedExecutionException:也就是shutdown线程池之后又去提交线程就会报改错。如下:java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@425db396 rejected from java.util.

2020-08-21 19:00:20 6770 4

原创 单纯的Java项目打成一个可运行jar包或者普通依赖包

写一个Java工具打成可运行jar包提供使用。单纯的Java项目打成一个可运行jar包,默认运行一个主类,同时也能运行其他的main函数类。最后的运行命令:两种业务拆分线程池的实现方式#运行jar包中的某个main函数类,后面带main函数传入的参数。java -classpath imsdatamove.jar cn.com.yusys.ThreadMain 30 D:/svnku/lll.txt#直接运行jar包指定的默认主类。java -jar imsdatamove.jar 30

2020-08-20 18:42:03 1237

原创 同一个工程配置多个mq及相关@ConditionalOnSingleCandidate、@Autowired和@Resource

@ConditionalOnSingleCandidate表示当指定Bean在容器中只有一个,或者虽然有多个但是指定首选Bean。同一个工程里配置不同的mq,并且不同位置各自使用。重写RabbitAutoConfiguration这个类里实例化的bean,RabbitTemplateConfiguration下的RabbitTemplate、AmqpAdmin以及RabbitMessagingTemplate。使用的时候注入不同类名的,以及注解里指定各自name的。要注入相同类型不同名字的,

2020-08-07 02:15:57 4095

原创 记一次xxljob异常排查

我们使用开源的xxljob封装了一个job服务作为平台的job组件。有一个项目组生产上总是隔些天就会有一次异常发生,调度失败,且没什么报错信息。jobadmin、执行器服务都是三台服务器集群部署,且数据库是三台集群读写分离部署。后排查发现如下:失败的那次任务时间点上调度时,执行器服务列表是空的,导致调度失败。但那个时间点执行器服务也有注册成功的日志。再排查发现jobadmin中对应有注册清空信息,对应执行器的ip隔会就会被置为空,且三台jobadmin集群日志中都频繁出现。而后面正常

2020-07-30 18:42:06 2130

原创 并发编程09-Executor线程池原理与源码解读

一、线程池 “线程池”,顾名思义就是一个线程缓存,线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,因此Java中提供线程池对线程进行统一分配、调优和监控线程池介绍 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题: 如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一...

2020-07-29 19:49:14 355 1

原创 并发编程07-Atomic&Unsafe魔法类详解及使用(处理器如何实现原子操作;ABA问题;CAS操作;线程挂起阻塞、唤醒、锁机制;内存屏障)

详见笔记及Git示例1、什么是原子操作?2、CPU原子操作的实现方式3、Atomic相关(ABA问题)4、Unsafe魔法类(CAS操作;线程挂起阻塞、唤醒、锁机制;内存屏障)一、原子操作原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomicoperation)意为”不可被中断的一个或一系列操作”。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Inter处理器和Java里是如何实现原子操作的。 术语名称 ...

2020-07-22 18:29:26 441

原创 并发编程06-Tools&CountDownLatch&Semaphore原理与应用(CyclicBarrier等)

JUC提供的Tools之五:1、Semaphore2、CountDownLatch3、CyclicBarrier4、Executors5、Exchanger一、SemaphoreSemaphore 字面意思是信号量的意思,它的作用是控制访问特定资源的线程数目。Semaphore跟springcloud里Hystrix豪猪一样,可以做限流。怎么使用 Semaphore?1.1、构造方法public Semaphore(int permits)...

2020-07-21 10:58:56 179

原创 Spring事务传播机制详解

REQUIRES_NEW官方文档解释:Create a new transaction, and suspend the current transaction if one exists.意思是,创建一个新事务,如果当前存在事务,将这个事务挂起。也就是说如果当前存在事务,那么将当前的事务挂起,并开启一个新事务去执行REQUIRES_NEW标志的方法。先来总结一下结果:(REQUIRES_NEW一般用在内层事务,即A事务方法里又调用了B事务方法,B方法用REQUIRES_NEW这种事务。)1.标志RE

2020-06-12 16:53:21 229

原创 Linux从远程安装插件等时路径404报错找不到

在虚拟机安装Docker环境时需要先更新一些基本环境,但是那些远程地址都找不到,经常是子版本号路径已移除,使用主版本号路径。那么需要更改这些路径,但是url中的版本号来自哪呢?版本号路径:cd /etc/yum.repos.d/ 下面的CentOS-Base.repo文件中,需要更改CentOS-Base.repo此文件中的$releasever参数,而$releasever来源于 rpm -qi centos-release 的version数值。直接把那个参数改为了需要的主版本号。

2020-06-09 16:53:09 228

原创 程序中需要调远程获取数据时-测试用例中使用Mock造挡板数据

程序中需要调远程获取数据时-测试用例中使用Mock造挡板数据示例:1、加依赖<!-- Mock依赖。 --> <dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> <version>1.47</version> <scope>test</scope>

2020-06-03 17:42:47 864

原创 webservice使用Axis2框架时-wsdl2java命令及参数

wsdl2java 用于根据WSDL生成相应的服务端和客户端代码的生成工具。命令行格式为:WSDL2Java [options] -uri <url or path> : A url or path to a WSDL示例:WSDL2Java -uri http://128.168.168.8:443/rrs/getAllInfo/GetAllInfo.wsdl -p com.sinosoft.webservice.esb.service -s -o D:\eeee其中常用的..

2020-06-02 11:38:33 223

原创 MySQL中使用group_concat遇到的坑

在使用group_concat的过程中遇到个问题,这里记录一下:在MySQL中有个配置参数group_concat_max_len,它会限制使用group_concat返回的最大字符串长度,默认是1024。查询group_concat_max_len大小:show variables like 'group_concat_max_len';修改group_concat_max_len大小:方法一:SET GLOBAL group_concat_max_len = 1024..

2020-05-25 18:22:50 349

转载 jdk自带监控程序jvisualvm的使用

详见:https://blog.csdn.net/u012550080/article/details/81605189监控小程序的配置生产环境tomcat的配置编辑应用所在的tomcat服务器下的bin目录下的catalina.sh文件,修改如下:配置如下内容:export JAVA_OPTS="-Xms256m -Xmx512m -Xss256m -XX:PermSize=51...

2020-04-27 17:40:25 159

原创 Nexus私服手动上传jar包操作

1、用管理员或者有权限的账号登录,一般默认是admin\admin123。2、选择要上传到哪个库,比方3rd-party。点进去后如下图,同时选择jar包和对应的pom文件点击上传。(有时候下面的upload按钮灰色不能点,切换一下pom和jar的顺序、pom在前,或者remove重add就会好了。)...

2020-04-20 17:05:13 2118

原创 tl-微服务专题02-Spring Boot快速集成第三方技术详解

第二 节:springboot整合篇(飞机篇)1:springboot整合jdbc1.1:导入的maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artif...

2020-04-20 11:25:49 217

原创 springCloud全家桶常见问题解决

1、整合swagger后在网关中无法访问:解决:把对应的工程中的配置修改:比方此处application名为yuspechain2的:

2020-03-30 18:03:16 161

原创 tl-微服务专题13-springboot源码-外部tomcat启动war包的原理

2020-03-13 04:15:25 163

原创 tl-微服务专题13-分布式链路跟踪Sleuth详解

2020-03-13 04:11:43 153

原创 携程apollo配置中心搭建

服务jar包及初始化数据库脚本下载:(包括单机快速部署版本、加密版本、非加密版本)链接:https://pan.baidu.com/s/1_P3Ux-2tVWWWL53S5G1HsA提取码:lnf2

2020-03-10 15:50:36 899 3

转载 公开安全漏洞修复集锦

一、安全公告漏洞编号:CNTA-2020-0004,攻击者利用该Apache Tomcat AJP协议在漏洞,可在未授权的情况下远程读取特定目录下的任意文件。1.如果使用的是外置tomcat,参考公告中的对应方法即可(https://www.cnvd.org.cn/webinfo/show/5415)。2.如果使用的是springboot的内置tomcat,且手动开启了AJP协议,...

2020-03-10 12:52:47 207

原创 分布式事务——华为servicecomb-pack

补偿方式在讲servicecomb-pack之前先了解两个概念:不完美补偿(saga)和完美补偿(tcc)。 saga:不完美补偿,一般在系统中我们会专门为业务逻辑对应写一个补偿逻辑,如果业务逻辑执行失败,就会去执行这个补偿逻辑,我们称这个补偿逻辑为反向操作,这个反向操作同样会留下操作痕迹,例如:在银行系统中,客户去ATM取钱,银行会先对用户账户进行扣款操作,如果本次取钱不成功,银行系统...

2020-03-03 16:38:55 979

原创 分布式事务——纯MQ实现

一、MQ实现分布式事务,最简单的原理框架:借助MQ的消息可靠传递,实现业务间解耦、事务强一致1、>> 生产者发送消息做可靠性检查,确保消息真正投递出去;2、>> 消费者做幂等,确保业务没有重复执行;3、>> 消费者做异常重试,反复出错时需要捕捉异常并记录,以便手工干预;二、场景实践:场景以支付宝转账到余额宝为例,在支付宝已经扣款成功的...

2020-03-02 18:12:29 1443

原创 给已经打好的jar包添加依赖jar包重新打包

可以这么操作1、使用压缩软件,解压平台提供的yusp-app-oca.jar,解压后的目录格式如下:yusp-app-oca...BOOT-INF\*...META-INF\*...org\*2、在yusp-app-oca\BOOT-INF\lib目录中添加mysql驱动3、进入yusp-app-oca目录,执行如下命令:jar cvfm0 yusp-app-oca.jar .\M...

2020-02-24 15:14:18 1021

原创 tl-项目专题12-分布式事务基本理论

把图中的那个项目从微信记录中找出来

2020-02-23 20:50:01 172

原创 tl-微服务专题12-分布式配置中心Config详解

mq:@Autowired private RabbitTemplate rabbitTemplate; @RequestMapping("/autoRefresh") public Object autoRefresh() { Map<String,Object> sendMap = new H...

2020-02-20 04:51:19 246

原创 tl-微服务专题11-微服务统一网关实现框架zuul详解

敏感头信息和跨域:现在的网关和每个微服务不能同时配置跨域是因为网关这边传输了跨域头,在网关添加如下配置可以使应用和网关都配置跨域:zuul: # 制定全局敏感Header,默认时Cookie,Set-Cookie,Authorization,由于后端服务需要Authorization,所以需要重新设置(!!重要!!) sensitive-he...

2020-02-16 01:51:04 203

原创 03线性结构——线性表:栈与队列

一、栈

2020-01-21 17:59:00 179

原创 02线性结构——线性表:数组和链表

目录一、线性表二、数组2.1、动态数组简单动态数组实现:三、链表简单单向链表实现:双向链表循环链表一、线性表package com.turingschool.demo.ds;public interface List<E> { //返回线性表的大小 public int getSize(); //判断线性表中是...

2020-01-20 10:11:27 269

原创 银行日终大数据处理方案——支付系统的日终处理

银行日终大数据处理方案,是异步文件处理还是实时接口处理?如下图,拿支付系统的日终处理为例:获取核心交易明细那步就是下载文件。日终流程涉及的东西很多,各个系统不一样,比较复杂。文件和实时交易要配合使用。...

2020-01-15 11:14:38 2709

空空如也

空空如也

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

TA关注的人

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