Rainbows! est un serveur HTTP pour les applications en rack endormis. Il est basé sur Unicorn, mais conçu pour gérer les applications qui se attendent à de longs temps de requête / réponse et / ou les clients lents. Pour les applications en rack pas fortement liés par lents dépendances de réseau externes, envisager Licorne plutôt comme plus simple et plus facile à déboguer.
Rainbows! est pour les choses bizarres Licorne échoue à:
* API 3e partie (aux services en dehors de votre contrôle / LAN)
* Consommateurs OpenID (aux fournisseurs indépendants de votre volonté / LAN)
* Inverse implémentations proxy avec l'édition / censure (à amonts hors de votre contrôle / LAN)
* Comet
* BOSH (avec les clients lents)
* Serveur HTTP poussoir
* Interrogation longue
* Inverse Ajax
Rainbows peuvent également être utilisés pour servir les clients lents même avec des applications rapides en utilisant le modèle de concurrence Rev.
Installation:
Vous pouvez télécharger l'archive depuis la page du projet sur Rainbows Rubyforge et exécuter setup.rb après l'avoir déballé:
rubyforge.org/frs/?group_id=8977
Vous pouvez également installer via Rubygems sur Rubyforge:
& Nbsp; gem install-ciel
Utilisation:
pour les applications en rack
Dans racine_app (où est situé config.ru), exécutez:
& nbsp; rainbows
Rainbows! liera à toutes les interfaces sur le port TCP 8080 par défaut.
Fichier de configuration (s)
Rainbows! va chercher le fichier utilisé par config.ru rackup dans racine_app.
Pour les déploiements, il peut utiliser un fichier de configuration pour Licorne et Rainbows! Les options spécifique de spécifiés par le commutateur de ligne de commande --config-file / -c. Rainbows! accepte toutes les options trouvées dans Licorne :: Configurator ainsi que le & ldquo;! Rainbows & rdquo; bloc, afin que vous puissiez avoir la suivante dans votre fichier de configuration:
& Nbsp; Rainbows! faire du
& Nbsp; l'utilisation: Revactor
& Nbsp; 400 worker_connections
. & Nbsp; fin
Caractéristiques :
- Conçu pour rack, la norme pour les applications Ruby HTTP modernes
- Construit sur Unicorn, héritant ses fonctionnalités de gestion processus / socket tels que les mises à niveau transparentes et Ruby configuration DSL.
- Comme avec Licorne, il est en mesure de diffuser de grands corps de requête large de la prise à l'application alors que le client est toujours ajout. Depuis Rainbows! peut gérer les clients lents, cette fonction est plus utile que ce est avec Unicorn.
- Combine concurrence des poids lourds (des processus de travail) avec simultanéité léger (Acteurs ou fils), permettant CPU / mémoire / disque pour être mis à l'échelle indépendamment de connexions clientes. Modèles de concurrence alternatifs (énumérés dans la TODO) seront soutenus que nous trouvons le temps pour eux.
Quoi de neuf dans cette version:
- Cette version ajoute le support pour les utilisateurs rack 1.5.x détournement. Voir la documentation de rack pour plus d'informations sur le détournement. Lin Jen-Shin a également fourni l'-N / - option sans défaut-middleware. Nettoyages d'emballage mineures et nouveau document de piratage.
- Il ya aussi quelques corrections de bugs coin cas pour * * utilisateurs EPoll (sleepy_penguin, ces bugs ne EM ou utilisateurs Cool.io affecte) et l'amélioration de la portabilité de suite de tests.
Ce qui est nouveau dans la version 4.4.3:
- Cette version corrige deux corrections de bogues de eventmachine de Lin Jen- Shin et Mark J. Titorenko. Il ya aussi quelques nettoyages mineurs.
Ce qui est nouveau dans la version 4.4.2:
- flux
- Une correction de bogues permet (: keep_open) dans Sinatra pour fonctionner correctement.
Quoi de neuf dans la version 4.4.1:
- Options de concurrence à base de fibres évite intervalles négatifs du sommeil. Merci à Lin-Shin Jen pour cette précision.
Qu'est-ce que de nouveaux dans la version 4.4.0:
- Pour epoll modèles de concurrence / base-Cool.io , shutdown () est maintenant utilisé pour temporisation clients keepalive pour éviter les conditions de course.
- amélioration de la documentation mineures ont été apportées.
Ce qui est nouveau dans la version 4.3.1:
- Cette version corrige une impasse de réentrée potentiel lorsque vous utilisez le enregistreur de la bibliothèque standard Ruby par défaut.
Quoi de neuf dans la version 4.3.0:
- Les Rainbows obsolètes :: HttpResponse classe est finalement disparu grâce à Pratik Naik. Enregistrement des erreurs est plus compatible avec les changements dans 4.1.0 licorne. Il ya aussi des mises à jour mineures dans la documentation. Voir la Licorne 4.1.0 notes de version pour plus de détails: http://bogomips.org/unicorn.git/tag/?id=v4.1.0
Quoi de neuf dans la version 4.0.0:
- Rainbows! échelles maintenant à plus de 1024 processus de travail sans privilèges spéciaux. Pour ce faire, Rainbows! dépend maintenant 4.x Licorne et donc gouttes de pluie [1].
- directive client_max_header_size est ajouté pour limiter l'utilisation par client mémoire dans les en-têtes.
- Une option expérimentale de concurrence du StreamResponseEpoll existe maintenant tampon réponses sortants sans aucune dépendance thread-safe. Contrairement au reste de Rainbows! qui fonctionne très bien sans nginx, cette option de concurrence est / ne / soutenu derrière nginx, encore plus fortement encore que Licorne lui-même. les clients non-nginx LAN sont pas supportés par cette. Cela repose sur la sleepy_penguin [2] rubygem (et Linux).
- Il ya quelques corrections et nettoyages de bugs mineurs tout autour.
Quoi de neuf dans la version 3.4.0:
- SIGQUIT (arrêt progressif) tombe maintenant des clients keepalive ralenti pour les modèles de concurrence où le maintien d'un client inactif est relativement peu coûteux: Coolio, CoolioThreadPool, CoolioThreadSpawn, Epoll, eventmachine, XEpoll, XEpollThreadPool, XEpollThreadSpawn .
- Kgio.autopush fonctionne désormais correctement pour tous les modèles multi-thread simultanéité (si vous utilisez: tcp_nopush).
- locale correctif pour grep
- t0044: accroître la fiabilité du test
- try_defer: permettre à la documentation
- xepoll_thread_pool / client: améliorer le soutien autopush
- .gitignore: ajouter des balises / fichiers de balises
- ajouter des tests pour Kgio autopush sur Linux
- ajouter test pour SIGQUIT déconnexion
- event_machine: déconnecter les clients inactifs au SIGQUIT sur
- client: utiliser kgio_write à travers le conseil d'administration
- coolio * + * * epoll: chute des clients keepalive sur SIGQUIT
- epoll / xepoll: plus cohérente implémentations client
- doc: recommander io_splice 4.1.1 ou tard
Exigences :
- Ruby
Commentaires non trouvées