CHATGPT给出的nats对比
这个基本是ok,nats focus 在realtime ,但缺少了iot,另外nats的核心是快速,在core里面其实没有提供al least once, exactly once模式
架构
nats 的最底层,分为
- server
- cluster ,由多个server构成
- Gateway , 逻辑概念,通过route实现cluster之间通讯和控制
- leaf node,边缘节点
nats server/lead的核心对象
- subject ,nats 内部的存储基本都是subject,包括inbox/stream其实也是一种subject,内部server信息也是保存在$SRV开头的subject下
- disk storage,stream = subject+disk storage + server ARK
- reply/inbox,这个是nat的一个特点,每次message 都可以指定inbox接收返回,stream和request/reply模式都是通过inbox实现的
- queue,用于消费者分组,同一message只会发生给queue里面的一个consumer实例
nats的serviceframe = request/reply+queue +指定$SRV subject
用户、认证和其它
- Operator ,可以理解为root,连接不同cluster进行account/user 维护,包括subject /stream的访问权限关联
- account ,account可以理解为多个user的group,nats 的subject/stream支持在account/user两级设置
- user ,最终访问者
user访问模式
- 用户+密码,这种模式如果没有指定user归属account,为默认sys account,不推荐
- creds ,使用类似ssl证书模式,但实际体现为一个长字符串进行认证,即nsc的sign模式
account/user分类
- sys, 每个cluster有且只有一个,没有显式知道为$G
- common, 非sys
Subject Mapping:通过消息mapping,实现原始subject按policy 转发到一个或者多个subject下,用于灰度分流,细分访问控制等场景