Redesign harbor/master/dummy service

This commit is contained in:
Cloud Wu
2014-06-21 17:01:59 +08:00
parent 7137850eb2
commit 9937081854
16 changed files with 793 additions and 1084 deletions

View File

@@ -3,29 +3,36 @@ local harbor = require "skynet.harbor"
skynet.start(function()
local standalone = skynet.getenv "standalone"
local launcher = assert(skynet.launch("snlua","launcher"))
skynet.name(".launcher", launcher)
local harbor_id = tonumber(skynet.getenv "harbor")
if harbor_id == 0 then
assert(standalone == nil)
standalone = true
skynet.setenv("standalone", "true")
local dummy = assert(skynet.launch("dummy"))
harbor.init(dummy)
else
local master_addr = skynet.getenv "master"
local slave = skynet.newservice "cdummy"
if slave == nil then
skynet.abort()
end
skynet.name(".slave", slave)
else
if standalone then
assert(skynet.launch("master", standalone))
if not skynet.newservice "cmaster" then
skynet.abort()
end
end
local local_addr = skynet.getenv "address"
local h = assert(skynet.launch("harbor",master_addr, local_addr, harbor_id))
harbor.init(h)
local slave = skynet.newservice "cslave"
if slave == nil then
skynet.abort()
end
skynet.name(".slave", slave)
end
local launcher = assert(skynet.launch("snlua","launcher"))
skynet.name(".launcher", launcher)
if standalone then
local datacenter = assert(skynet.newservice "datacenterd")
skynet.name("DATACENTER", datacenter)