@saber000
2014-10-24T17:55:03.000000Z
字数 1534
阅读 1054
Notification Server提供了组件间的通讯接口,现暂仅提供基础的异步发布订阅模式。
后期会加上多种通讯方式、权限控制和管理、消息审计等功能。当前版本基于RabbitMQ,但仅提供HTTP接口,不排除未来会支持AMQP接口。
HTTP接口:/publish/<notify scope>
POST
/
分割。^[a-zA-Z]\w*$
。消息格式使用JSON,发布方基本结构如下:
{
"version": "ns 1.0",
"attrs": {
"time": "YYYY-MM-DDTHH:MM:SS.mmmmmm",
"msg_id": "550e8400-e29b-41d4-a716-446655440000",
"sender_id": "6063d21e-5b46-11e4-b445-000c29f3465d"
},
"data": { ... }
}
字段说明(粗体为必填项,斜体为可选项):
ns 1.0
。注意:不建议在attrs中添加自定义的信息。
服务器回馈信息也使用JSON,基本结构如下:
{
"version": "ns 1.0",
"message": "+ok message published",
"attrs": {
"time": "YYYY-MM-DDTHH:MM:SS.mmmmmm",
"msg_id": "550e8400-e29b-41d4-a716-446655440000",
"sender_id": "6063d21e-5b46-11e4-b445-000c29f3465d"
}
}
字段说明:
ns 1.0
。+ok
,失败为-err
,未知为#unkwn
。客户端发布:
POST /publish/test_project/mysql HTTP/1.1
{
"version": "ns 1.0",
"attrs": {
"time": "2014-10-23T20:57:43.524624",
"sender_id": "4a30b386-d559-4a8f-9c03-cdb6e7476d03"
},
"data": {
"event": "created_database",
"database": "testdb"
}
}
服务器反馈:
{
"version": "ns 1.0",
"message": "+ok message published",
"attrs": {
"time": "2014-10-23T20:57:43.524624",
"msg_id": "9e4d1dda-475b-4c5a-927f-92b8a319c994",
"sender_id": "4a30b386-d559-4a8f-9c03-cdb6e7476d03"
}
}