自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot使用WebSocket实现服务端推送--集群实现(2)

书接上文,本文介绍了一种实现集群管理和消息传送方式。在集群模式情况下,一般是Nginx反向代理到多台Tomcat或者SLB代理到多台Tomcat的方式,怎么实现给某个人推送消息?比如WebSocket1连接到Tomcat1,但是在Tomcat2需要给WebSocket1发送消息,怎么办?一般的想法是像httpsession的集群处理方式一样,利用一个中间件Redis来保存session即可。但...

2019-07-27 19:50:19 5208 1

原创 cron(一)根据cron表达式计算每天有哪些执行时刻

参见http://gitee.com/xxssyyyyssxx/cron-hms 我们项目中一般会有很多的定时任务,我们怎么知道这些定时任务是否正常执行了呢?一个基本的想法是,在任务执行前保存一条记录,任务执行后更新此记录的结束时间和标记,异常的时候记录失败标记和异常信息,然后管理员每天登录的时候检查每个任务是否正常执行。如果记录与设置的执行时刻点匹配,说明任务正常执行...

2019-07-27 19:50:10 12247 2

原创 cron(二)根据cron表达式计算给定时间的下一个执行时间

参见http://gitee.com/xxssyyyyssxx/cron-hms书接上一篇,根据cron表达式切割计算每个域的执行点,可以计算出给定时间的下一个执行时间。思路是:1、找到所有时分秒的组合并按照时分秒排序2、给定的时分秒在以上集合之前、之后处理3、给定时时分秒在以上集合中找到一个最小的位置4、day+1循环直到找到满足月、星期的那一天public class ...

2019-07-27 19:49:56 6074 5

原创 一个通用的Json解析框架接口设计(一)-接口设计

我们项目中可能会用到许多的json框架,Fastjson、jackson、Gson、orgjson、json-lib,其实现方式各不相同,接口Api就不一样,我们想换一个json框架改动的地方就会很多。参考SLF4J的思想,我统一了json框架的调用方式。https://gitee.com/xxssyyyyssxx/json-common首先定义了顶层的json接口,可以代表jsonobj...

2019-07-27 19:48:24 5659

原创 一个通用的Json解析框架接口设计(二)- 实现

https://gitee.com/xxssyyyyssxx/Json-fastjsonhttps://gitee.com/xxssyyyyssxx/Json-orgJsonhttps://gitee.com/xxssyyyyssxx/Json-Gsonhttps://gitee.com/xxssyyyyssxx/Json-Jacksonhttps://gitee.com/xxss...

2019-07-27 19:48:00 1912 2

原创 一个http请求工具类的接口化(接口设计)

https://gitee.com/xxssyyyyssxx/httpclienthttps://gitee.com/xxssyyyyssxx/httpclient-interfacing模块化处理之后的,更清晰我们项目中可能会使用很多的http请求的库,比如URLConnection、ApacheClient、OkHttp库等。每个库的操作方式都不一样,这是一个巨大的困扰。如果需要换...

2019-07-27 19:46:24 2866

原创 一个http请求工具类的接口化(多种实现)

针对上一篇文章的接口设计,提供了三种实现URLConnection、ApacheHttpClient、OkHttp3。现给出三种实现的继承树。HTTPURLConnectionApacheHttpOkHttp3首先每种实现都需要实现模板方法HttpTemplate。URLConnection:package cn.zytx.common.http.base...

2019-07-27 19:45:58 3948 4

原创 SpringBoot使用WebSocket实现服务端推送---单机实现(1)

