spring boot之retry方法调用失败重试

spring boot之retry方法调用失败重试

前言碎语 很多场景会用到重试的机制,比如:rpc服务调用失败重试,文件上传oss失败重试,http接口调用失败重试,支付回调失败重试等等,一切因为网络,非逻辑性错误等不确定因素引起的失败都可以加上重试的机制,来增强系统的健壮性,博主也处理过文件上传到第三方oss服务失败增加重试的事例,在这之前不知道spring有个spring-retry项目,所以采用的是限制次数的递归调用的方式...

阅读全文 »

spring boot通过MQ消费log4j2的日志

spring boot通过MQ消费log4j2的日志

前言碎语 当系统的并发比较高的时候,日志的处理输出也是一种性能的开销负担,所以,选择一个中间件来处理消费日志必不可少!下面是spring boot整合log42结合spring amqp来消费处理系统日志的实例,只需要简单的三步 1.添加相关jar依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId...

阅读全文 »

AMQP协议模型高阶概述

AMQP协议模型高阶概述

AMQP是什么 AMQP(高级消息队列协议)是一个网络协议。它支持符合要求的客户端应用(application)和消息中间件代理(messaging middleware broker)之间进行通信。 消息代理和他们所扮演的角色 消息代理(message brokers)从发布者(publishers)亦称生产者(producers)那儿接收消息,并根据既定的路由规则把接收到的消息发送给处理消息的消费者(consumers)。 由于AMQP是一个网络协议,所以这个过...

阅读全文 »

基于RabbitMQ+Hessian+spring实现远程RPC调用

基于RabbitMQ+Hessian+spring实现远程RPC调用

1.对Rpc的简单阐述 对RPC通俗的理解就是,调用远程服务和调用本地服务一样透明化无感知。使用过dubbo和motan的同学肯定有这种感觉。实现RPC调用过程,无非解决两个问题: 1.数据的传输:这里使用RabbitMQ来收发消息,保证消息的可靠性 2.请求和响应数据的序列化和反序列化:采用Hessian 如果有自己的序列化方案,还得确定传输的消息体结构,这里不做考虑 2.远程调用过程 首先:消费者...

阅读全文 »

angularjs实现下拉框多选

angularjs实现下拉框多选

前言碎语 博主最近又开始搞前端了,好心塞,有个需求需要用到下拉框多选,因为项目使用了angularjs,所有使用了一个开源的基于angular写的指令,在这里分享下,非angular可忽略 相关链接 github项目地址: https://github.com/dotansimha/angularjs-dropdown-multiselect 进入正题 这个指令依赖lodash.js ,所以如果项目使用了bower管理js的,需要同时引入 angularjs-dropdown-multiselect 和loadsh,如下,如果没使用bower...

阅读全文 »

Querydsl结构化查询之jpa

Querydsl结构化查询之jpa

前言碎语 Querydsl是一个Java开源框架用于构建类型安全的SQL查询语句。它采用API代替拼凑字符串来构造查询语句,不仅可以结合jpa等用来查询关系型数据,还提供了相关的api用来查询mongodb,lucene的数据 相关地址 官网地址: http://www.querydsl.com/ github项目地址: https://github.com/querydsl/querydsl 开发指南: http://www.querydsl.com/static/querydsl/latest/reference/pdf 进入正题 下面主要描述如何在使用jpa的项...

阅读全文 »

node.js MVC开发框架之Think.js

node.js MVC开发框架之Think.js

前言碎语 今天为大家带来一款基于node的mvc开发框架Think.js,这是由奇虎360奇舞团团队打造的一款轻量的node mvc框架,看起来是不是很熟悉。没错,think的设计借鉴了大部分的thinkphp的思想,开发的时候看项目目录结构以及层次就可以看到thinkphp的影子,所以,如果你有thinkphp的开发经验,使用think开发node应用是so easy的上手。同时,基于think的轻量易用性,作为学习node的入门框架来说,无可...

阅读全文 »