**v2.4 在 Broker 集群“可用性”方面有了极大的增强：**

* 增加安全停止模式
* 增加二段式停止协议
* 增加 ip_hash 转发模式（可用于有状态或需要序顺的场景） 
  * Broker 的四种转发模式：`name`,`name!`,`name*`,`*`
* 调整了几个配置名，突出语义性

关于Broker 集群模式相关，可参考：[《Broker 集群模式》](/article/737)


### for Java

* 添加 LoadBalancer 集群负载均衡工具
* 添加 BrokerListener 新的转发路由机制，固定给某个接收者（name!）
* 调整 Socketd 开头的异常类改为 SocketD 开头（与 python 统一）
* 调整 几个配置名


| 接配置名         | 新配置名            | 备注                       |
|--------------|-----------------|--------------------------|
| maxThreads   | exchangeThreads | 交换线程数，用于消息接收等（原来的名字，语义不明） |
| coreThreads  | codecThreads    | 解码线程数，用于编解码等（原来的名字，语义不明）  |
| /            | ioThreads       | Io线程数，用于连接等               |
| sequenceMode | sequenceSend    | 有锁顺序发送（原来的名字，语义不明）                   |
| /            | nolockSend      | 无锁发送                     |

备注：关于线程配置，在不同的适配时使用情况不同。其中 exchange 支持直接配置线程池（以支持 jdk21 的虚拟线程池）



### for JavaScript

* 添加 LoadBalancer 集群负载均衡工具
* 调整 Socketd 开头的异常类改为 SocketD 开头（与 python 统一）
* 调整 几个配置名


| 接配置名         | 新配置名            | 备注                        |
|--------------|-----------------|---------------------------|
| maxThreads   | exchangeThreads | 交换线程数，用于消息接收等（原来的名字，语义不明） |
| coreThreads  | codecThreads    | 解码线程数，用于编解码等（原来的名字，语义不明）  |
| /            | ioThreads       | Io线程数，用于连接等               |

备注：关于线程配置在 js 里，基本没用到