自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

汪汪James的Java自传

做任何事情,贵在坚持,滴水穿石,持之以恒-----我不聪明,但是我很想特别努力

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

原创 rabbimq队列之死信队列和延迟队列

        在项目开发设计过程中,我们经常用到异步推送的场景,比如下单和扣减库存异步执行。常用的异步中间件有mq有很多,我们这里以Rabbitmq为例进行讲解。我们知道只要是涉及异步场景的问题,就有成功失败之分,如果生产者发送消息一直失败要怎么做呢,这里我们就用到了死信队列来实现失败消息的处理。流程图如下图:废话不多说直接上代码:rabbitmq配置类:package com.mq.test....

2018-06-07 15:05:48 1926

原创 spring-amqp消费者异常处理方案

消息消费过程,当spring-amqp消费者监听到有消息进入时,会启动一个异步消费者(AsyncMessageProcessingConsumer)线程去处理消息,该类是静态内部类所以是线程安全的,该类在执行run方法时主要做一些绑定队列、事物支持等的校验;然后while循环监听消费消息。如下是消息的流转过程 SimpleMessageListenerContainer.receiv...

2019-09-27 10:25:00 765

原创 spring-amqp以事物机制向mq发送消息

好久没写了,好吧我承认都贡献给了公司的confluence上了,懒得倒腾了。直入正题吧,写写如何利用spring-amqp框架做到发送消息的事物性

2019-06-03 20:59:20 514

原创 request的全链路追踪(翻译自官网)

所谓的MDC技术,就是mapped

2018-08-11 11:12:01 1830

原创 elasticSearch插件之head插件安装

head插件安装1.安装epel源yum -y install epel-release2.安装remi源rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmrpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi3.安装nodej...

2018-08-02 11:55:40 202

原创 elasticSearch的安装与集群

elasticSearch的安装本次安装采用官网最新版本6.3.2,虚拟机采用centos7,es需要依赖jdk环境且最低版本要求jdk8最好是8u131以上,这里jdk的安装不再赘述,自己搞定哦。单节点安装1.官网下载最新版的安装包elasticSearch-6.3.2.tar.gz。2.root用户下解压#解压tar -xvf elasticsearch-6.3.2.t...

2018-08-02 11:16:11 561

原创 LogBack的filter的应用

LogBack Filter      最近在做业务数据的采集。遇到了一个问题,那就是如何通过记录日志的方式捕获需要的业务数据(这里我需要的是某个对象的json格式的数据)。我们知道如果采用log.info的形式记录日志,尽管我们可以写多个appender让info级别的日志信息输出到两个不同的文件,但是记录业务数据的文件里面也会有其...

2018-07-26 14:40:58 4959

原创 elasticSearch基础

elasticSearch基本介绍作为目前非常流行的分布式搜索引擎技术,es可以非常方便快捷的实现大数据的查询搜索和统计分析,故而从今天开始探索一下神秘的es,以弥补自己搜索引擎方面的不足。截至本文发表,官网es的版本已经发布到6.3。什么是es       Elasticsearch 是一个分

2018-07-25 11:54:17 144

原创 java异常处理和日志系统

java异常处理和日志规范异常规约service层的异常可以try{}catch(){},但是try后必须要显示的throw出去,这样才能被异常切面捕获,进而去处理异常。 当有多层的try时,一定要每一级都要throw出去,而且不是最后一级的try{}catch(){}千万不要重新自定义异常 最后一级的异常一定要用Exception来接,保证所有的异常都可以被接住处理掉(抛出或是记录...

2018-07-17 14:36:23 874

原创 centos7下的rabbitmq安装

rabbitmq安装环境预安装yum install gcc gcc-c++yum install zlib zlin-develyum install -y unzip zipyum -y install wget安装Python (1)erlang所需python必须要2.6以上(python就是erlang写的)// 替换系统默认python2.6--...

2018-07-13 10:29:58 221

原创 java的spi机制

spi机制是什么鬼 引用自工匠小猪的技术世界之Java的spi机制 SPI(Service Provider Interface)是JDK内置的一种提供服务发现的机制。JDBC通过DriverManager.getConnection()来创建数据库连接就是应用了这种机制。 在java中根据一个子类获取其父类或接口信息非常方便,但是根据一个接口获取该接口所有实现类却没那么容易。...

2018-07-11 11:22:42 207

原创 Java设计模式之build设计模式

模式简介build设计模式是Java开发中常用的一种实例化对象的设计模式,在谷歌的guava和rabbitmq的开发中用到了很多。Java Builder模式主要是用一个内部类去实例化一个对象,避免一个类出现过多构造函数,而且构造函数如果出现默认参数的话,很容易出错。build设计模式类似于通过一个代理来构建对象,可以对对象起到更好的封装作用。应用场景1.实例化对象时需要传入的参数过多,而且并不是...

2018-07-06 10:32:19 2592

原创 rabbimq消费者实现异常重试机制

功能描述异常重试指的是当消费者处理消息异常失败时,为保证数据最终一致性,通过设置重试策略来对消息进行重复再消费。对于重试策略我们指定延迟多长时间重试一次,重试多少次,以及时间单位等。策略描述原理:利用rabbitmq的死信原理,参照上一篇文章rabbimq队列之死信队列和延迟队列参数:TimeUnit(延迟时间单位),retryDelayTime(long型,失败后过多久的时间执行),retrie...

2018-07-05 10:37:31 8744 1

空空如也

空空如也

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

TA关注的人

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