- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sf_atom接口文档说明
Atom功能简要说明
Atom支持两种全局唯一id生成的场景,两种场景分别对应atom的两个不同的子系统。
场景一(atom-idonly):单纯获取全局唯一id,不要求基于请求内存进行分配。如planid、unitid、winfoid等,业务系统每次只是从atom-idonly中获取一个全局唯一的id;
场景二(atom-idword):基于请求的内容(字符串)分配id,如果相同的内容已经分配,则返回原来已经分配的id,如果没有分配,则分配新的全局唯一id。并且支持从id到内容的反查询。如wordid(两个相同的字面,wordid要相同);
交互协议以及服务说明
交互协议中的常量定义
以下常量在atom-idonly与atom-idword中共用。
常量含义备注返回码(res_status)static const int SG_SUCC = 0;成功static const int ATOM_INVALID_REQ_TYPE = 4; 不合法的请求码static const int ATOM_EXCEED_ALLOWED_ID_NUM = 5;批量请求个数超过上限static const int ATOM_INVALID_PACK_BODY = 6;包体数据有问题static const int ATOM_INVALID_HEADER = 7;包头数据有问题static const int ATOM_EXCEED_MAX_PACK = 8;包体数据大小超过上限值请求码(type)1keyword id生成请求2group id生成请求3unit id生成请求4word id生成请求5根据id查询word请求没有查到word时,不返回改id的相应数据.6查询word是否存在请求存在返回对应的id,不存在,返回07idea id生成请求8mc id分配请求9media id分配请求10tmp mc id分配请求11hist mc id分配请求12tmp mediaid分配请求13adrc adid分配请求14adrc launchid分配请求其他static const int ATOM_MAX_WORD_LEN = 64;最大的word长度static const int IDONLY_MAX_REQ_NUM = 5000;id only类型批量请求的上限static const int IDWORD_MAX_REQ_NUM = 2000;word类型批量请求的上限static const int ATOM_MAX_PACK_LEN = (ATOM_MAX_WORD_LEN + 2 * sizeof(int)) * IDWORD_MAX_REQ_NUM最大包体长度word id + word_len + word, 所以一个数据节点的长度是2个int + word的最大长度
服务说明
服务可支持长、短连接。如果长连接在一段时间内没有请求数据,server会主动关闭连接,以避免资源浪费;
支持批量请求,但是批量请求个数有上限,具体上限见协议说明;
超时默认设置
读超时: 5s
写超时: 5s
连接超时: 5s
Atom-idonly
请求协议
typedef struct _pack_req_header_t
{
int version;
int req_num;
int keeplive;
int type;
char reserved[8];
} pack_req_header_t;
包头协议字段定义:
协议字段类型取值范围单位字段含义备注versionint必须为1版本号req_numint0请求的id个数keepliveint任意是否长连接0:短连接,其他为长连接typeint常量定义中的请求码1, 2, 3, 7,8,9无请求码reservedchar[8]保留字段
应答协议
typedef struct _pack_rsp_header_t
{
int res_status;
unsigned int res_num;
unsigned int start_id;
unsigned int end_id;
unsigned int step;
char reserved[8];
} pack_rsp_header_t;
返回包应答协议字段定义:
协议字段类型取值范围单位字段含义
文档评论(0)