Spring Boot 2系列(三十三):JMS 和 AMQP 消息服务及支持的消息组件

  消息组件在现在的互联网应用系统已广泛使用,特别是在大型的、分布式或微服务架构中,要协调系统之间的通信,消息组件几乎是不可或缺的。

  使用消息中间件可实现系统之间的异步通信、可对服务之间的调用进行解耦、可对并发请求实现流量消峰、可用于消息通讯

  Spring Framework 为与消息组件的集成提供了广泛的支持, 从简化使用JMS APIJmsTemplate到完整的异步接收消息的基础架构。 Spring AMQP还为高级消息队列协议提供了类似的功能集。

  Spring Boot 默认就为 ActiveMQ、 RabbitMQ、 Kafka、 Artemis 提供自动配置支持。Spring AMQP 官方文档Spring Boot Message 文档

阅读更多

Redis 4.x系列(九):Redis Transaction(事务)

  Redis 中的事务与传统数据库的事务存在较大的差异,所以理解 Redis 事务,必须跳出传统数据库事务的概念,这是由两者对事务的实现方式不同决定的。

  Redis 官方文档对 Redis 事务在处理所有命令的描述是:要么处理所有命令,要么都不处理,因此 Redis 事务也是原子的。 Redis Transactions 官方文档注:Redis 事务确保原子性的时机不同于传统数据库的事务处理,详见下文。

阅读更多

Utils-异常信息格式化工具类

  项目中的代码捕获到的异常(Exception)信息应该通过日志管理(Log4j)写入到日志文件,是非常不建议直接打印出栈信息的(e.printStackTrace());而通过 Exception 的方法直接获取到的异常信息并不全面,或直接对异常信息进行 JSON 格式化,但记录到日志信息是长长的一行,非常不利于阅读和跟踪问题。

  我们可以调用 getStackTrace()方法,返回的是栈跟踪信息数组,通过对数组遍历格式化拼接,可以让记录到日志文件的异常信息的格式达到 **printStackTrace()**方法的效果,这就是下面的工具类的目的,代码非常的简单。

阅读更多

Redis 4.x系列(七):Redis 数据特性之位图、过期、排序

  Bitmap:Redis 中的位图并不是一种新的数据类型,它的底层数据类型是字符串。字符串的本质是二进制大对象(BLOB:Binary Large Object),所以可以视作位图。

  Expire:可以通过设置的过期时间,让 Redis 自动地删除键。

  Sort:可以对列表以某种非权重顺序对有序集合的元素进行排序。

阅读更多

Redis 4.x系列(六):Redis Key(键)管理

  Redis Keys 是二进制安全的,可以使用任何二进制序列作为键,例如”foo“字符串到 JPEG文件内容字符串也是有效键。

  Key 的定义应长度适当,易读易理解;超长字节的键会大大降低性能,若确实有大值存在,可以使用它的 HASH 值。

  Redis Keys 是字符串类型,允许最大是 512 MB。

阅读更多

Redis 4.x系列(五):Redis 数据类型之Hash、HyperLogLog、Geo

  Hash:表示字符串字段和字符串值之间的映射关系,因此 Hash 对于存储对象是一种完美的数据类型。

  HyperLogLog:在需要唯一计数的数据处理场景中使用,用于统计元数的个数,而不需获取数据的内容,性能高消耗内存低。

  Geo:用于存储和查询与地理位置相关的位标(GPS经纬度),提供的 API 非常方便地计算位标距离和获取距离范围内的成员。

阅读更多

Redis 4.x系列(三):Redis 数据类型之String、List

  Redis 与关系数据库不同,不是以表的模式来存储数据,无法使用 SQL 来操作 Redis 数据,而是直接使用 API 发送命令来操作目标数据。

  Redis 支持的数据类型与不同与关系数据库, Redis 支持的数据类型有String, List, Set, Hash, Sorted set, Bitmap, HyperLogLog, 具体使用参考Redis 数据类型, 官网:介绍 Redis 数据类型和抽象。  

阅读更多