рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЗрд╕ рд╕рдордп рдиреЛрдб.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЯреНрд░реЗрдВрдбреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рд░ рдХреЛрдИ рдЙрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ, рдореИрдВ рдЙрд╕ рдкреНрд░рддрд┐рдпреЛрдЧреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЗ рдкреНрд░рднрд╛рд╡ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛
Vert.x рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ, рдШрдЯрдирд╛-рдЪрд╛рд▓рд┐рдд рдврд╛рдВрдЪрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд▓рдХреНрд╖реНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рдиреЛрдб рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рдХрд░рддрд╛ рд╣реИред рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди, рд╕рд░рд▓ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕рднреА рд▓рдВрдмрд╡рдд рд╣реИрдВред
рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 2012 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрдмрдХрд┐ рдиреЛрдб.рдЬреЗрдПрд╕ 2009 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реАрдПрдорд╡реЗрдпрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд░реНрдерд┐рдд рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЙрдбрдлрд╛рдЙрдВрдбреНрд░реА рдкрд░ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред
рдХрдЯ рдХреЗ рддрд╣рдд рдЙрддреНрдкрд╛рдж рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
- рдмрд╣реБрднрд╛рд╖реАред рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд░реВрдмреА, рдЧреНрд░реВрд╡реА, рдЬрд╛рд╡рд╛, рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓рдЧрднрдЧ рд╕реНрдХрд╛рд▓рд╛ рдФрд░ рдХреНрд▓реЛрдЬрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ
- рдУрдкрдирд╕реЛрд░реНрд╕ред рдПрдПрд╕рдПрд▓ 2.0 рд▓рд╛рдЗрд╕реЗрдВрд╕
- рд╕рдЪ рд╕рдВрдЧрддрд┐ рдФрд░ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди
- рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ JVM рдХреЗ рд╕рднреА рдкреНрд░рд╕рдиреНрдирддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХреЛрд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛, рдХреЛрд░ рдХреЗ рдмреАрдЪ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ
- рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ - рдЗрди-рдореЗрдореЛрд░реА рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА
- рдиреЗрдЯреНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
- рд╕реБрдкрд░ рд╕рд░рд▓ рд╕рдВрдЧрд╛рдорд┐рддрд┐ рдореЙрдбрд▓ред рдХреЛрдИ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдпрд╛ рд╡рд╛рд╖реНрдкрд╢реАрд▓, рдпрд╛ рд╕реНрдкрд╖реНрдЯ рддрд╛рд▓реЗ рдирд╣реАрдВ
- рдХреЛрдИ рдиреВрдбрд▓реНрд╕ xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИред
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА
- рд╡рд┐рддрд░рд┐рдд рд╕рдВрджреЗрд╢ рдмрд╕ рдЬреЛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рджреЛрдиреЛрдВ рдХреЛ рдлреИрд▓рд╛рддреА рд╣реИред
- рдПрдВрдмреЗрдбреЗрдб рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИ
- рд╡рд┐рднрд┐рдиреНрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╢рд╛рдпрдж рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдврд╛рдВрдЪрд╛
- JDK 1.7 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
- WebSockets, SockJS рд╕рдорд░реНрдерди
рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП scala рдкрд░ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб рдмрд╛рдХреА:
class SampleResticle extends Resticle { override def handles = { GET("/hello") :> OK( _ => "world ") } }
рдпрд╛ рдПрдХ рд╕рд░рд▓ рд╕рд░реНрд╡рд░ рдЙрджрд╛рд╣рд░рдг webroot рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕реЗрд╡рд╛ред рдЧреНрд░реВрд╡реА рдЙрджрд╛рд╣рд░рдг:
vertx.createHttpServer().requestHandler { req -> def file = req.uri == "/" ? "index.html" : req.uri req.response.sendFile "webroot/$file" }.listen(8080)
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рд╣рд▓реЛрд╡рд░реНрд▓реНрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
vertx run Server.groovy -instances 32
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╕реБрдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдмрдпрд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдиреЛрдб .js. рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рддрд▓рд╛рд╢ рдХреАред
рдкрд╣рд▓рд╛ рдЧреНрд░рд╛рдлрд╝ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрдм
рдХреЗрд╡рд▓ 200 / рдареАрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА рдЬрд╛рддреА рд╣реИ

рджреВрд╕рд░рд╛ рдкрд░реАрдХреНрд╖рдг 72-рдмрд╛рдЗрдЯ html рдкреГрд╖реНрда рд▓реМрдЯрд╛рддрд╛ рд╣реИ:

рдкрд░реАрдХреНрд╖рдг
рдпрд╣рд╛рдБ рд╕реЗ рд▓рд┐рдпрд╛
рдЧрдпрд╛ ред рдпреЗ рдкрд░реАрдХреНрд╖рдг рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмрд╣реБрдд рдкрд╣рд▓реЗ рдХрд┐рдП рдЧрдП рдереЗред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдордЧреНрд░реА рддреИрдпрд╛рд░ рд╣реИред рдореИрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреАрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реНрдХреИрд▓рд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬрд╛рд╡рд╛ рд╕реЗ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реНрдХреЗрд▓рд╛ рддреЗрдЬ рд╣реИред
рд╢рд╛рдпрдж рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреА рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдореИрдВ vert.x рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдФрд░ рдкреИрдЯрд░реНрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ ред рд▓рд┐рдВрдХ рдЙрддреНрдХреГрд╖реНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИред