zoukankan      html  css  js  c++  java
  • netty

    netty

    Netty: Home http://netty.io/

    Netty is an asynchronous event-driven network application framework
    for rapid development of maintainable high performance protocol servers & clients. 

    Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.

    'Quick and easy' doesn't mean that a resulting application will suffer from a maintainability or a performance issue. Netty has been designed carefully with the experiences earned from the implementation of a lot of protocols such as FTP, SMTP, HTTP, and various binary and text-based legacy protocols. As a result, Netty has succeeded to find a way to achieve ease of development, performance, stability, and flexibility without a compromise.

    Features

    Design

    • Unified API for various transport types - blocking and non-blocking socket
    • Based on a flexible and extensible event model which allows clear separation of concerns
    • Highly customizable thread model - single thread, one or more thread pools such as SEDA
    • True connectionless datagram socket support (since 3.1)

    Ease of use

    • Well-documented Javadoc, user guide and examples
    • No additional dependencies, JDK 5 (Netty 3.x) or 6 (Netty 4.x) is enough
      • Note: Some components such as HTTP/2 might have more requirements. Please refer to the Requirements page for more information.

    Performance

    • Better throughput, lower latency
    • Less resource consumption
    • Minimized unnecessary memory copy

    Security

    • Complete SSL/TLS and StartTLS support

    Community

    • Release early, release often
    • The author has been writing similar frameworks since 2003 and he still finds your feed back precious!

    Netty.docs: User guide for 4.x http://netty.io/wiki/user-guide-for-4.x.html

    Preface

    The Problem

    Nowadays we use general purpose applications or libraries to communicate with each other. For example, we often use an HTTP client library to retrieve information from a web server and to invoke a remote procedure call via web services. However, a general purpose protocol or its implementation sometimes does not scale very well. It is like how we don't use a general purpose HTTP server to exchange huge files, e-mail messages, and near-realtime messages such as financial information and multiplayer game data. What's required is a highly optimized protocol implementation that is dedicated to a special purpose. For example, you might want to implement an HTTP server that is optimized for AJAX-based chat application, media streaming, or large file transfer. You could even want to design and implement a whole new protocol that is precisely tailored to your need. Another inevitable case is when you have to deal with a legacy proprietary protocol to ensure the interoperability with an old system. What matters in this case is how quickly we can implement that protocol while not sacrificing the stability and performance of the resulting application.

  • 相关阅读:
    IOS7 UI设计的十大准则
    IOS8-人机界面指南
    Android应用切换皮肤功能实现
    Android 打造自己的个性化应用(五):仿墨迹天气实现续--> 使用Ant实现zip/tar的压缩与解压
    Android 打造自己的个性化应用(四):仿墨迹天气实现-->自定义扩展名的zip格式的皮肤
    Android 打造自己的个性化应用(三):应用程序的插件化
    Android 打造自己的个性化应用(二):应用程序内置资源实现换肤功能
    Android 打造自己的个性化应用(一):应用程序换肤主流方式的分析与概述
    Android防止内存泄漏以及MAT的使用
    Android内存泄漏监测(MAT)及解决办法
  • 原文地址:https://www.cnblogs.com/rsapaper/p/7742754.html
Copyright © 2011-2022 走看看