自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 Apollo配置改动动态加载

Apollo配置加载以及改动动态加载实现使用@ApolloConfigChangeListener+RefreshScope实现动态加载。@ApolloConfigChangeListener注解,基于事件监听。使用该注解将会自动注册ConfigChangeListener,监听到Apollo的配置修改。RefreshScope实现spring刷新配置。代码@Componentpublic class ApolloRefreshListener { @Resource pri

2022-03-29 14:40:25 1610

原创 org.apache.shiro.session.ExpiredSessionException: Session with id异常排查

org.apache.shiro.session.ExpiredSessionException: Session with id异常排查系统运行过程中报出异常Caused by: org.apache.shiro.session.ExpiredSessionException: Session with id [aa21ba8b-7f3a-4236-a2f8-3b440524f55e] has expired. Last access time: 3/14/22 2:55 PM. Current t

2022-03-15 19:57:29 2449

原创 sharding-jdbc使用实战

使用背景项目中使用中表数据过大,需要分表操作。并且在项目业务中许多场景下单表数据过大时,也需要分表操作,这次尝试在某一组件内引入shsharding-jdbc,并逐步形成项目通用组件。组件简介在spring环境中引入sharding-jdbc,相当于dataSource组件替换成shsharding-jdbc的dataSource,完成原有的数据源替换,查询以及插入时会使用sharding-jdbc的数据源做相应的分片操作,并生成sql,完成增删改操作。如果引用数据源换成了新的,那么就是替换掉原有的

2022-02-23 11:12:54 1052

转载 分布式AKF拆分原则

前言当我们需要分布式系统提供更强的性能时,该怎样扩展系统呢?什么时候该加机器?什么时候该重构代码?扩容时,究竟该选择哈希算法还是最小连接数算法,才能有效提升性能?在面对 Scalability 可伸缩性问题时,我们必须有一个系统的方法论,才能应对日益复杂的分布式系统。这一讲我将介绍 AKF 立方体理论,它定义了扩展系统的 3 个维度,我们可以综合使用它们来优化性能。什么是AKFAKF 立方体也叫做scala cube,它在《The Art of Scalability》一书中被首次提出,旨在提供.

2021-08-02 19:39:35 955

原创 Spring启动时构造方法实例化报错排查

Ambiguous argument values for parameter of type [???] - did you specify the correct bean references as arguments?项目启动报错Ambiguous argument values for parameter of type [???] - did you specify the correct bean references as arguments?造成原因Spring在使用构造方法实

2021-07-28 19:41:56 896

原创 Spring Event事件驱动

Spring Event事件驱动简介在一些应用场景中,我们希望程序是被“事件”触发运行的,并且程序在感知到不同的“事件”后能够产生不同的响应动作,此时就需要应用程序能够实时“感知”其所关心的事件,并在事件发生后执行相应的操作。总结:由事件驱动业务进行。常用的设计模式:观察者模式、发布订阅模式。使用场景将不相干的业务解耦,比如完成业务操作后的短信通知之类的可以解耦的逻辑。异步处理,在发布事件后,处理可以是异步完成,在有些耗时较长业务处理时,可以拆分逻辑,有些可以异步事件处理。对比类似技术

2021-07-28 13:14:42 456

原创 hibernate使用防雷指南(持续更新)

hibernate使用防雷指南hibernate使用过程中遇见的问题线上莫名其妙有些持久态对象需要update的数据没有update了。有些代码仅仅修改了属性,并没有显示的调用update,却更新了。持续更新inghibernate存储机制hibernate持久化对象首先先了解hibernate管理对象的两种状态游离态,实例化的对象,并未在hibernate的管控之中比如:Person person = new Person();托管态/持久态:在hibernate管理中的实例化对象

2021-07-19 10:49:46 222

原创 线上mysql的update语句获取锁超时情况分析以及复盘

线上mysql的update语句获取锁超时情况分析以及复盘现象多租户项目生产环境下,需要进行数据修复,执行一条update语句。在执行过程中一直报获取锁超时,无法执行初步分析有其他事务,将需要修改的数据上锁,导致update获取锁超时。那么开始分析该租户是否有需要执行时间很长的事务。发现另一个租户,正在异步的执行大方法,该方法有一个很大的事务。初步分析结果:一个大的事务,将需要改的数据上了锁,一直没有释放,导致无法执行。深入分析为什么我update一个租户的数据时,会去获取另一个租户的事务

2021-07-12 14:13:59 1553 2

原创 【java】如何排查服务器程序异常

web服务运行时,如果发生各种卡顿和假死,该如何去排查检查服务器磁盘情况使用df或者free命令查询磁盘情况服务器磁盘空间不足时,会导致某些要写入磁盘的方法阻塞,可能会导致服务不可用。解决方法:清理磁盘不需要的文件,或者扩容。查询服务器内存和cpu使用情况使用top命令查看运行内存和cpu消耗如果有非java程序占用了较高的cpu和内存,则排查该程序是否正常。是否是其他外部因素占用了服务器大量资源。系统内存MEM内存不足,排查各个服务占用内存情况。在没有其他服务干扰情况下,使用j.

2021-03-29 11:31:56 703

原创 批量下载花瓣图片脚本--抖机灵

py小教学:今天偶然知道一个叫花瓣的网站,里面好多高清好图。于是想批量的下载一下里面的图片。据说py很简单于是百度了一下,py的爬虫,爬取花瓣的图片。下面分享一下py脚本,全程ctrl+c和ctrl+v,请勿见笑。import requestsimport reimport os.pathif __name__ == '__main__': # 获取html req = requests.get("http://huaban.com/favorite/beauty/") .

2020-05-25 16:32:30 787

原创 redis序列化兼容问题

redis序列化兼容问题:一个工具包,含有redis的工具(redisTemplate)。在接入其他项目时,别的项目需要使用。但是各个项目的序列化方式又各有不同。这个如何解决。解决方案通过配置多redisTemplate,通过注入不同的redisTemplate。统一设置序列化方式思考作为工具包提供的redisTemplate应该,以自己项目为基准。自己定义完整可用的序列化方式。不能根据其他项目去修改调整。个人见解:最好不要使用json的序列化,兼容性太差。...

2020-05-20 11:15:18 547

原创 【异常】org.apache.ibatis.binding.BindingException: Invalid bound statement:名词空间都对得上

异常 org.apache.ibatis.binding.BindingException: Invalid bound statement问题是由于编译时没有将xml编译到target文件中,如果xml文件放在java资源文件夹中是不会操作的。解决:需要在idea中添加配置,编译资源文件...

2019-10-24 11:06:25 154

原创 从订单支付看分布式事物

问题:公司做的项目转成微服务架构很久了,但是一直没有实现分布式事物控制。在出解决方案的时候想到业界成熟的使用消息队列实现数据的最终一致性。但是仔细想想,分布式事物的介绍在分布式系统中一次操作由多个系统协同完成,这种一次事务操作涉及多个系统通过网络协同完成的过程称为分布式事务。这里强调的是多个系统通过网络协同完成一个事务的过程,并不强调多个系统访问了不同的数据库,即使 多个系统访问的是同一个...

2019-03-26 17:51:46 1108

原创 Activiti7流程操作

发布流程// bpmn输入流// 定义zip输入流InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("***.zip");ZipInputStream zipInputStream = new ZipInputStream(inputStream);// 获取reposito...

2019-02-18 17:39:02 2142

原创 Activiti介绍

前言之前项目中需要流程控制时,完全使用数据库表的状态字段来控制。虽然开发定制起来方便,但是项目人员变动时带来了很大的不便;在新的流程出现开发一套也及其复杂。什么时工作流工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。activi...

2019-01-28 20:26:42 265

原创 javaPOI导出excel工具类

生成Workbook方法/** * * @param title 标题 * @param str 内容 * @return XSSFWorkbook类 */public static XSSFWorkbook getWorkBook(String[] title, String[][] str) { // 第一步,创建一个HSSFWorkbook,对应一个Excel文件 ...

2018-12-26 13:45:32 490

原创 SpringCloud组件Eureka+Feign

Eureka注册中心为什么需要注册中心微服务数量众多,要进行远程调用就需要知道服务端的ip地址和端口,注册中心帮助我们管理这些服务的ip和端口。微服务会实时上报自己的状态,注册中心统一管理这些微服务的状态,将存在问题的服务踢出服务列表,客户端获取到可用的服务进行调用。Eureka注册中心(转)Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装,它...

2018-12-10 10:51:17 364

转载 FastDFS研究了解(转)

fastDSF介绍FastDFS是用c语言编写的一款开源的分布式文件系统,它是由淘宝资深架构师余庆编写并开源。FastDFS专为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。为什么要使用fastDFS呢?fastDFS非常适合存储图片等那些小文件,fastDFS不对文件...

2018-12-03 15:24:51 312

原创 RabbitMQ快速整合SpringBoot

导入springboot的rabbitmq依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>配置文件sp...

2018-11-29 18:38:39 283

转载 RabbitMQ几种工作模式(转)

RabbitMQ有以下几种工作模式 :Work queuesPublish/SubscribeRoutingTopicsHeaderRPCWork queueswork queues两个消费端共同消费同一个队列中的消息。应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度。测试:1、使用入门程序,启动多个消费者。2、生产者发送多个消息。结果:1...

2018-11-29 18:17:28 1629

转载 前端POST请求参数过长,导致400错误解决办法及分析(转)

这两天做好的功能要上线了。但是测试的时候忽然发现当POST提交数据量多大时,会导致后端报400错误。最开始以为瓶颈存在于tomcat,因为tomcat默认能接受的POST请求大小为2M,所以手动修改tomcat server.xml 文件,将接受POST大小修改为不限制。 经测试,发现依旧不起作用。 今天上网查询了相关...

2018-11-21 14:53:43 9736

原创 华为servicecomb快速上手(一)

Servicecomb介绍ServiceComb 作为 Apache 开源组织下的一款微服务框架,其前身为华为云的 微服务引擎 CSE (Cloud Service Engine) 云服务。它意味着国内一款微服务框架在华为和 Apache 组织的共同努力下,随着微服务市场的火爆,一定会让越来越多的开发者所喜欢。(转)官方网站介绍华为将 ServiceComb 交给Apache 基金组织维护...

2018-11-20 10:07:25 5349 2

原创 SpringBoot快速接入HttpClient

spring提供了RestTemplate对象,用于请求http接口。而他的底层需要依赖第三方httpClient工具去实现请求,常见的有ApacheHttpClient、OkHttpClient等。OkHttpClient在使用中性能比较好,现在比较常用。添加maven依赖<!--兼容springboot2.0.1--><dependency> <...

2018-11-12 10:53:16 798

原创 MongoDB文件存储GridFS学习

GridFS是MongoDB提供的用于持久化存储文件的模块工作原理:GridFS将文件分块存储,文件会按照256KB的大小分割成多个块进行存储。GridFS存储文件用到了两个collection:一个是chunks,用来存储分块文件二进制数据;一个是files,用来存储文件信息(文件名称等信息)JAVA代码:springboot整合MongoDB导入jar<dependency&...

2018-11-06 09:25:39 544

原创 java全局异常处理

在日常项目中写代码时经常会有需要返回错误信息的代码,如下:public Result demo() { Demo demo = demoRepository.getDemo(); if (demo != null) { return new Result(CommonCode.SUCCESS, demo); } else { return ...

2018-11-01 14:26:29 955

原创 java异常:Comparison method violates its general contract!解决

项目在线上运行时突然出现了几百封异常邮件,过了一段时间又自动好了。项目异常报错信息是Comparison method violates its general contract在顺着堆栈信息查找下去,发现是sort排序中重写compare方法引发的异常。在网上查找资料和阅读了sort的源码之后得出结论:在sort排序中重写的方法一定要满足可逆比较Comparator<Inte...

2018-10-25 16:35:10 48531 12

原创 java sort排序源码分析(TimSort排序)

入口:default void sort(Comparator<? super E> c) { Object[] a = this.toArray(); Arrays.sort(a, (Comparator) c); ListIterator<E> i = this.listIterator(); for...

2018-10-25 15:08:35 11453 1

原创 Springboot核心注解笔记

 springboot启动类://spring快速启动@SpringBootApplicationpublic class MySpringBootApplication { public static void main(String[] args) { SpringApplication.run(MySpringBootApplication.class);...

2018-10-18 11:37:07 492

原创 quartz定时任务

java的quartz定时任务框架使用,spring整合首先写一个需要定时执行的类和方法spring配置1.配置定时任务需要执行的方法2.配置触发方法(有两种触发方式)2.1使用CronTriggerFactoryBean配置;在每个特定的时间执行一次,使用这个类比较方便,其中的配置规则需要看官方文档或者百度。2.2使用SimpleTriggerFactoryB...

2018-10-11 18:14:40 346

原创 mysql时间加减

mysql时间加减DATE_SUB()和DATE_ADD()函数,实现日期增减DATE_SUB(NOW(),INTERVAL 30 MINUTE)        当前时间减30分钟DATE_SUB(NOW(),INTERVAL 1 day)                  当前时间减1天DATE_SUB(NOW(),INTERVAL 1 hour)                ...

2018-10-11 16:43:44 5968

原创 HashMap数据结构--java基础面试大Boss

前言:几年前刚刚冲学校出来出来,参加的第一家面试,面试java基础,第一个问题就是hashmap数据结构。当时我的反应是这样的:啥?啥结构,什么数?什么构?不就是get、put?后来经过百度,看各种帖子,也算是了解了一些,面试时也算是能跟面试官说说hashmap数据结构了,毕竟天天问。问道最后也能“谈笑风声”了。。。。后来在工作之余慢慢看了数据结构这本数,看了下数据结构的视...

2018-09-19 15:18:42 1478

原创 浅看java线程池

上文:https://blog.csdn.net/TomCosin/article/details/82748312      在项目中一般使用线程池来进行异步、多线程操作,但是在创建线程池时也会又各种情况,比如说使用jdk自带的Executors,在某些情况下会出现一些问题。如上面提示所说,使用Executors在实际项目中运行的确会有各种风险。那么我们就需要手动的创建线程池。先...

2018-09-18 14:09:07 187

原创 java异步延迟任务执行

今天遇到一个奇怪的需求:需要在某个操作后,延迟10min执行另一个操作。一 新建线程首先想到的方法便是新建一个线程完成此操作:输出看起来这个操作没有问题 ,但是现在项目中就有问题了。 这是阿里代码检查工具的提示。试想一下,每次进行这种操作便新建线程是不可取的,如果这个操作执行多次,便会创建大量线程,对虚拟机运行造成巨大的压力。二 使用线程池输出结果...

2018-09-17 20:39:59 18771 1

空空如也

空空如也

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

TA关注的人

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