Java
文章平均质量分 70
wxyh_00
这个作者很懒,什么都没留下…
展开
-
对象copy源码分析与性能测试
本文总结了对象copy常用的四个工具方法的实现原理及特点,对部分源码进行了分析,测试了四个工具方法的性能,并给出了结论。原创 2017-10-11 17:53:39 · 280 阅读 · 0 评论 -
Java代理技术
前言Java代理分为静态代理与动态代理(jdk、cglib、javaassit等),它是整个java技术中最为重要的技术之一。其中,动态代理更是在很多java框架中得到广泛地使用,比如spring aop,mybatis,hibernate等等。使用场景代理模式是常用的java设计模式之一,它的理论依据就是java代理技术。 代理模式使用的场景很多,常见的有以下几种:因安全...原创 2018-02-28 23:05:04 · 355 阅读 · 1 评论 -
RabbitMQ数据同步一致性解决方案
1.概述我们知道在使用RabbitMQ时,生产者将消息发布出去之后,消息是否顺利到达broker代理服务器呢?默认情况下发布操作没有任何信息返回给生产者,也就是生产者是不知道消息有没有顺利到达broker。如果在消息到达broker之前已经丢失了,那发布的消息就更不会到达队列并被消费者消费。如果出现上述情况,就会造成生产者发布的消息与消费者消费的消息不一致的问题。2.RabbitMQ自...原创 2018-03-29 21:22:20 · 17372 阅读 · 3 评论 -
RabbitMQ异常监控及动态控制队列消费的解决方案
最近,随着系统的上线,在RabbitMQ的使用上遇到了一些问题,现将其分析总结及对应的解决方法分享出来,以便大家借鉴参考。如有不对的地方欢迎指正交流。1.遇到的问题(1)某个消费者线程因内存溢出而挂掉,造成对应的队列没有消费者,消息在MQ Server堆积,而系统缺少对该类异常的监控,无法及时有效的进行处理。 (2)在一些业务场景,消息的消费速度远低于生产速度,造成大量消息堆积在MQ...原创 2018-04-05 12:47:20 · 21630 阅读 · 6 评论 -
RabbitMQ自动扩展消费者源码分析
1.前言在 RabbitMQ异常监控及动态控制队列消费的解决方案 中,提供了一种在线动态修改消费者数量的方法,但使用该方法需要及时的监控队列消息的堆积情况,不能做到自动扩展(增加或减少)消费者数量,以应对偶发的消息堆积场景。通过阅读源码,发现RabbitMQ已经提供了一种自动扩展消费者数量的方法,现把具体实现的源码分析进行分享如下。2.SimpleMessageListenerCont...原创 2018-04-06 11:39:58 · 4099 阅读 · 4 评论 -
消费者比对RabbitMQ同步数据的解决方案
1.前言RabbitMQ数据同步一致性解决方案中,提出了使用方案“MQ+Redis+接口”来保证数据同步的一致性,其关键在于需要对消费者已接收成功数据的唯一标识与redis中的全量唯一标识进行比对,如果存在数据丢失,需要采用接口的方式进行丢失数据补偿。 本文提供两个进行数据比对的解决方案。2.方案一生产者定时或实时推送数据至MQ,消费者消费数据,然后通过定时任务比对是否有丢失的数据,...原创 2018-08-31 17:31:52 · 1524 阅读 · 0 评论 -
两种开源分布式主键生成器简介
简单介绍两种开源分布式主键生成器,UidGenerator和Leaf。原创 2019-07-04 17:58:53 · 1079 阅读 · 0 评论