古道长亭

Contact me with ixiaoqiang0011@gmail.com


  • 首页

  • 归档

  • 分类

  • 关于

  • Book

  • 搜索

Netty核心原理

时间: 2022-07-23   |   分类: RPC框架   netty   | 字数: 6959 字 | 阅读约: 14分钟

Netty核心原理

示例代码:https://gitee.com/ixinglan/rpc-demo.git

1.netty介绍

1.1 原生nio存在的问题

  • NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、 SocketChannel、ByteBuffer等。
  • 需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的 NIO 程序。
  • 开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等等。
  • JDK NIO 的 Bug:臭名昭著的 Epoll Bug,它会导致 Selector 空轮询,最终导致 CPU 100%。直到JDK 1.7版本该问题仍旧存在,没有被根本解决

在NIO中通过Selector的轮询当前是否有IO事件,根据JDK NIO api描述,Selector的select方法会一直阻塞,直到IO事件达到或超时,但是在Linux平台上这里有时会出现问题,在某些场景下select方法会直接返回,即使没有超时并且也没有IO事件到达,这就是著名的epoll bug,这是一个比较严重的bug,它会导致线程陷入死循环,会让CPU飙到100%,极大地影响系统的可靠性,到目前为止,JDK都没有完全解决这个问题。

阅读全文 »

NIO编程

时间: 2022-07-22   |   分类: RPC框架   | 字数: 5070 字 | 阅读约: 11分钟

NIO编程

示例代码:https://gitee.com/ixinglan/rpc-demo.git nio-demo

1.NIO介绍

Java NIO 全称java non-blocking IO ,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的.

阅读全文 »

Socket回顾与IO模型

时间: 2022-07-21   |   分类: RPC框架   | 字数: 1461 字 | 阅读约: 3分钟

#Socket回顾与IO模型

示例代码:https://gitee.com/ixinglan/rpc-demo.git

1.socket网络编程回顾

1.1 socket概述

Socket,套接字就是两台主机之间逻辑连接的端点。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议、本地主机的IP地址、本地进程的协议端口、远程主机的IP地址、远程进程的协议端口。

阅读全文 »

应用加速

时间: 2022-07-16   |   分类: 网络应用安全与加速   | 字数: 4794 字 | 阅读约: 10分钟

应用加速

1.cdn工作原理

1.1 cdn的产生及作用

随着时代的发展,网民数量增多,访问路径过长,所以当用户与网站之间的链路被突发的大流量数据拥塞时,不同地区的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN。

阅读全文 »

安全防护

时间: 2022-07-15   |   分类: 网络应用安全与加速   | 字数: 18783 字 | 阅读约: 38分钟

安全防护

1.跨站脚本攻击(XSS)

1.1 简介

XSS :Cross Site Scripting,为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。

恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

阅读全文 »
36 37 38 39 40 41 42 43 44
古道长亭

古道长亭

Always remember that your present situation is not your final destination. The best is yet to come.

226 日志
57 分类
104 标签
GitHub Gitee
友情链接
  • 古道长亭的BOOK
  • JAVA学习
标签云
  • Mysql
  • 搜索引擎
  • Mybatis
  • 容器
  • 架构
  • 消息队列
  • Flink
  • Sharding sphere
  • 流处理
  • 缓存
© 2019 - 2024 京ICP备19012088号-1
0%