Доброго дня Уважаемые. Созрел вопрос. (только не надо спрашивать: "зачем тебе оно надо") Как известно каждый демон работает независимо друг от друга, при этом связан в логическую цепочку. Читал гайд, как glink вывести на сторонний сервер отдельно. Так вот. Как gs вывести на отдельный сервер? теоретически просто. Просто указать нужный путь. Но на деле беда. суть такова. Имеется два одинаковых сервера. Две копии. Что в одном что во втором запущены все игровые службы, но как одному из них дать понять что демон GS работает на другом сервере? или вывести GS вообще на отдельный сервер для двух серверов. Чтобы синхронизация открытых данжей была. P.S. и что будет если версии будут отличаться? например 1.3.6 и 1.5.1? Ну я предполагаю Линк. Вот как я это вижу Я как понимаю GS будет использоваться как независимый демон. что ,Даст разгрузку на машине.
Нужно поменять вроде только порты и ип адреса в конфигах сервисов чтобы приконетить остальные сервисы к гсу и гс к ним. У разных версий разные пакеты с помощью которых сервисы связываются друг с другом, даже если и удастся переписать эти пакеты то всё ровно будет линк или просто некоторые функции не будут работать.
Какие именно конфиги править? чтобы прицепиться к ГС. Тупанул. Линк будет да, если разных версий сервисы. Чёт я нубнул И в gs.conf за что отвечает конфиг 代码: [MsgTCPSession] type = tcp address = 127.0.0.1 port = 12341 so_sndbuf = 65536 so_rcvbuf = 65536 tcp_nodelay = 0 [MsgUNIXSession] type = unix address = /tmp/foo so_sndbuf = 65536 so_rcvbuf = 65536 ???
В gs.conf вроде не надо менять ничего. В gmserver.conf порты к которым конетятся сервисы. Поставьте там ип адрес у портов 29301-29308 той машины на которой гс, либо ип 0.0.0.0 (на гс отправляются пакеты от глинка через эти порты). Дальше поменяйте в glink/gamesys.conf ип адреса той машины на которой gs. Далее та же процедура с остальными сервисами где используются эти порты. Также имейте ввиду что если к данным портам приконетиться кто-то другой то у вас могут быть большие проблемы с сервером. Могут отправить на гс свои пакеты.
Ядро и есть независимый демон. Его можно вынести на отдельную машину, благо архитектура позволяет. Требуется лишь в некоторых конфигах изменить IP адреса. PS. Все демоны сервера PW независимы и спокойно разносятся по разным машинам.
Все выносится, главное правильно настроить все конфиги. Про gsalias.conf не забудь для связи между разными данжами.
Чего то я видимо не понял. Вот код gmserver.conf который в /etc/ а что с gsalias.conf делать? я не понял. Я просто всю папку \conf\ на демоне оставлю. всё что есть в \gamed\ --- добавлено: 25 май 2016 в 20:16 --- я предполагаю что правку нужно делать только в файле host 代码: 127.0.0.1 gmserver 10.0.2.15 dbserver какой то из них. и вопрос. Сам gs демон использует какой-нибудь порт?
Для начала нужно четкое понимание, что такое клиент и сервер. Тогда будет не сложно пройтись по всем конфигам сервера и внести нужные правки (и это не только в gamed, а в остальных сервисах тоже). Практически каждый сервис работает и как клиент (подключается к другим сервисам) и как сервер (принимает коннекты от других сервисов). Этот файл там не нужен, это из каких-то "умных" сборок.
Понимание есть. Я не знаю за что отвечают многие службы Например вот что это за служба и за что она отвечает хз 代码: [GProviderServer1] type = tcp port = 29301 address = 127.0.0.1 so_sndbuf = 65536 so_rcvbuf = 65536 ibuffermax = 1048576 obuffermax = 1048576 tcp_nodelay = 0 accumulate = 268435456 в glink\gamesys.conf какой поэтому конфиг править не могу допетрить. Все службы описанные есть, только вот gs не вижу. Как мне к работающему сервису привязаться? Алекс если знаешь помоги пожалуйста
Один из нескольких портов идущих от глинка к гс (нужен для того чтобы глинк мог посылать свои пакеты на гс). в gs поставьте: address = 0.0.0.0 в глинке поставьте: address = (ип машины на которой гс). Только я вот немного не понимаю зачем в gsalias.conf что-то менять, у меня там всегда стояло вот это: [General] world_servers = gs01;arena01;arena02;arena03;arena04;is02;is12;is13;is18;is19;is20;is21;is22;is28;is31;is32;is33;is34;b05; instance_servers = is01;is05;is06;is07;is08;is09;is10;is11;is14;is15;is16;is17;is23;is24;is25;is26;is27;is29;bg01;bg02;bg03;bg04;bg05; [Template] Root = ./config/ а в gs.conf это: [MsgReceiverTCP_gs01] type = tcp listen_addr = 127.0.0.1:17501 so_sndbuf = 16384 so_rcvbuf = 16384 tcp_nodelay = 0 listen_backlog = 10 И вроде всё работало когда я ставил.
не вообще сервер не видит --- добавлено: 25 май 2016 в 23:01 --- Если не менять glink/gamesys.conf а в клиенте прописать дополнительно 29001 и более портов, вообще дивная вещь. 29000 как будто труп. хотя ip локальный для всех а 29001 работает. Только вот зайти не могу До 30 сек весит и вылет
Из названия секции видно, что это сервер, значит нужно открыть его на внешку (если он стоит на отдельной машине), а в конфигах клиента других сервисов по этому порту указать соотв айпи машины, где этот сервис установлен. 代码: [AddrAlias] WORLD01 = game1 ARENA01 = game2 ARENA02 = game2 и прочие Тут айпи адреса gs, соотв. если мир будет на отдельной машине - WORLD01 = айпи_этой машины
GProviderServer - сервер(приёмник сообщений), который ждёт подключения от GS. Используется для общения с ядром. В случае, если мы выносим ядро на отдельную машину, то IP адреса в секциях GProviderServer нужно установить как 0.0.0.0, и в конфиге ядра(там должны быть подобные секции типо GProviderClient) указать IP машины куда мы вынесли ядро. PS. Увидел картиночки... Почему-то мне кажется нельзя повесить 2 сервера на 1 ядро. Как минимум из-за того, что в конфиге ядра всего 1 секция для настройки соединения с базой, а баз в нашем случае 2.