2009-06-09 15 views
11

Próbuję zbudować serwer obrazu WWW. Obsługuje obrazy wielu klientom (10 tysięcy +) jednocześnie. (Będzie to łatwiejszy problem, jeśli będzie mniej klientów.) Co to jest dobry sposób na zrobienie tego, z opóźnieniem tak małym, jak to tylko możliwe.Jak zbudować serwer obrazu?

Jestem nowy na tym polu. Wszelkie sugestie będą mile widziane.

+0

Czy bierzesz za pomocą istniejącego serwera druku? http://en.wikipedia.org/wiki/Image_server –

Odpowiedz

7

Zdecydowanie rozejrzyj się za dobrą usługą dostawy. Akamai jest najbardziej znany.

jeśli naprawdę chcesz to zrobić na własną rękę, zapomnij o Apache/IIS. dużo bardziej odpowiednie są "lekkie" serwery. Dwa bardzo dobre to lighthttp i NginX (wiki). NginX w szczególności ma naprawdę solidną wydajność.

Edytuj: Sieci dystrybucji treści (CDN) rozwinęły się w ciągu ostatnich kilku lat i znacznie łatwiej znaleźć łatwiejsze i tańsze. W szczególności bardzo proste jest umieszczenie statycznej zawartości w usłudze Amazon S3 i użycie CloudFront.

+0

Próbowałem Nginx i jest to naprawdę zgrabny serwer. Dzięki. – Lily

1

W jaki sposób można wyświetlać obrazy? Czy obrazy są generowane w locie? czy są statyczne i przechowywane w formacie .jpg lub innym formacie w systemie plików?

Tak czy inaczej, użyłbym ASP.NET .ashx (ogólne programy obsługi) i skorzystałam z klas System.Drawing.

Będziesz także chcą Balancing konfiguracji TCP/IP Network obciążenie na http://support.microsoft.com/kb/323431

+0

Wszystkie obrazy są generowane w locie. – Lily

+0

Dlaczego głosowanie w dół? – Nate

2

z tym wielu klientów, warto zajrzeć do korzystania z sieci dystrybucji treści (takich jak Akamai). Na powierzchni może wydawać się drogie, ale jeśli naprawdę spojrzeć na koszty utrzymania sprzętu, a zwłaszcza koszt przepustowości, zaczyna sens ekonomiczny.

2

Jeśli chcesz zaprojektować najszybszy serwer plików statycznych o najniższym opóźnieniu, oto jak to zrobię.

  1. Użyj pętli zdarzeń do wykrycia których gniazda są gotowe
  2. Put tych gniazd w kolejce
  3. Tworzenie stos wątków do czynienia z gniazdami (1 dla każdego rdzenia). Kiedy skończą, odłóż je na stos.
  4. Przypisywanie pracy do wątków.
  5. Cache wszystkie pliki obrazów w pamięci.

Jest to zasadniczo to, co IO uzupełnienia portów minus buforowanie plików. Ten model jest dostępny w systemach Windows i Solaris.

http://technet.microsoft.com/en-us/sysinternals/bb963891.aspx

alt text