TorqueBox - Ruby na sterydach

  • 872 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
872
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TorqueBox Ruby na sterydach
  • 2. Marek.
  • 3. +=
  • 4. TorqueBox to klejpomiędzy JRuby aserwerem aplikacji JBoss AS.
  • 5. JRuby.
  • 6. Prawdziwe wątki.
  • 7. Bardzo szybkie środowisko.
  • 8. Biblioteki Javy.
  • 9. JBoss AS.
  • 10. Serwer aplikacji Java EE (klastrowanie, web,wiadomości, cache, etc)
  • 11. Cel.
  • 12. PierwszorzędnyRails / Sinatra / Rack
  • 13. Drugorzędny Usługi / Zadania /Wiadomości / Transakcje /Cache / WebSockets / HA
  • 14. Web.
  • 15. Sinatramyapp/ config.ru myapp.rb torquebox.yml
  • 16. myapp/ config/ torquebox.yml Rails application.rb ... app/ views/ controllers/ models/ ...
  • 17. Poka poka.
  • 18. Nuda.
  • 19. Usługi.
  • 20. Gdy wykonujemy coś w tle przezstart() jakiś czas, np....czas mija... pobieranie danych z Twitterastop()
  • 21. class MyService def initialize(opts) end def start end def stop endend app/services/my_service.rb
  • 22. services: MyService: config: foo: bar abc: 1 MySingletonService: singleton: true config/torquebox.yml
  • 23. singleton: true Jedna aktywna usługa wjednym czasie w klastrze.
  • 24. singleton: false Usługi aktywne nawszystkich węzłachklastra (domyślnie).
  • 25. Zadania.
  • 26. Gdy wykonujemy coś co jakiś czas.Co piątekW pierwszy dzień miesiącaCo 2 minutyNo, wiesz o co chodzi.
  • 27. class MyJob def run endend app/jobs/my_job.rb
  • 28. jobs: newsletter: job: MyJob cron: ‘0 0 0 1 * ?’ singleton: true cache_cleaner: job: CacheCleanerJob cron: ‘5 * * * * ?’ config/torquebox.yml
  • 29. Wiadomości.
  • 30. JMS.
  • 31. queues: /queues/foo: /queues/bar:topics: /topics/foo: /topics/bar: config/torquebox.yml
  • 32. Wysyłamy...class MyController < ApplicationControllerinclude TorqueBox::Injectors def index queue = inject(‘/queues/foo’) queue.publish(“Lecimy!”) endend app/controllers/ my_controller.rb
  • 33. ...i odbieramyinclude TorqueBox::Messagingclass MyProcessor < MessageProcessor def initialize(opts) end def on_message(body) # body == “Lecimy!” endend app/processors/ my_processor.rb
  • 34. messaging: /queues/foo: MyProcessor: filter: "language = ruby" concurrency: 3 config: foo: bar config/torquebox.yml
  • 35. Transakcje.
  • 36. Kolejka TematKod Cache Baza danych
  • 37. Dystrybuowane. (trudne słowo)Sukces tylko wtedy gdywszystko się powiedzie.
  • 38. Transakcje w AR?TorqueBox.transaction do User.create(:username => Kotori) TorqueBox.transaction do User.create(:username => Nemu) raise ActiveRecord::Rollback endend
  • 39. Transakcje gdziekolwiek?TorqueBox.transaction do inject(/queues/foo).publish("blah")end
  • 40. Cache.
  • 41. Infinispan.Data Grid. Replikowalna,dystrybuowalna pamięć.
  • 42. Zamiast memcached.
  • 43. cache = TorqueBoxStore.new( :name => ‘foo’, :mode => :replicated)cache.put(...)cache.get(...)
  • 44. Wstrzykiwanie zasobów.
  • 45. UsługiKolejki / tematyJava CDI
  • 46. inject(‘/queues/foo’).publish(...)inject(‘/topics/bar’).publish(...)
  • 47. CDIpackage com.acme.blah;@ApplicationScopedpublic class MyBean { public void fire() { ... }}
  • 48. bean = inject(com.acme.blah.MyBean)bean.fire
  • 49. Klastrowanie.
  • 50. JBoss AS ma wbudowanewspacie dla klastrowania.
  • 51. mod_cluster
  • 52. Jeszcze niewspomniałem o...
  • 53. Backgroudables.
  • 54. WebSockets.
  • 55. Kilka słów o wydajności.
  • 56. http://torquebox.org/news/2011/10/06/torquebox-2x-performance/
  • 57. http://torquebox.org/news/2011/10/06/torquebox-2x-performance/
  • 58. http://torquebox.org/http://github.com/torqueboxIRC: #torquebox on FreeNode@torquebox
  • 59. Dzięki.Nie zapomnij o naklejkach!