MQ系列(四):ActiveMQ发送与消费优化,异步,同步,流控,预取限制,慢消费
ActiveMQ 为生产者发送消息提供了根据业务场景需要的相关优化配置,支持同步,异步发送,支持流量控制,Broker存储空间设置等。
也为消息者提供了优化设置,支预取限制,为慢消费者提供了等待消息策略和消息丢弃策略的配置,支持异步消费者和优先级消费设置。
MQ系列(四):ActiveMQ发送与消费优化,异步,同步,流控,预取限制,慢消费
ActiveMQ 为生产者发送消息提供了根据业务场景需要的相关优化配置,支持同步,异步发送,支持流量控制,Broker存储空间设置等。
也为消息者提供了优化设置,支预取限制,为慢消费者提供了等待消息策略和消息丢弃策略的配置,支持异步消费者和优先级消费设置。
MQ系列(三):ActiveMQ转发模式,事务,过期,积压,应答模式,重试,死信队列
ActiveMQ 支持 JMS 规范中的 2 种消息转发模式,支持消息事务,支持异步发送消息和生产者流量控制,提供了 4 种消息消费应答模式,提供消息发送失败后重试机制,
本文分别对 ActiveMQ 消息转发模式,事务,消息过期,消息积压,应答模式,重试,死信队列等相关配置进行描述。
MQ系列(二):ActiveMQ集群,独占消费者,消息组,消息顺序性
ActiveMQ 同样支持集群部署,支持客户端集群和服务端集群,实现可靠的高性能负载均衡。
ActiveMQ 提供了独占消费者配置,可保证消息消费的顺序性,消息组是对独占消费者功能的增强。
MQ系列(一):ActiveMQ特性,概念,持久化,安装,应用集成
ActiveMQ 是一款老牌的,开源的,多协议的,非常流行的,基于 JAVA 的消息中间件,由 Apache 出品。ActiveMQ 官网,ActiveMQ Documentation。
ActiveMQ 实现了 JSM 1.1 标准,并提供了很多附加特性,如 JMS 管理,主从管理,消息组通信,消息优先级,延迟接收消息,虚拟接收者,消息持久化,消息队列监控等特性。
目前有两种类型的 ActiveMQ 可用,分别是经典的 5.x
版本 和 下一代 Artemis
版本,后续 5.x 与 Artemis 版本兼容合并将成为 ActiveMQ 6。
Kafka 是一个开源的流处理平台,由 Scala 和 Java 编写;是一种高吞吐量的分布式发布订阅消息系统。
Kafka 用于构建实时的数据管道和流式应用程序。它具有水平可扩展性、容错性、速度极快。并在数千家公司投入生产。
Kafka 目前最新的版本是 2.2.0,本篇以该版本为例。Apache Kafka 官网,Apache 软件基金会(ASF) 官网。
本篇基于本地事件表加 ActiveMQ 实现分布式事务。
本篇是 分布式微服务应用系列(九):分布式事务概念及解决方案 ,分布式微服务应用系列(十):本地事件表加消息队列实现分布式事务思路 的延续。
可以给线程指定异常处理类来捕获异常进行自定义处理。
线程中的异常可通过线程组异常处理来实现异常传递,线程组 ThreadGroup 实现了 Thread.UncaughtExceptionHandler 接口。
设计模式(十四):模版方法模式(Template Method Pattern)
模版方法模式是非常常见的模式,并且用户往往使用了模板方法模式而没意思到自己已经使用了这个模式。模板方法模式是行为模式。
生活中在做某些事情时,往往存在重复的步骤,例如用户银行办事,有要办存款,办取款等,但都需要经过 取号,填单,排队,等叫号这些步骤,这些重复的步骤延伸到软件设计里就可以对其进行抽象,在抽象类里定义流程或格式(方法的调用方式(步骤的顺序)),子类继承并且可按需重写方法(步骤)。例如,简历模板,论文模板等。
在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配(转换)。例如,使用电脑电源适配器将220V家用电转换为电脑需要的电。
在软件设计中,也可能出现需要的功能在现有的组件库中已存在,但与现有系统并不兼容,这时使用适配器模式就可以将并不兼容的接口转换为客户希望的目标接口。
使用适配器模式来处理像货物的包装过程,被包装的货物的真实样子被包装所掩盖和改变,因此也被叫做包装(Wrapper)模式。