�gӭ���R�ЈD�W(w��ng) Ո(q��ng) | ע��(c��)

���] NettyԴ�a�����c��(y��ng)��

���ߣ���ҫ��
�����磺��ӹ��I(y��)����������r(sh��)�g��2020-11-01
�_���� ���� 퓔�(sh��)�� 280
�� �D �r(ji��):¥44.6(5.0��) ���r(ji��)  ¥89.0 ��䛺�ɿ�����(hu��)�T�r(ji��)
����ُ��܇ �ղ�
�_������ ȫ��(ch��ng)���]
?�½������س���
������Ǖ�����>

NettyԴ�a�����c��(y��ng)�� ���(qu��n)��Ϣ

NettyԴ�a�����c��(y��ng)�� ������ɫ

�m�x��Ⱥ ����һ��Java���A(ch��)�ļܘ�(g��u)�����O(sh��)Ӌ(j��)�����_�l(f��)���̎����y(c��)ԇ���̎����Լ���(du��)Java NIO�����Netty���dȤ�����P(gu��n)��ʿ��“(li��n)�W(w��ng)һ�����Ҷ��꽛(j��ng)�(y��n)���Y(ji��) ���ڌ�(sh��)�H������������(sh��)���ԏ�(qi��ng) ������xNetty�׌Ӻ���Դ�a���ܘ�(g��u)�O(sh��)Ӌ(j��) ��������Netty Դ�a�����̼��� ���wNetty���A(ch��)֪�R(sh��)���߼�(j��)��(y��ng)�������φ��}�����������{(di��o)��(y��u)�ȷ�������

NettyԴ�a�����c��(y��ng)�� ��(n��i)�ݺ�(ji��n)��

Netty�漰�ྀ�̼��g(sh��)����(f��)�s��(sh��)��(j��)�Y(ji��)��(g��u)�c��(n��i)�����ģ�������\(y��n)���˸��N�O(sh��)Ӌ(j��)ģʽ��һЩTCP�ĵ׌Ӽ��g(sh��)��������(du��)�@Щ�y�c(di��n)һһ�M(j��n)�й�����׌�x�߿����������P(gu��n)֪�R(sh��)���������������ķֲ�ʽ�׌Ӽܘ�(g��u)�ľ������漰�ྀ�̡�ؓ(f��)�d�����㷨�������{(di��o)��(y��u)�����φ��}�o��̎���ȃ�(n��i)��������ͨ�^�ܺú�(ji��n)�׵Ĵ��a���v��Netty����I(y��)�еČ�(sh��)�H�÷���ͨ�^��(du��)��(sh��)���M(j��n)���{(di��o)ԇ�ķ�ʽ��(du��)NettyԴ�a�M(j��n)����Ԕ��(x��)�����������Dʹ�x��ͨ�^��(sh��)�H�����������T���������˽�Netty�׌ӵĸ���(g��)�M���������m����һ��Java���A(ch��)�ļܘ�(g��u)�����O(sh��)Ӌ(j��)�����_�l(f��)���̎����y(c��)ԇ���̎����Լ���(du��)Java NIO��ܡ�Netty���dȤ�����P(gu��n)��ʿ��x��

NettyԴ�a�����c��(y��ng)�� Ŀ�

��1�� Netty���A(ch��)ƪ 1
1��1 Netty���� 1
1��2 Netty����(w��)�˘�(g��u)�� 2
1��3 Netty�͑��˵��\(y��n)�� 6
1��3��1 Java�ྀ�̽��� 6
1��3��2 Netty�͑����c����(w��)�˶��B�� 12
1��3��3 Netty�͑����c����(w��)���L(zh��ng)�B�� 18
1��4 �Y(ji��) 22

��2�� ԭ������ 23
2��1 ��·��(f��)���� 23
2��1��1 NIO�cBIO�ą^(q��)�e 24
2��1��2 epollģ���cselectģ�͵ą^(q��)�e 25
2��2 Netty����ģ�� 27
2��3 ���a�ͽ�a 28
2��4 ���л� 30
2��4��1 Protobuf���л� 30
2��4��2 Kryo���л� 31
2��5 �㿽ؐ 33
2��6 ���� 34
2��6��1 TCP���� 34
2��6��2 Flink��(sh��)�r(sh��)Ӌ(j��)������ı���ԭ�� 36
2��7 �Y(ji��) 39

��3�� �ֲ�ʽRPC 40
3��1 Netty����Spring 41
3��2 ����Netty��(sh��)�F(xi��n)һ��R(sh��)PC��� 43
3��3 �ֲ�ʽRPC�Ę�(g��u)�� 52
3��3��1 ����(w��)ע��(c��)�c�l(f��)�F(xi��n) 53
3��3��2 ��(d��ng)�B(t��i)���� 68

��4�� Netty���ĽM��Դ�a���� 81
4��1 NioEventLoopGroupԴ�a���� 82
4��2 NioEventLoopԴ�a���� 86
4��2��1 NioEventLoop�_��Selector 87
4��2��2 NioEventLoop��run()�������x 89
4��2��3 NioEventLoop ���˜�(g��u)��Selector��Channel��ע��(c��) 98
4��3 ChannelԴ�a���� 100
4��3��1 AbstractChannelԴ�a���� 101
4��3��2 AbstractNioChannelԴ�a���� 102
4��3��3 AbstractNioByteChannelԴ�a���� 107
4��3��4 AbstractNioMessageChannelԴ�a���� 112
4��3��5 NioSocketChannelԴ�a���� 116
4��3��6 NioServerSocketChannelԴ�a���� 119
4��4 Netty���_�^(q��)ByteBufԴ�a���� 120
4��4��1 AbstractByteBufԴ�a���� 122
4��4��2 AbstractReferenceCountedByteBufԴ�a���� 127
4��4��3 ReferenceCountUpdaterԴ�a���� 129
4��4��4 CompositeByteBufԴ�a���� 134
4��4��5 PooledByteBufԴ�a���� 145
4��5 Netty��(n��i)��й©�z�y(c��)�C(j��)��Դ�a���� 151
4��5��1 ��(n��i)��й©�z�y(c��)ԭ�� 152
4��5��2 ��(n��i)��й©��ResourceLeakDetectorԴ�a���� 153
4��6 �Y(ji��) 164

��5�� Netty�x/��Ո(q��ng)��Դ�a���� 165
5��1 ServerBootstrap����(d��ng)�^������ 165
5��2 Netty��(du��)I/O�;w�¼���̎�� 172
5��2��1 NioEventLoop�;w̎��֮OP_ACCEPT 172
5��2��2 NioEventLoop�;w̎��֮OP_READ��һ�� 175
5��2��3 NioEventLoop�;w̎��֮OP_READ������ 182

��6�� Netty��(n��i)����� 195
6��1 Netty��(n��i)��������Խ�B 195
6��2 PoolChunk��(n��i)����� 197
6��2��1 PoolChunk������ڻ����8KB�ă�(n��i)�� 197
6��2��2 PoolChunk����С��8KB�ă�(n��i)�� 201
6��3 PoolSubpage��(n��i)������cጷ� 205
6��4 PoolArena��(n��i)����� 214
6��5 RecvByteBufAllocator��(n��i)�����Ӌ(j��)�� 223
6��6 �Y(ji��) 227

��7�� Netty�r(sh��)�g݆�߼�(j��)��(y��ng)�� 228
7��1 Netty�r(sh��)�g݆�Ľ��x 229
7��1��1 �r(sh��)�g݆Դ�a����֮��ʼ����(g��u)�� 230
7��1��2 �r(sh��)�g݆Դ�a����֮Worker����(d��ng)���� 236
7��2 Netty�r(sh��)�g݆���췽����ӆ 239
7��3 �r(sh��)�g݆�߼�(j��)��(y��ng)��֮�ܘ�(g��u)�O(sh��)Ӌ(j��) 241
7��4 �r(sh��)�g݆�߼�(j��)��(y��ng)��֮��(sh��)��(zh��n)10�|��(j��)�΄�(w��) 243
7��5 �Y(ji��) 245

��8�� ���}�����c�����{(di��o)��(y��u) 246
8��1 Netty����(w��)��Linux����(w��)���ϵIJ��� 246
8��2 Netty����(w��)ģ�M�뚢���y(c��) 255
8��3 ��Ҋ���a(ch��n)���}���� 264
8��4 �����{(di��o)��(y��u) 267
8��5 �Y(ji��) 270

չ�_ȫ��

NettyԴ�a�����c��(y��ng)�� ���ߺ�(ji��n)��

��ҫ�֣���2012 �굽2017 ��һֱ����Java ���_(t��i)����(w��)�_�l(f��)�������ڴ����g����(chu��ng)�k�^�����ھ������W(w��ng)���W(w��ng)��ҹ�Ђb�ώ�������^Netty Դ�a����ҕ�l�̌W(xu��)��ͬ�r(sh��)�ڶ�һ�“(li��n)�W(w��ng)��˾��(d��n)���^ϵ�y(t��ng)�ܘ�(g��u)�������S����Java ������(sh��)��(zh��n)��(j��ng)�(y��n)����2018 �������D(zhu��n)�͏��´�(sh��)��(j��)�аl(f��)��������(du��)Flink��Hbase��Kafka��Elasticsearch �ȴ�(sh��)��(j��)�M����������о���

��Ʒ�u(p��ng)Փ(0�l)
���o�u(p��ng)Փ����
�������]
��݋���]
����픲�
�ЈD�W(w��ng)
�ھ��ͷ