This article is from my translation of the Infoq Chinese station, the original address is: Http://www.infoq.com/cn/news/2015/06/Building-Distributed-Systems
June 12 this year. The jetty project unveiled the 9.3 version of the flagship open source embedded application server, which is also the 20-year anniversary of the project. The main features of this announcement include the addition of support for HTTP/2 server (with client), minimum system requirements for Java 8. And many other NIO-integrated and fully reconfigurable schedulers.
In addition The version number also removes Spdy network support and fixes more than 400 bugs since jetty 9.2.x.
Jetty's main developer, Greg Wilkins, wrote a blog post about Jetty's support for HTTP/2.
In the article. He describes how to easily enable HTTP/2 support in the Jetty startup command.
$ Java-jar $JETTY _home/start.jar--add-to-startd=http2,http2c
The above command does not create or open a new connector/port. The HTTP/2 protocol is added only to port8080 and 8443 's existing connectors. Most modern browsers have the latest version numbers that provide support for HTTP/2.
Please visit http://caniuse.com/#feat =http2 to learn about HTTP/2 support for each browser.
Infoq had the pleasure of visiting Greg Wilkins, and asked him to talk about the history of the jetty 20 years.
InfoQ: Congratulations. Greg, I bet you never thought that jetty could ever grow to this day. The course of the 20.
actually. I started just as an issue I was developing to track a module in a Web application and never thought anyone would be interested in it. But it turned out that very many people started using jetty. At the same time the Httpserver also became my basic direction of work (or I'm definitely still developing that problem tracking app.) Maybe later become Atlassian not necessarily "translator Note: Atlassian is a well-known collaboration tool confluence and Jira development Company").
Over the past 10-15 years, I have expected webserver to be the same thing as the daily use of the product, no matter what server people choose to be different. But that's not the case: the JVM has changed, the standards have changed, the way the server has been optimized, and the way the Web app is developed has also changed.
So. In order to adapt to these changes, jetty always need to change constantly. And the change of each container is different.
InfoQ: Keeping up with all the latest standards and requirements such as WebSockets and HTTP/2 is a very challenging thing to do.
Can you tell us about your process of exploring and fulfilling these requirements?
being a member of the JCP and IETF Expert group allows us to always be at the forefront of standard development. We feel that sometimes we are leading the standard and sometimes we are trailing the standard. It's just that. I think the best innovation comes from the real needs of the real users, as part of a wide variety of open source communities is the key to finding these needs: The asynchronous Servlets is derived from a feature requirement of ACTIVEMQ; WebSockets can draw our attention, The reason for this is the cometd in dojo; we are now investigating the reactive stream APIs, which are of great interest to many users.
InfoQ: How does the continuous addition of micro-service deployments affect the use of jetty?
Jetty Of course also applies to microservices, but I hope that microservices can promote the development of jetty (which is very difficult in real open source projects).
Just until now. MicroServices are not driving jetty any significant change, I hope this is because our design goal is for simple embedded use. And microservices are nothing new in this field.
InfoQ: There are a lot of competitors in the application server market, especially in the open source area of Tomcat.
So how did jetty achieve such success?
We do not feel the competition in the application server market because we do not want to be with the full EE. Even competitors who provide Web profile. Of course. Jetty can be used for EE deployment, but we are convinced that component-oriented development does not understand why your HTTP protocol provider should be responsible for persisting business beans, managing transactions, or generating content. There are so many other components that can complete these things, and we just focus on what we do best: Provide scalable protocol implementations for HTTP, HTTP2, WebSocket, fcgi, and so on, allowing users to choose the right components for the rest of the application. We can also ensure that we have very good control over other projects. Therefore, it is very direct and efficient to integrate CDI, JSF, JMS, etc into the jetty.
Assuming that there is any difference, we feel that the lightweight httpserver that focus on scalable asynchronous microservices is the competitor we really face. There is some room for innovation in this area, and we want to support the semantics they expect, while still providing the servlet API at the same time. As a result, we provide similar, scalable, flexible asynchronous HTTP at the same time providing full access to the Servlet API when needed.
Such a flexible approach is very attractive in the market. Look at the big companies that use jetty, Google, Yahoo, Facebook, Salesforce, LinkedIn, and so on, they use different ways with each other, but none of them is like the one that used EE.
InfoQ: When do you plan to publish version numbers that are compatible with Servlet 4.0?
Jetty 10 will support Servlet 4.0. But we're not sure what's going to happen in 4.0, and it's going to take a very long time. So. There is no detailed time plan for this now. It is now unclear what features to add.
InfoQ: What features will jetty add in the near future?
Not sure yet.
We have some ideas: reactive flow, enhanced CDI integration, Websocket over HTTP2, Quic, and more. We have started experimenting with some of these features, but we still need real user needs, and then we have the ability to plan these ideas.
Webtide provides support for jetty.
In fact, the Professional services website is a HTTP/2 test bed.
View English text: Jetty 9.3 celebrates 20th anniversary, adds HTTP/2 support
Jetty 9.3 celebrates 20 anniversary Happy Birthday and adds HTTP/2 support