开发者社区 > 云原生 > 云消息队列 > 正文

关于Apache RocketMQ,问个rocketmq源码的问题

[版本] 4.9.2 [问题] 为什么NettyRemotingClient中,《NameServer地址列表namesrvAddrList》和《被选中NameServer地址namesrvAddrChoosed》两个变量要用AtomicReference?对这两个变量的访问都是get和set,并没有CAS操作。 多线程访问的下,似乎用volatile修饰就可以了。 图片.png 图片.png 图片.png

展开
收起
wenti 2023-01-08 16:57:34 232 0
1 条回答
写回答
取消 提交回答
  • volatile 又不具有 原子性 不能保证线程安全——该回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群“

    2023-01-08 20:39:02
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载

    相关镜像