Jump to content

Fórum

  1. Obecné

    1. Všeobecné

      Sekce, jež sdružuje podsekce týkající se fóra.

      388
      témat
      5.8k
      příspěvků
    2. Všechno možné

      Sekce, kam lze vkládat vše, co nelze zařadit jinam.

      5.5k
      témat
      64.5k
      příspěvků
  2. Programování

    1. Poradna

      Podkategorie, jež sdružuje žádosti o pomoc.

      13.3k
      témat
      100k
      příspěvků
    2. Návody

      Podkategorie, jež sdružuje návody a tipy/triky.

      1.1k
      témat
      16.7k
      příspěvků
    3. Tvorba

      Podkategorie, jež sdružuje témata prezentující vlastní tvorbu.

      3.4k
      témat
      51.4k
      příspěvků
    4. Hledám programátora

      Hledáte programátora? Pište do této sekce.

      105
      témat
      532
      příspěvků
  3. Herní oblast

    1. Poradna

      Podkategorie, jež sdružuje žádosti o pomoc.

      6
      témat
      20
      příspěvků
    2. Jak na to?

      Podkategorie, jež sdružuje návody a tipy/triky.

      4
      témat
      13
      příspěvků
    3. Herní kontext

      Podkategorie, v níž jsou témata týkající se her.

      18
      témat
      162
      příspěvků
    4. Herní zážitky

      Podkategorie, kde lze sdílet zážitky z her.

      7
      témat
      63
      příspěvků
    5. Komunita

      Podkategorie, v níž lze prezentovat herní klany, hostingy a jiné projekty.

      314
      témat
      3.8k
      příspěvků
  4. Grafika

    1. Poradna

      Podkategorie, jež sdružuje žádosti o pomoc.

      291
      témat
      3.1k
      příspěvků
    2. Návody

      Podkategorie, jež sdružuje návody a tipy/triky.

      • Zatím bez příspěvků
    3. Tvorba

      Podkategorie, jež sdružuje témata prezentující vlastní tvorbu.

      305
      témat
      5.7k
      příspěvků
  5. Ostatní

    1. Hardware a software

      Sekce týkající se hardwaru a softwaru – počítače, mobily, tablety, operační systémy, aplikace atd.

      1k
      témat
      8.7k
      příspěvků
    2. Hledám/nabízím

      Sekce, ve které můžete zveřejňovat nabídky a poptávky.

      2.9k
      témat
      21.5k
      příspěvků
    3. Archiv

      Archiv starých a již nezařaditelných témat.

      1.1k
      témat
      15.8k
      příspěvků
    4. 3D Tisk

      3D tiskárny, printing a vše okolo plasto-tvorbě. 

      1
      téma
      19
      příspěvků
  • Reklama

  • Kdo je online? (Celý seznam)

    • There are no registered users currently online
  • Změny statusů

  • Příspěvky

    • tyjo, to je docela zajimavy, hlavne jestli to umi automatickou persistenci 
    • Microsoft Orleans: Framework pre Distribuované Aplikácie Čo je Microsoft Orleans? Microsoft Orleans je framework na tvorbu distribuovaných, vysoko škálovateľných a spoľahlivých aplikácií v .NETe. Bol vyvinutý v Microsoft Research a je založený na virtual actor pattern, čo uľahčuje prácu s objektami v distribuovanom prostredí. Orleans je navrhnutý tak, aby minimalizoval potrebu manuálnej správy stavových objektov a synchronizácie, čo z neho robí ideálne riešenie pre aplikácie, ktoré vyžadujú vysokú dostupnosť a horizontálnu škálovateľnosť, ako napríklad herné servery, IoT systémy, finančné aplikácie či analytické platformy. Hlavné Vlastnosti Orleans Virtual Actors: Objekty (aktéri), ktoré automaticky „ožívajú“ a „zanikajú“ podľa potreby, bez manuálneho riadenia ich životného cyklu. Distribuovaná správa stavov: Aktéri uchovávajú svoj stav v perzistentnom úložisku a obnovujú ho pri reaktivácii. Automatické škálovanie: Orleans dynamicky prerozdeľuje zaťaž v klustri. Jednoduchosť: Používa sa podobne ako klasický objektový model v C#. Podpora cloudových riešení: Nativne podporuje Azure, ale je použiteľný aj v iných prostrediach ako napriklad Kubernetes. Virtual Actor Pattern Orleans je postavený na Virtual Actor Model, ktorý eliminuje manuálnu správu aktérov. Tento model rieši niektoré nevýhody klasického Actor Model (ako v Akka.NET) nasledujúcim spôsobom: Nie je potrebné manažovať životný cyklus aktérov – aktéri existujú virtuálne a sú aktivovaní, keď sú potrební. Automatická persistencia – stav aktéra môže byť uložený v perzistentnom úložisku (napr. SQL, Azure Table Storage, DynamoDB). Transparentné spracovanie správ – odosielanie správ nevyžaduje vedieť, kde aktér beží, systém ho nájde automaticky. Príklad definície aktéra v Orleans: public interface IPlayer : IGrainWithStringKey { Task<int> GetScore(); Task SetScore(int score); } public class PlayerGrain : Grain, IPlayer { private int _score; public Task<int> GetScore() => Task.FromResult(_score); public Task SetScore(int score) { _score = score; return Task.CompletedTask; } } Príklad volania PlayerGrain: IGrainFactory grainFactory = ...; // Inicializácia Orleans Grain Factory var player = grainFactory.GetGrain<IPlayer>("player1"); await player.SetScore(100); int score = await player.GetScore(); Console.WriteLine($"Hodnotenie hráča: {score}"); Ako Orleans Funguje? Orleans beží na klustri serverov a riadi aktérov v rámci uzlov (silo). Každý uzol je schopný hostovať aktérov a spracovávať ich požiadavky. Základné komponenty: Grain (aktér) - Logická jednotka, ktorá uchováva stav a vykonáva operácie. Silo - Serverový proces, ktorý hostuje aktérov. Client - Externý proces, ktorý volá aktérov cez API. Storage Providers - Mechanizmus pre perzistenciu stavu. Komunikácia medzi aktérmi Aktéri v Orleans komunikujú asynchrónne pomocou správ odosielaných cez framework. Každý aktér je identifikovaný unikátnym kľúčom a môže byť vyhľadaný prostredníctvom IGrainFactory. Komunikácia medzi aktérmi prebieha cez proxy objekty generované Orleans runtime, ktoré zabezpečujú správne smerovanie správ. Príklad volania iného aktéra z aktuálneho aktéra: public class PlayerGrain : Grain, IPlayer { public async Task SendChallenge(string opponentId) { var opponent = GrainFactory.GetGrain<IPlayer>(opponentId); await opponent.ReceiveChallenge(this.GetPrimaryKeyString()); } public Task ReceiveChallenge(string challengerId) { Console.WriteLine($"Hráč {challengerId} vás vyzval na súboj!"); return Task.CompletedTask; } } V tomto prípade aktér PlayerGrain posiela výzvu inému aktérovi PlayerGrain prostredníctvom jeho identifikátora. Orleans runtime zabezpečí, že správa sa doručí správnemu aktérovi, aj keď momentálne nie je aktívny. Kde sa Orleans Používa? Microsoft Orleans je široko používaný v rôznych odvetviach: Herný priemysel: Používa ho napr. Bungie pre Destiny 2. IoT a telemetria: Zber a spracovanie veľkého množstva udalostí. Finančné systémy: Distribuované spracovanie obchodných transakcií. Analytika a AI: Pracuje s distribuovanými modelmi strojového učenia. Záver Microsoft Orleans je silný framework pre tvorbu distribuovaných aplikácií v .NET ekosystéme. Jeho virtual actor pattern robí prácu s distribuovanými objektmi jednoduchšou a menej náročnou na správu. Ak hľadáte riešenie pre vysokoškálovateľné systémy s automatickou distribúciou a perzistenciou, Orleans je skvelou voľbou.
    • Ty to mas tak slozity, ze v tom dockeru to jeste buildis... Ten muj docker file je maly v tom, ze pouzivam uz vybuildenou appku a jen se v dockeru spousti. Samozrejme ze pokud chces v dockeru buildit tu appku tak se musi nastavit komplet cely vyvojovy prostredi v dockeru. 
    • Neříkám, že jsem nějaký profík na Docker, ale Astro SSR v dokumentaci: FROM node:lts AS base WORKDIR /app # By copying only the package.json and package-lock.json here, we ensure that the following `-deps` steps are independent of the source code. # Therefore, the `-deps` steps will be skipped if only the source code changes. COPY package.json package-lock.json ./ FROM base AS prod-deps RUN npm install --omit=dev FROM base AS build-deps RUN npm install FROM build-deps AS build COPY . . RUN npm run build FROM base AS runtime COPY --from=prod-deps /app/node_modules ./node_modules COPY --from=build /app/dist ./dist ENV HOST=0.0.0.0 ENV PORT=4321 EXPOSE 4321 CMD node ./dist/server/entry.mjs A to je bez databáze a dalších service. Pokud bych chtěl databázi a další věci, tak ještě vedle musí být docker-compose atp. Ale ano, kdo to používá denně, tak je to pro něj easy, já se přiznám, že jsem to přes docker zkoušel jenom párkrát a už jen byl oser s tím, že místo npm používám bun. Ale jak to popisuješ ty, tak to zní lehce :D 
    • Jeste lehce odbocim od tematu, ale jak je docker hrozne slozity a neprehledny? Tady priklad docker nastaveni pro java aplikaci:   # Use an official Java runtime as a parent image FROM openjdk:21-jdk-slim # Set the working directory in the container WORKDIR /app # Copy the jar file from the local machine to the container COPY build/libs/myApp-0.0.1-ALPHA-all.jar /app/app.jar EXPOSE 5000 # Run the Java application CMD ["java", "-jar", "app.jar"]   pouzije to image s java 21 nastavi slozku na /app zkopiruje jar souboru do slozky otevre port 5000 na kterem bezi aplikace spusti command pro zapnuti aplikace diky tomuhle souboru se vytvori jeden file (image), ktery se da spustit v jakymkoliv prostredi kde bezi docker. Da se to hodit na docker hub a da se to spustit kdekoliv. Kdy je to local host tak docker run . kdyz je to z remote repa tak docker pull mujucet/mujimage docker run mujucet/mujimage a kdyz jsme u instalace dockeru tak  yum install docker apt install docker   je to fakt easy, slozitost v tom hledam fakt marne :D      EDIT: gg @Jiu predbehl jsi me s prispevkem asi o 10 sekund haha
  • Nejlepší reputace

    Nobody has received reputation this week.

  • Statistiky

    • Celkem témat
      33.2k
    • Celkem příspěvků
      325.2k
  • Pupulární tagy

×
×
  • Create New...