Document Orleans ports and cover grain deactivation
CI / test (push) Successful in 1m27s
Details
CI / test (push) Successful in 1m27s
Details
This commit is contained in:
parent
f60805d27c
commit
67d48b11d3
|
|
@ -49,6 +49,11 @@ dotnet run --project server/src/Vanguard.Server --urls http://localhost:5080
|
|||
# проверка: http://localhost:5080/health
|
||||
```
|
||||
|
||||
Orleans по умолчанию выключен; `Orleans__Enabled=true` включает silo в том же
|
||||
процессе. В `docker-compose.yml` он уже включён; для локального запуска без
|
||||
Orleans ничего дополнительно настраивать не нужно. Состояние соединений
|
||||
остаётся в процессе, поэтому несколько реплик сервера пока не поддерживаются.
|
||||
|
||||
Контейнер: `docker compose up --build`, затем `http://localhost:8080/health`.
|
||||
Порт задаётся в `.env` (`VANGUARD_PORT`, `VANGUARD_WS_URL`); стек включает
|
||||
PostgreSQL и Redis (AOF). HTTP-контракт очереди и тикетов — `docs/server-api.md`.
|
||||
|
|
|
|||
|
|
@ -257,11 +257,13 @@ Solution — **`server/Vanguard.slnx`**, не `.sln`.
|
|||
`Storage:ConnectionString`; `Redis:Configuration`. `Memory` — EF InMemory
|
||||
для тестов, `Postgres` — постоянное хранилище.
|
||||
- **Orleans**: `Orleans:Enabled` (`false` по умолчанию, `true` в compose).
|
||||
Включённый режим поднимает silo с localhost-clustering в том же процессе;
|
||||
Включённый режим поднимает silo с localhost-clustering в том же процессе
|
||||
(`Orleans:SiloPort` / `GatewayPort`, по умолчанию 11111/30000);
|
||||
`MatchActorGrain` держит доменный `MatchGrain`, `IMatchConnectionRegistry`
|
||||
остаётся в процессе. Граны `[KeepAlive]`: WebSocket нельзя потерять при
|
||||
выгрузке. Один silo на инстанс; для нескольких реплик нужен настоящий
|
||||
кластер и внешний реестр соединений. Тест кластера — `OrleansMatchTests`.
|
||||
выгрузке; завершённые матчи выгружаются после `CompletedMatchTtlSeconds`.
|
||||
Один silo на инстанс; для нескольких реплик нужен настоящий кластер и
|
||||
внешний реестр соединений. Тест кластера — `OrleansMatchTests`.
|
||||
- **Docker**: `Dockerfile` + `docker-compose.yml` поднимают postgres, redis
|
||||
(AOF) и сервер; `/health` на `http://localhost:8080` (порт меняется
|
||||
через `VANGUARD_PORT`, адрес WebSocket — `VANGUARD_WS_URL`).
|
||||
|
|
@ -471,7 +473,8 @@ Solution — **`server/Vanguard.slnx`**, не `.sln`.
|
|||
включается `Orleans:Enabled=true`, в compose включён. `MatchGrain` остался
|
||||
доменным ядром, соединения вынесены в `IMatchConnectionRegistry`,
|
||||
`MatchActorGrain` восстанавливается из снапшота на активации. Покрыто
|
||||
`OrleansMatchTests` (тестовый кластер).
|
||||
`OrleansMatchTests` (тестовый кластер) и `OrleansServerE2ETests` (полный
|
||||
матч через HTTP/WebSocket при включённом silo).
|
||||
|
||||
Критерий готовности серверного блока выполнен: два клиента играют полный
|
||||
матч по сети; kill клиента восстанавливается через новый тикет и
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ public class OrleansMatchTests
|
|||
Assert.True(after.EventSeq >= summary.EventSeq);
|
||||
Assert.True(await actor.HasPlayerAsync("p1"));
|
||||
Assert.False(await actor.HasPlayerAsync("stranger"));
|
||||
|
||||
await actor.DeactivateAsync();
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue