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
This June 12, the jetty project released the 9.3 version of the flagship open source embedded application server, which was also the 20 anniversary of the project. The main features of this release include increased support for the HTTP/2 server (with the client), minimum system requirements of Java 8, and more NIO integration with a fully reconfigurable scheduler. In addition, this release 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, but adds the HTTP/2 protocol to the existing connectors on ports 8080 and 8443. The latest versions of most modern browsers provide support for HTTP/2. Visit the http://caniuse.com/#feat =HTTP2 to see how each browser supports HTTP/2.
Infoq had the opportunity to interview Greg Wilkins and ask him to talk about Jetty's 20-year history.
InfoQ: Congratulations, Greg, I bet you never thought Jetty could have developed into today, 20.
In fact, I just used it as a problem in my development to track a module in a Web application and never thought that anyone would be interested in it. But it turns out that many people are starting to use jetty, and that the HTTP server has become my main direction (or I'm definitely still developing that tracking application, and maybe it's not Atlassian to be a part of it). Translator Note: Atlassian is a well-known collaboration tool confluence and Jira's development company ").
Over the past 10-15 years, I've expected Web servers to be like everyday items, no matter what server they choose. But that's not the case: the JVM has changed, the standards have changed, the way the server has been optimized, the way the Web app is developed has also changed. Therefore, in order to adapt to these changes, jetty also always need to change, and the change of the individual containers is different.
InfoQ: Keeping up with all the latest standards and requirements, such as WebSockets and HTTP/2, is a very challenging matter. 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, and we believe that sometimes we are leading the standard and sometimes follow the standard. However, I think the best innovation comes from the real needs of 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, and WebSockets is able to draw our attention, The reason for this is the cometd in dojo; we are now investigating the reactive stream APIs because many users are interested in this.
InfoQ: How does the continuous increase in micro-service deployment 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 difficult in real open source projects). But so far, microservices have not driven any significant changes in jetty, and I hope this is because our design goal is to target simple embedded uses, and microservices don't have anything new in this area.
InfoQ: There are many 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 compete with the complete EE, or even the rivals that provide Web profiles. Of course, jetty can be used for EE deployments, 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 many other components that can accomplish these things, and we focus only on the areas we specialize in: Providing 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 a good control over other projects, so it is very straightforward and efficient to integrate CDI, JSF, JMS, etc into the jetty.
If there is any difference, we feel that a lightweight HTTP server focused on scalable asynchronous microservices is the real competitor we face. There is some room for innovation in this area, and we want to be able to support the semantics they expect while still providing the servlet API. As a result, we provide similar, scalable, flexible asynchronous HTTP, while providing full access to the Servlet API when needed.
This kind of flexible approach is attractive in the market, look at the big companies that use jetty, Google, Yahoo, Facebook, Salesforce, LinkedIn, and so on, they use each other differently, but not a company like the old one using EE.
InfoQ: When do you plan to publish a version that is compatible with Servlet 4.0?
Jetty 10 will support Servlet 4.0. However, we are not sure what will happen in 4.0, and the process will last a long time. As a result, there is no specific time plan, and it is unclear what features are being added.
InfoQ: What features will be added to jetty in the near future?
not sure yet. We have some ideas: reactive flow, enhanced CDI integration, Websocket over HTTP2, Quic, and more. We've started experimenting with some of these features, but we still need real user needs, and then we're ready to plan these ideas.
Webtide provides support for jetty. In fact, the Professional services site 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