mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-03 22:45:13 +08:00
提交新的说明文档
This commit is contained in:
154
README.md
154
README.md
@@ -41,44 +41,138 @@ origin引擎三大对象关系
|
|||||||
---------------
|
---------------
|
||||||
* Node: 可以认为每一个Node代表着一个origin进程
|
* Node: 可以认为每一个Node代表着一个origin进程
|
||||||
* Service:一个独立的服务可以认为是一个大的功能模块,他是Node的子集,创建完成并安装Node对象中。服务可以支持外部RPC和HTTP接口对外功能。
|
* Service:一个独立的服务可以认为是一个大的功能模块,他是Node的子集,创建完成并安装Node对象中。服务可以支持外部RPC和HTTP接口对外功能。
|
||||||
* Module: 这是origin最小对象单元,非常建议所有的业务模块都划分成各个小的Module组合。Module可以建立树状关系。Service也是Module的类型。
|
* Module: 这是origin最小对象单元,强烈建议所有的业务模块都划分成各个小的Module组合。Module可以建立树状关系。Service本身也是Module的类型。
|
||||||
|
|
||||||
origin集群核心配置文件config/cluser.json如下:
|
origin集群核心配置文件config/cluser.json如下:
|
||||||
---------------
|
---------------
|
||||||
```
|
```
|
||||||
{
|
{
|
||||||
"PublicServiceList":["logiclog"],
|
"SubNet": [{
|
||||||
|
"Remark": "Manual,Full,Auto",
|
||||||
"NodeList":[
|
"SubNetMode": "Full",
|
||||||
|
"SubNetName": "SubNet1",
|
||||||
{
|
"PublicServiceList": ["logiclog"],
|
||||||
"NodeID":1,
|
"NodeList": [{
|
||||||
"NodeName":"N_Node1",
|
"NodeID": 1,
|
||||||
"ServerAddr":"127.0.0.1:8080",
|
"NodeName": "N_Node1",
|
||||||
|
"ServiceList": [
|
||||||
"ServiceList":["CTestService1"],
|
"HttpServerService",
|
||||||
"ClusterNode":["N_Node2"]
|
"SubNet1_Service",
|
||||||
},
|
"SubNet1_Service1"
|
||||||
|
],
|
||||||
{
|
"ClusterNode":["SubNet2.N_Node1","N_Node2"]
|
||||||
"NodeID":2,
|
},
|
||||||
"NodeName":"N_Node2",
|
{
|
||||||
"ServerAddr":"127.0.0.1:8081",
|
"NodeID": 2,
|
||||||
"ServiceList":["CTestService2","CTestService3"],
|
"NodeName": "N_Node2",
|
||||||
"ClusterNode":[]
|
"ServiceList": [
|
||||||
}
|
"SubNet1_Service2"
|
||||||
|
],
|
||||||
]
|
"ClusterNode":[]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"Remark": "Manual,Full,Auto",
|
||||||
|
"SubNetMode": "Full",
|
||||||
|
"SubNetName": "SubNet2",
|
||||||
|
"PublicServiceList": ["logiclog"],
|
||||||
|
"NodeList": [{
|
||||||
|
"NodeID": 3,
|
||||||
|
"NodeName": "N_Node1",
|
||||||
|
"ServiceList": [
|
||||||
|
"SubNet2_Service1"
|
||||||
|
],
|
||||||
|
"ClusterNode":["URQ.N_Node1"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NodeID": 4,
|
||||||
|
"NodeName": "N_Node4",
|
||||||
|
"ServiceList": [
|
||||||
|
"SubNet2_Service2"
|
||||||
|
],
|
||||||
|
"ClusterNode":[]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
origin集群配置以子网的模式配置,在每个子网下配置多个Node服务器,子网在应对复杂的系统时可以应用到各个子系统,方便每个子系统的隔离。
|
||||||
|
|
||||||
origin所有的结点与服务通过配置进行关联,配置文件分为两大配置结点:
|
origin所有的结点与服务通过配置进行关联,配置文件分为两大配置结点:
|
||||||
* PublicServiceList:用于公共服务配置,所有的结点默认会加载该服务列表。
|
* SubNet:配置子网,以上配置中包括子网名为SubNet1与SubNet2,每个子网包含多个Node结点。
|
||||||
* NodeList:Node所有的列表
|
* SubNetMode:子网模式,Manual手动模式,Full通过配置全自动连接集群模式(推荐模式),Auto自动模式
|
||||||
* NodeId: Node编号,用于标识唯一的进程id
|
* SubNetName:子网名称
|
||||||
* NodeName: Node名称,用于区分Node结点功能。例如,可以是GameServer
|
* PublicServiceList:用于公共服务配置,所有的结点默认会加载该服务列表
|
||||||
* ServerAddr: 结点监听的地址与端口
|
* SubNetMode:子网集群模式,
|
||||||
* ServiceList:结点中允许开启的服务列表
|
* NodeList:Node所有的列表
|
||||||
* ClusterNode:将与列表中的Node产生集群关系。允许访问这些结点中所有的服务。
|
* NodeId: Node编号,用于标识唯一的进程id
|
||||||
|
* NodeName: Node名称,用于区分Node结点功能。例如,可以是GameServer
|
||||||
|
* ServiceList:结点中允许开启的服务列表
|
||||||
|
* ClusterNode:将与列表中的Node产生集群关系。允许访问这些结点中所有的服务。允许集群其他子网结点,例如:URQ.N_Node1
|
||||||
|
|
||||||
|
origin集群核心配置文件config/nodeconfig.json如下:
|
||||||
|
---------------
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"Public": {
|
||||||
|
"LogLevel": 1,
|
||||||
|
"HttpPort": 9400,
|
||||||
|
"WSPort": 9500,
|
||||||
|
|
||||||
|
"CAFile": [{
|
||||||
|
"CertFile": "",
|
||||||
|
"KeyFile": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"CertFile": "",
|
||||||
|
"KeyFile": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"Environment": "FS_Dev_LFY",
|
||||||
|
"IsListenLog": 1,
|
||||||
|
"IsSendErrorMail": 0
|
||||||
|
},
|
||||||
|
"NodeList": [{
|
||||||
|
"NodeID": 1,
|
||||||
|
"NodeAddr": "127.0.0.1:8081",
|
||||||
|
"LogLevel": 1,
|
||||||
|
"HttpPort": 7001,
|
||||||
|
"WSPort": 7000,
|
||||||
|
"CertFile": "",
|
||||||
|
"KeyFile": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NodeID": 2,
|
||||||
|
"NodeAddr": "127.0.0.1:8082"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NodeID": 3,
|
||||||
|
"NodeAddr": "127.0.0.1:8083"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NodeID": 4,
|
||||||
|
"NodeAddr": "127.0.0.1:8084"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
针对cluster.json中NodeId在该文件中配置具体环境的信息
|
||||||
|
* Public:公共服务配置
|
||||||
|
* LogLevel:日志等级 1:DEBUG 2:INFO 3:WARN 4:ERROR 5:FATAL。
|
||||||
|
* HttpPort:当Node需要提供http服务时,安装HttpServerService后将使用该监听端口。
|
||||||
|
* WSPort:当Node需要提供Websocket服务时,安装HttpServerService后将使用该监听端口。
|
||||||
|
* CAFile:证书配置文件,支持多个。
|
||||||
|
* NodeList:
|
||||||
|
* NodeID:结点ID,在cluster.json中所有的Node都需要在该文件中配置。
|
||||||
|
* NodeAddr:监听RPC地址与端口。
|
||||||
|
* 其他:该配置可以继承Public中所有的配置,可以在其中自定义LogLevel,HttpPort等。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
origin第一个服务:
|
origin第一个服务:
|
||||||
---------------
|
---------------
|
||||||
|
|||||||
@@ -26,16 +26,13 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"Remark": "Manual,Full,Auto",
|
"Remark": "Manual,Full,Auto",
|
||||||
"SubNetMode": "Full",
|
"SubNetMode": "Full",
|
||||||
"SubNetName": "SubNet2",
|
"SubNetName": "SubNet2",
|
||||||
"PublicServiceList": ["logiclog"],
|
"PublicServiceList": ["logiclog"],
|
||||||
"NodeList": [{
|
"NodeList": [{
|
||||||
"NodeID": 30,
|
"NodeID": 3,
|
||||||
"NodeName": "N_Node1",
|
"NodeName": "N_Node1",
|
||||||
"ServiceList": [
|
"ServiceList": [
|
||||||
"SubNet2_Service1"
|
"SubNet2_Service1"
|
||||||
@@ -43,7 +40,7 @@
|
|||||||
"ClusterNode":["URQ.N_Node1"]
|
"ClusterNode":["URQ.N_Node1"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"NodeID": 40,
|
"NodeID": 4,
|
||||||
"NodeName": "N_Node4",
|
"NodeName": "N_Node4",
|
||||||
"ServiceList": [
|
"ServiceList": [
|
||||||
"SubNet2_Service2"
|
"SubNet2_Service2"
|
||||||
|
|||||||
@@ -33,33 +33,18 @@
|
|||||||
{
|
{
|
||||||
"NodeID":2,
|
"NodeID":2,
|
||||||
"NodeAddr": "127.0.0.1:8082",
|
"NodeAddr": "127.0.0.1:8082",
|
||||||
"LogLevel":1,
|
|
||||||
"HttpPort":7002,
|
|
||||||
"WSPort":7012,
|
|
||||||
"CertFile":"",
|
|
||||||
"KeyFile":""
|
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
"NodeID":30,
|
"NodeID":3,
|
||||||
"NodeAddr": "127.0.0.1:8083",
|
"NodeAddr": "127.0.0.1:8083",
|
||||||
"LogLevel":1,
|
|
||||||
"HttpPort":7003,
|
|
||||||
"WSPort":7013,
|
|
||||||
"CertFile":"",
|
|
||||||
"KeyFile":""
|
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
"NodeID":40,
|
"NodeID":40,
|
||||||
"NodeAddr": "127.0.0.1:8084",
|
"NodeAddr": "127.0.0.1:8084",
|
||||||
"LogLevel":1,
|
"LogLevel":1
|
||||||
"HttpPort":7004,
|
|
||||||
"WSPort":7014,
|
|
||||||
"CertFile":"",
|
|
||||||
"KeyFile":""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,15 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/duanhf2012/origin/cluster"
|
"github.com/duanhf2012/origin/cluster"
|
||||||
"github.com/duanhf2012/origin/originnode"
|
"github.com/duanhf2012/origin/originnode"
|
||||||
"github.com/duanhf2012/origin/sysservice"
|
"github.com/duanhf2012/origin/sysservice"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
strings.ReplaceAll
|
||||||
node := originnode.NewOriginNode()
|
node := originnode.NewOriginNode()
|
||||||
if node == nil {
|
if node == nil {
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user