[専門家の質問と回答の281の問題の要約]-Nettyの基本原則を打ち破る

Nettyは、インターネット企業に非常に人気のあるJavaオープンソースネットワークアプリケーションフレームワークであり、ユーザーが高性能で安定性の高いネットワーク通信サービスを迅速に開発するのに役立ちます。最も影響力のあるNIOフレームワークとして、Nettyは多くのアーキテクトやプログラマーに愛されており、インターネットインフラストラクチャ、ゲーム業界、ビッグデータ通信などの分野で広く使用されています。特にインターネットインフラストラクチャに関しては、Nettyが川や湖をほぼ支配しています。非常に多くのJava学習者は、Nettyを使い始めるためのしきい値が非常に高いと感じています。実際、これは、この領域の情報が少なすぎるためであり、それがどれほど難しいかではありません。この活動を通して、誰もが高品質のネットワークアプリケーションをすばやく作成する方法を学ぶことを願っています。

この号に関するOSCHINAの専門家によるQ&A(4月12日から4月18日)@Flashmanを招待して、Nettyソースコードに関連する問題について話し合いました。 

ゲストプロフィール

インターネット会社の技術専門家、フラッシュ(ユ・チャオ)。Netty、Spring、MyBatisなどのオープンソースフレームワークに習熟している。数千万のリアルタイムオンライン接続と数百億のスループットの長接続通信の経験を持つ、会社のさまざまな長接続プロジェクトの開発と保守を担当しています。VimとIDEAの関係者は、効率性と美しいコードの記述を究極的に追求しています。

Q&Aサマリー

Q:なぜnettyを使い始めるのがとても難しいのですか?オープンソースプロジェクトはほとんどありませんか?

回答: Nettyは、実際にはビジネスシナリオで使用されることが少なく、一部の基盤となるネットワークミドルウェアで使用されるため、開始するのが困難です。そのため、オンラインで共有される情報は少なくなります。もちろん、近年増加しています。 

 

Q:ネットのしきい値は比較的高いです。以前は本やブログを読んで学習していましたが、学習できませんでした。ネットの経験がない人は、ネットをどのように学ぶべきだと思いますか。

回答:プロジェクト主導で学習することをお勧めします。完全なプロジェクトが完了すると、知識システムが習得されます。私の新しい本「フラッシュでNettyを学ぶ:Nettyライブチャットとその基礎となる原則」は、座るのに役立ちます。これまでのところ、Javaとネットワークプログラミングの基礎があれば、約2週間で習得できます。

 

Q: Nettyのソースコードが4.xで読み取られた後、Nettyがバージョン5.xにアップグレードされました。このプロセスにより、ソースコードの読み取りが役に立たなくなりますか? 

回答:ソースコードを読むことは、フレームワーク全体とソースコードを読むという考えをまだ把握しています。これは変わらず、他のフレームワークのソースコードを読むことさえはるかに簡単で役に立たないでしょう。

 

Q: Nettyの高性能とは何ですか?

A:リアクターモデル、RecyclerやFastThreadLocalなどの一部のコンポーネント、ゼロコピーテクノロジー、スレッドフリーロックテクノロジー、メモリプールなど。

 

Q: nettyを使用する際に注意する必要がある詳細は何ですか?

答え:

  1. メインリアクタスレッドをブロックしないでください。ブロックしないと、グローバルリクエスト処理能力が低下します。
  2. 多くの操作は非同期です。統計の場合、ログコードは実装のためのコールバックの登録に注意を払う必要があります。
  3. inBoundイベントを含むイベント伝播の順序、outBoundイベントの順序には注意が必要です。そうしないと、バグが発生しやすくなります。
  4. 十分なオフヒープメモリを確保します。

 

Q:分散セッションの処理方法、メッセージ送信時にセッションチャネルを見つける方法

回答:分散環境では、メッセージがサービスから送信され、ルーティングゲートウェイを通過します。ルーティングゲートウェイは、ユーザー情報(ユーザーがログインした後、サーバー情報)に従って、ユーザーが接続しているサーバーをredisで検出します。ユーザーに接続している場合は、redisに保存してから、このサーバーにデータを透過的に送信して配信する必要があります。

 

Q: nettyでアプリケーションの単体テストを作成するにはどうすればよいですか?(主に模擬ネットワーク環境)、便利にデバッグする方法は?多数のコールバックとイベント駆動型、コードの可読性を確保する方法は?共有するベストプラクティスがありますか?

A:ユニットテストは、EmbeddedChannelに基づいて実行でき、実際のデータ送信とデバッグをシミュレートします。この本は、IMプロジェクトを最初から最後まで実行し、ベストプラクティスのリファレンスとして使用できます。多数のコールバックサービスを問題なく実行でき、多くの基盤となるロジックネットがカプセル化されています。

 

Jingdong購入リンク:https ://item.jd.com/13611960.html


エキスパートQ&Aコラムを見る:トピックエキスパートQ&A-OSCHINA-中国のオープンソース技術交換コミュニティ

{{o.name}}
{{m.name}}

おすすめ

転載: my.oschina.net/u/4855753/blog/5517147