Netty in Action
eBook - ePub

Netty in Action

Norman Maurer, Marvin Wolfthal

Buch teilen
  1. 296 Seiten
  2. English
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfĂŒgbar
eBook - ePub

Netty in Action

Norman Maurer, Marvin Wolfthal

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

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

HĂ€ufig gestellte Fragen

Wie kann ich mein Abo kĂŒndigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kĂŒndigen“ – ganz einfach. Nachdem du gekĂŒndigt hast, bleibt deine Mitgliedschaft fĂŒr den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich BĂŒcher herunterladen?
Derzeit stehen all unsere auf MobilgerĂ€te reagierenden ePub-BĂŒcher zum Download ĂŒber die App zur VerfĂŒgung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die ĂŒbrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den AboplÀnen?
Mit beiden AboplÀnen erhÀltst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst fĂŒr LehrbĂŒcher, bei dem du fĂŒr weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhĂ€ltst. Mit ĂŒber 1 Million BĂŒchern zu ĂŒber 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
UnterstĂŒtzt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nÀchsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Netty in Action als Online-PDF/ePub verfĂŒgbar?
Ja, du hast Zugang zu Netty in Action von Norman Maurer, Marvin Wolfthal im PDF- und/oder ePub-Format sowie zu anderen beliebten BĂŒchern aus Computer Science & Programming Languages. Aus unserem Katalog stehen dir ĂŒber 1 Million BĂŒcher zur VerfĂŒgung.

Information

Verlag
Manning
Jahr
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:
...

Inhaltsverzeichnis