首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
教练我想敲代码
掘友等级
Java开发工程师
Java Mysql
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
中间件系列之Netty-8-定长协议
其中:frameLength就是我们指定的长度。 可以看到FixedLengthFrameDecoder的确将请求的数据,按照每3个字节当做一个完整的请求报文。 通常情况下,很少有client与server交互时,直接使用定长协议,可能会造成浪费。例如你实际要发送的实际只有3个…
中间件系列之Netty-7-Netty编码解码
编码:发送方要将发送的二进制数据转换成协议规定的格式的二进制数据流,称之为编码(encode),编码功能由编码器(encoder)完成。 解码:接收方需要根据协议的格式,对二进制数据进行解析,称之为解码(decode),解码功能由解码器(decoder)完成。 编解码:如果有一…
中间件系列之Netty-6-粘包和拆包
在TCP编程中,通常Sever端与Client通信时的消息都有着固定的消息格式,称之为协议(protocol),例如FTP协议、Telnet协议等。 那么协议到底是干什么的呢?说白了,协议了就是定义了数据通信的格式。主要是为了解决TCP编程中的粘包和拆包问题。 由于TCP是面向…
中间件系列之Netty-5-Netty线程模型启动源码
整体来看,ServerBootStrap继承自AbstractBootstrap,其代表服务端的启动类,当调用其bind方法时,表示启动服务端。在启动之前,我们会调用group,channel、handler、option、attr、childHandler、childOpti…
中间件系列之Netty-4-线程模型
一个worker线程来处理用户提交的任务,任务接受和任务处理是在同一个worker线程中进行的,没有进行区分。这样做存在一个很大的问题是,必须要等待某个task处理完成之后,才能接受处理下一个task。而通常情况下,任务的处理过程会比任务的接受流程慢得多,白白浪费了资源。 所以…
中间件系列之Netty-3-Channel
基于JDK1.4之前,基于BIO,我们通常使用java.net包中的ServerSocket和Socket来代表服务端和客户端。 在之后引入NIO编程之后,我们使用java.nio.channels包中的ServerSocketChannel和SocketChannel来代表服…
中间件系列之Netty-2-Netty示例
这里,我们首先直接以Netty入门案例入手,先感性认识一下Netty。TimeClient发送“QUERY TIME ORDER”请求,TimeServer接受到这个请求后,返回当前时间。 首先我们创建了两个EventLoopGroup实例:bossGroup和workerGr…
中间件系列之Netty-1-NIO概述
为了提高操作系统的稳定性及可用性,虚拟内存被操作系统划分成两块:内核空间和用户空间。 内核空间是操作系统所在区域。内核代码有特别的权力:它能与设备控制器通讯,控制着用户区域进程的运行状态等等。最重要的是,==所有 I/O 都直接或间接通过内核空间==。Linux的内核将所有外部…
中间件系列之ElasticSearch-5-ES特性补充(杂货铺)
在URL中制定参数“_search?search_type=dfs_query_then_fetch”,会把每个分片的词频和文档频率搜集后,完整的进行一次算分。但会耗费更多的CPU和内存,一般不建议使用 排序是针对文档原始内容排序,倒排索引无法使用。使用正排索引,通过文档ID和…
中间件系列之ElasticSearch-4-ES小规模实战即仿京东搜索
利用Jsoup爬取数据, Jsoup是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。详情可参考:Jsoup中文使用手册 与普通查询大体逻辑相同,只需要设置自定义的高亮逻辑,并在E…
下一页
个人成就
文章被点赞
50
文章被阅读
50,993
掘力值
1,565
关注了
4
关注者
24
收藏集
6
关注标签
3
加入于
2020-04-27