变量申明
下文中,所有{}表示一个变量,使用到的变量如下:
名称 | 类型 | 说明 |
---|---|---|
{SysName} | string | 系统名称,相同系统中的组件才可以通讯 |
{AppName} | string | 应用名称,每个组件的标识 |
{AppID} | string | 应用ID,每个组件实例的唯一标识(不能重复) |
{FuncName} | string | RPC方法注册名称,用于调用本方法 |
{EventName} | string | 事件的名称 |
通信载体
使用Rabbit MQ消息队列作为消息承载体
Exchange
用途 | 名称 | 类型 |
---|---|---|
消息总分发 | {SysName} | Topic |
消息队列:
用途 | 队列名 | Route Key |
---|---|---|
事件处理 | {SysName}_event_{AppName} | event.{AppName}.{Event} |
RPC服务器 | {SysName}_rpc_srv_{AppName} | rpc.srv.{AppName} |
RPC客户端 | {SysName}_rpc_cli_{AppName}_{AppID} | rpc.cli.{AppName}.{AppID} |
通信消息包
通信消息包中,使用JSON数据包进行通信
消息包字段
名称 | 类型 | 值 | 说明 |
---|---|---|---|
from | string | {AppName}.{AppID} | 发出RPC或事件的组件名称{AppName}和ID{AppID} |
to | string | {AppName} or "event" | RPC请求为要请求的组件名称{AppName},事件为“event” |
action | string | {FuncName} or {EventName} | RPC为{FuncName},事件为 {EventName} |
params | string | 消息JSON | 真正要传递的消息包体 |
示例
{ "from":"sion.yxPDG0MRQaJF4rzLfYZ2", "to":"nymph", "action":"tokens.get", "params":{ "header":{ "apiver":"", "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Njk5NDQ0NTOt_UQ8" } } }