Nats 消息总线相关介绍(三):协议相关

字符串协议

Nats 使用的是字符串协议,有协议头、协议体、协议结尾符, 3 部分字符串组成

协议与协议解析相关,均在 parser.go 文件里

协议定义在 parser.go:54 - parser.go:132

协议解析在 client.parse(parser.go:134)

client.parse

Nats 为了高效解析字符串协议,因此用了字典树解析的方式,依次遍历字符,进到具体协议的分支里

要了解发布订阅的逻辑,基本只要关注以下协议:

协议说明代码位置
INFONats 节点信息同步parser.go:1048 - parser.go:1063
SUB订阅 topicparser.go:624 - parser.go:659
PUB往 topic 发布消息parser.go:476 - parser.go:497
RS+topic 订阅信息同步其他节点同 SUB 。最终走进 SUB 处理逻辑
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Kubernetes中,可以使用`StatefulSet`和`VolumeClaimTemplate`来实现对NATS的持久化存储。下面是一个简单的示例: 1. 创建`PersistentVolume`和`PersistentVolumeClaim`资源,用于在主机上创建一个物理卷(或动态创建一个云存储卷)来存储NATS的持久化数据。例如: ``` apiVersion: v1 kind: PersistentVolume metadata: name: nats-pv spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain # 根据具体情况设置下面的字段 hostPath: path: /data/nats --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nats-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi # 与上面的PV名称对应 volumeName: nats-pv ``` 2. 创建`StatefulSet`资源来启动NATS实例,并将`VolumeClaimTemplate`字段设置为上面创建的`PersistentVolumeClaim`资源。例如: ``` apiVersion: apps/v1 kind: StatefulSet metadata: name: nats spec: serviceName: nats replicas: 3 selector: matchLabels: app: nats template: metadata: labels: app: nats spec: containers: - name: nats image: nats:latest ports: - containerPort: 4222 name: client - containerPort: 6222 name: cluster - containerPort: 8222 name: http volumeMounts: - name: nats-data mountPath: /data volumeClaimTemplates: - metadata: name: nats-data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 10Gi ``` 在这个示例中,`VolumeClaimTemplate`字段是一个动态生成的`PersistentVolumeClaim`资源,它将在每个NATS实例中动态创建一个`PersistentVolume`并进行挂载。 通过这种方式,Kubernetes将会在每个NATS实例中创建一个独立的物理卷,并将其挂载到容器的`/data`目录中,从而实现对NATS的持久化存储。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fananchong2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值