[![star](https://gitee.com/xxssyyyyssxx/websocket-springboot-starter/badge/star.svg?theme=dark)](https://gitee.com/xxssyyyyssxx/websocket-springboot-starter/stargazers)最近开发中需要实现服务端的推送,经过一段时间的资料查询最终锁...

2018-10-14 15:07:47 1215

原创 一个处理SQL语句多条件添加的工具类

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。我们写SQL语句的时候,有时候查询条件非常多,并且可能有可能没有,如果手动拼写,可能由于疏忽少写空格,关键字等,并且添加条件的时候可能需要写大量的判断语句,非常不好。我写了一个工具类,很适合处理这种情况。源码如下。i...

2018-04-28 16:19:34 1708 1

原创 一次排查axis2的NoSuchMethodError的过程(附Tomcat的jar包加载顺序)

NoSuchMethodError

2024-01-13 14:29:54 402

原创 线程池监控与动态参数调整设计

系统使用线程池越来越多。由于缺乏对线程池的统一监控手段,运营人员不知道线程池的具体运行情况,不利于线程池的性能调优。开发线程池监控系统,对系统中的线程池进行统一监控。

2023-03-01 17:13:00 629 1

原创 gradle中自动生成git提交信息

gradle git commit

2023-01-03 11:59:38 747

转载 百度编辑器的使用坑

ueditor

2022-08-04 10:53:02 392

原创 SpringBoot启动过程:SpringApplication及SpringApplicationBuilder

SpringApplication及SpringApplicationBuilder

2022-06-10 18:48:41 1375 2

原创 J.U.C:线程基本概念

线程基本概念

2022-06-08 20:26:28 240

原创 外置容器创建及启动ApplicationContext过程

外置容器创建及启动ApplicationContext过程

2022-05-19 09:37:08 338

原创 嵌入式Servlet容器自动配置、启动、自定义配置原理

嵌入式Servlet容器自动配置、启动、配置原理

2022-05-18 16:36:05 441

原创 如何获取SpringMVC应用中的所有映射信息

Spring映射信息

2022-05-17 17:04:31 552

原创 BeanDefinition

BeanDefinition

2022-05-17 14:28:41 496

原创 ConfigurationProperties和EnableConfigurationProperties

ConfigurationProperties、EnableConfigurationProperties

2022-05-16 18:39:15 1575

原创 ContextLoader和ContextLoaderListener

ContextLoader和ContextLoaderListener

2022-05-13 16:22:14 428

转载 @Bean 与 @Component 导入同一个类,会怎么样?(allowBeanDefinitionOverriding属性)

allowBeanDefinitionOverriding

2022-05-10 11:51:04 182

原创 往Spring容器中注册组件的方式

往Spring容器中注册组件的方式

2022-05-09 19:12:13 266

转载 类和方法元信息、注解信息体系(AnnotatedTypeMetadata、AnnotationMetadata、ClassMetadata、MethodMetadata)

AnnotatedTypeMetadata、AnnotationMetadata、ClassMetadata、MethodMetadata

2022-05-08 16:51:17 1143

原创 @Conditional && Condition

@Conditional && Condition

2022-05-08 16:23:28 448

转载 String的长度问题

String的长度问题

2022-05-06 17:44:15 149

转载 Spring的三级缓存

Spring循环依赖、三级缓存

2022-05-06 17:35:52 115

原创 Spring容器的刷新过程

Spring的refresh过程

2022-05-06 17:16:22 301

原创 BeanPostProcessor机制

BeanPostProcessor机制

2022-05-06 11:11:09 418

原创 BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor机制

一、前言在Spring中BeanFactoryPostProcessor的执行是非常重要的一部分,无论是扫描的实现还是拓展spring都需要涉及到这部分。BeanFactoryPostProcessor的执行时机是在BeanFactory实例化之后,其他Bean还未被创建的时候,可以修改beanFactory(主要是修改BeanDefinition)。1、BeanFactoryPostProcessor介绍BeanFactoryPostProcessor是spring提供的一个接口,其内部只有一个方法

2022-05-05 18:51:54 715

原创 ApplicationListener机制(二)

EventListener

2022-04-29 18:11:07 596

原创 ApplicationListener机制(一)

Spring使用ApplicationEvent和ApplicationListener实现发布订阅功能

2022-04-29 17:00:01 979

原创 ApplicationContextInitializer机制

ApplicationContextInitializer

2022-04-29 15:49:18 585

原创 spring.factories机制

spring.factories机制

2022-04-29 15:09:53 408

原创 Redis的发布订阅+线程池使用实践

Redis发布订阅+线程池实践

2022-01-20 12:13:16 1195

原创 Skywalking对Nginx进行监控

书接上回,Skywalking已经能对Java应用非常轻松地接入监控,但是一般情况下,我们系统都是在负载均衡器(一般采用Nginx或者Openresty)后端跑JavaWeb应用,如果我们想把Openresty(Nginx)也纳入监控,该怎么办呢?幸运的是,Skywalking已经提供了Nginx的探针收集器。备注:Openresty是基于Nginx+Lua的高性能Web开发平台,解决了Nginx不易编程的短板。Nginx的agent插件是基于Lua来编写的,所以需要Nginx增加对Lua的支持。官网地

2021-12-13 13:30:45 5404

原创 搭建skywalking对Java应用进行监控

APM概述APM (Application Performance Management) 即应用性能管理系统,是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。应用性能管理,主要指对企业的关键业务应用进行监测、优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总拥有成本。APM系统是可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。随着分布式系统和微服务架构的出现,一次用户的请求会经过多个系统,不同服务之间的调用关

2021-10-08 18:28:57 3485 1

原创 关于nginx的负载均衡问题

nginx作为非常流行的反向代理软件,提供了几种负载均衡算法。一、负载均衡算法round robin(默认)weightIP_hashurl_hash(第三方)fair(第三方)1.round robin(默认)轮询方式,依次将请求分配到各个后台服务器中,默认的负载均衡方式。 适用于后台机器性能一致的情况。 挂掉的机器可以自动从服务列表中剔除。2.weight根据权重来分发请求到不同的机器中,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。upstream

2021-08-30 15:33:51 3685

转载 时间,是个什么东东?

https://mp.weixin.qq.com/s/fw5W8lfW3kejeIuJsyrLDQ

2021-08-18 11:56:18 94

原创 mysql主从失败回溯

生产环境mysql是主从同步架构。某日,偶然发现数据库主从数据差别很大,使用`show slave status`才发现SQL Running已经是NO了。通过查询`select * from performance_schema.replication_applier_status_by_worker\G;`发现LAST_ERROR_MESSAGE为`“worker 0 failed excuting transaction 'xxx' at master log .....Query: alter...

2021-08-11 18:07:26 142

SQL组装工具类,轻松应对复杂查询条件的组装

SQL组装复杂查询条件,SELECT .. FROM .. (LEFT|RIGHT|INNER) JOIN .. ON .. WHERE .... GROUP BY .. HAVING .. ORDER BY .. LIMIT ..

2019-04-21

SQL组装工具类,轻松应对复杂条件的组装

SQL组装工具类,轻松应对复杂条件、各种SQL关键字的组装。

2018-09-04

空空如也

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

TA关注的人

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