Netty in Action
eBook - ePub

Netty in Action

Norman Maurer, Marvin Wolfthal

Condividi libro
  1. 296 pagine
  2. English
  3. ePUB (disponibile sull'app)
  4. Disponibile su iOS e Android
eBook - ePub

Netty in Action

Norman Maurer, Marvin Wolfthal

Dettagli del libro
Anteprima del libro
Indice dei contenuti
Citazioni

Informazioni sul libro

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

Domande frequenti

Come faccio ad annullare l'abbonamento?
È semplicissimo: basta accedere alla sezione Account nelle Impostazioni e cliccare su "Annulla abbonamento". Dopo la cancellazione, l'abbonamento rimarrà attivo per il periodo rimanente già pagato. Per maggiori informazioni, clicca qui
È possibile scaricare libri? Se sì, come?
Al momento è possibile scaricare tramite l'app tutti i nostri libri ePub mobile-friendly. Anche la maggior parte dei nostri PDF è scaricabile e stiamo lavorando per rendere disponibile quanto prima il download di tutti gli altri file. Per maggiori informazioni, clicca qui
Che differenza c'è tra i piani?
Entrambi i piani ti danno accesso illimitato alla libreria e a tutte le funzionalità di Perlego. Le uniche differenze sono il prezzo e il periodo di abbonamento: con il piano annuale risparmierai circa il 30% rispetto a 12 rate con quello mensile.
Cos'è Perlego?
Perlego è un servizio di abbonamento a testi accademici, che ti permette di accedere a un'intera libreria online a un prezzo inferiore rispetto a quello che pagheresti per acquistare un singolo libro al mese. Con oltre 1 milione di testi suddivisi in più di 1.000 categorie, troverai sicuramente ciò che fa per te! Per maggiori informazioni, clicca qui.
Perlego supporta la sintesi vocale?
Cerca l'icona Sintesi vocale nel prossimo libro che leggerai per verificare se è possibile riprodurre l'audio. Questo strumento permette di leggere il testo a voce alta, evidenziandolo man mano che la lettura procede. Puoi aumentare o diminuire la velocità della sintesi vocale, oppure sospendere la riproduzione. Per maggiori informazioni, clicca qui.
Netty in Action è disponibile online in formato PDF/ePub?
Sì, puoi accedere a Netty in Action di Norman Maurer, Marvin Wolfthal in formato PDF e/o ePub, così come ad altri libri molto apprezzati nelle sezioni relative a Computer Science e Programming Languages. Scopri oltre 1 milione di libri disponibili nel nostro catalogo.

Informazioni

Editore
Manning
Anno
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 56) 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:
...

Indice dei contenuti