Netty in Action
eBook - ePub

Netty in Action

Norman Maurer, Marvin Wolfthal

Share book
  1. 296 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Netty in Action

Norman Maurer, Marvin Wolfthal

Book details
Book preview
Table of contents
Citations

About This Book

Summary Netty in Action introduces the Netty framework and shows you how to incorporate it into your Java network applications. You'll learn to write highly scalable applications without the need to dive into the low-level non-blocking APIs at the core of Java.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Netty is a Java-based networking framework that manages complex networking, multithreading, and concurrency for your applications. And Netty hides the boilerplate and low-level code, keeping your business logic separate and easier to reuse. With Netty, you get an easy-to-use API, leaving you free to focus on what's unique to your application. About the Book Netty in Action introduces the Netty framework and shows you how to incorporate it into your Java network applications. You will discover how to write highly scalable applications without getting into low-level APIs. The book teaches you to think in an asynchronous way as you work through its many hands-on examples and helps you master the best practices of building large-scale network apps. What's Inside

  • Netty from the ground up
  • Asynchronous, event-driven programming
  • Implementing services using different protocols
  • Covers Netty 4.x


About the Reader This book assumes readers are comfortable with Java and basic network architecture. About the Authors Norman Maurer is a senior software engineer at Apple and a core developer of Netty. Marvin Wolfthal is a Dell Services consultant who has implemented mission-critical enterprise systems using Netty. Table of Contents
PART 1 NETTY CONCEPTS AND ARCHITECTURE

  • Netty-asynchronous and event-driven
  • Your first Netty application
  • Netty components and design
  • Transports
  • ByteBuf
  • ChannelHandler and ChannelPipeline
  • EventLoop and threading model
  • Bootstrapping
  • Unit testing
  • PART 2 CODECS
  • The codec framework
  • Provided ChannelHandlers and codecs
  • PART 3 NETWORK PROTOCOLS
  • WebSocket
  • Broadcasting events with UDP
  • PART 4 CASE STUDIES
  • Case studies, part 1
  • Case studies, part 2

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Netty in Action an online PDF/ePUB?
Yes, you can access Netty in Action by Norman Maurer, Marvin Wolfthal in PDF and/or ePUB format, as well as other popular books in Computer Science & Programming Languages. We have over one million books available in our catalogue for you to explore.

Information

Publisher
Manning
Year
2015
ISBN
9781638353041

Part 1. Netty concepts and architecture

Netty is an advanced framework for creating high-performance networking applications. In part 1 we’ll explore its capabilities in depth and demonstrate three main points:
  • You don’t have to be a networking expert to build applications with Netty.
  • Using Netty is much easier than using the underlying Java APIs directly.
  • Netty promotes good design practices, such as keeping your application logic decoupled from the network layer.
In chapter 1, we’ll begin with a summary of the evolution of Java networking. After we’ve reviewed the basic concepts of asynchronous communications and event-driven processing we’ll take a first look at Netty’s core components. You’ll be ready to build your first Netty application in chapter 2! In chapter 3 you’ll begin your detailed exploration of Netty, from its core network protocols (chapter 4) and data-handling layers (chapters 5–6) to its concurrency model (chapter 7).
We’ll conclude part 1 by putting all the pieces together, and you’ll see how to configure the components of a Netty-based application to work together at runtime (chapter 8) and finally, how Netty helps you to test your applications (chapter 9).

Chapter 1. Netty—asynchronous and event-driven

This chapter covers
  • Networking in Java
  • Introducing Netty
  • Netty’s core components
Suppose you’re just starting on a new mission-critical application for a large, important company. In the first meeting you learn that the system must scale up to 150,000 concurrent users with no loss of performance. All eyes are on you. What do you say?
If you can say with confidence, “Sure, no problem,” then hats off to you. But most of us would probably take a more cautious position, like: “Sounds doable.” Then, as soon as we could get to a computer, we’d search for “high performance Java networking.”
If you run this search today, among the first results you’ll see this:
Netty: Home
netty.io/
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
If you discovered Netty this way, as many have, your next steps were probably to browse the site, download the code, peruse the Javadocs and a few blogs, and start hacking. If you already had solid network programming experience, you probably made good progress; otherwise, perhaps not.
Why? High-performance systems like the one in our example require more than first-class coding skills; they demand expertise in several complex areas: networking, multithreading, and concurrency. Netty captures this domain knowledge in a form that can be used even by networking neophytes. But up to now, the lack of a comprehensive guide has made the learning process far more difficult than need be—hence this book.
Our primary goal in writing it has been to make Netty accessible to the broadest possible range of developers. This includes many who have innovative content or services to offer but neither the time nor inclination to become networking specialists. If this applies to you, we believe you’ll be pleasantly surprised at how quickly you’ll be ready to create your first Netty application. At the other end of the spectrum, we aim to support advanced practitioners who are seeking tools for creating their own network protocols.
Netty does indeed provide an extremely rich networking toolkit, and we’ll spend most of our time exploring its capabilities. But Netty is ultimately a framework, and its architectural approach and design principles are every bit as important as its technical content. Accordingly, we’ll be talking about points such as
  • Separation of concerns (decoupling business and network logic)
  • Modularity and reusability
  • Testability as a first-order requirement
In this first chapter, we’ll begin with background on high-performance networking, particularly its implementation in the Java Development Kit (JDK). With this context in place, we’ll introduce Netty, its core concepts, and building blocks. By the end of the chapter, you’ll be ready to tackle your first Netty-based client and server.

1.1. Networking in Java

Developers who started out in the early days of networking spent a lot of time learning the intricacies of the C language socket libraries and dealing with their quirks on different operating systems. The earliest versions of Java (1995–2002) introduced enough of an object-oriented façade to hide some of the thornier details, but creating a complex client/server protocol still required a lot of boilerplate code (and a fair amount of peeking under the hood to get it all working smoothly).
Those first Java APIs (java.net) supported only the so-called blocking functions provided by the native system socket libraries. The following listing shows an unadorned example of server code using these calls.
Listing 1.1. Blocking I/O example
The previous listing implements one of the basic Socket API patterns. Here are the most important points:
...

Table of contents