- 博客(219)
- 资源 (39)
- 收藏
- 关注
原创 Netty零拷贝(ZeroCopy)
前言在Java技术栈中,Netty一直以来都作为网络编程的不二之选。Netty是基于Java Nio封装的网络编程框架,具有高并发、传输速度快、封装友好、扩展性强等特点。本文就着重分析下Netty传输速度快特点的技术方案:零拷贝操作系统传统数据拷贝由上图可以看出,传统的数据拷贝方式分为以下4步。1 将数据从磁盘读取到内核缓存2 将数据从内核缓存读取到用户缓存3 将数据从用户缓存写入到socket缓存4 将数据从socket缓存写入到网卡设备其中1、4步骤是有DMA(见文尾) COPY
2020-09-09 14:10:53 830
原创 TypeError: ‘float‘ object cannot be interpreted as an integer
尝试更改后完美解决,原因是两个项目都基于Diffusion来构建的,问题出在Diffusion。将k_diffusion.py的第96行修改下。
2023-05-12 21:23:32 143
转载 Java学习路线图
第一阶段:Java基础学习任何一门编程语言,首先要学习的是基础语法,开启Java学习的第一步,当然就是深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程,这些我们称之为JavaSE基础。当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面端软件。第二阶段:数据库互联网最具价值的是数据,任何编程语言都需要解决数据存储问题,而数据存储的关键技术是数据库。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Jav
2020-05-22 12:15:21 218
转载 多线程40个问题汇总
1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然”,只有达到”知其然知其所以然”的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少
2017-05-19 18:12:40 388
转载 Websocket协议的学习、调研和实现
1. websocket是什么Websocket是html5提出的一个协议规范,参考rfc6455。websocket约定了一个通信的规范,通过一个握手的机制,客户端(浏览器)和服务器(webserver)之间能建立一个类似tcp的连接,从而方便c-s之间的通信。在websocket出现之前,web交互一般是基于http协议的短连接或者长连接。WebSocket是为解决客户端与服务端实
2017-05-17 18:01:00 395
转载 Redis SortedSet实现原理
Redis中支持的数据结构比Memcached要多的多啦,如基本的字符串、哈希表、列表、集合、可排序集,在这些基本数据结构上也提供了针对该数据结构的各种操作,这也是Redis之所以流行起来的一个重要原因,当然Redis能够流行起来的原因,远远不只这一个,如支持高并发的读写、数据的持久化、高效的内存管理及淘汰机制...从Redis的git提交历史中,可以查到,2009/10/24在1.050
2017-05-17 16:37:20 22219
转载 MessagePack, Protocol Buffers和Thrift序列化框架原理和比较说明
第1部分 messagepack说明1.1messagepack的消息编码说明为什么messagepack比json序列化使用的字节流更少, 可通过图1-1、图1-2有个直观的感觉。 图1- 1 messagepack与json的格式对比1 图1- 2 messagepack与json的格式对比2messagepack的
2017-04-13 15:36:12 536
原创 统计TCP命令
统计linux服务器TCP状况netstat -n | grep 5003|awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
2017-03-10 10:32:08 315
转载 TCP知识点
1. SO_LINGER/ SO_REUSEADDR TCP正常的关闭过程如下(四次握手过程):(FIN_WAIT_1) A ---FIN---> B(CLOSE_WAIT)(FIN_WAIT_2) A (TIME_WAIT)A (TIME_WAIT)A ---ACK-> B(CLOSED
2016-09-02 20:21:00 408
原创 solr操作
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-07-13 10:26:03 405
原创 分享几张golang桌面图片
原图百度网盘地址 http://pan.baidu.com/s/1kU0KjXX尺寸都是2880 × 1800拿走不谢,哈哈
2016-02-18 15:18:56 3187
转载 不损质量?Rails下的图像处理
图像可以说是任何应用至关重要的一部分。从社交网络到一个简单的Bug追踪器,图像都扮演着重要的角色。然而管理图像并不是一件容易的事情,需要提前耗费大量的时间精力去计划。本文演示了如何在Rail中实现这一目标。如何处理你的图像以及在后台创建多个版本?如何通过压缩图像又不损图像质量,以此来提高页面性能?这些且听本文一一道来。入门本文教程是运行于Rails 4.2,通过
2015-03-20 09:36:55 624
原创 elasticsearch笔记
1 基本操作 curl -XPUT 'localhost:9200/customer' curl -XPUT 'localhost:9200/customer/external/1' -d ' { "name": "John Doe" }' curl 'localhost:9200/customer
2014-10-24 14:45:26 466
转载 100万并发连接服务器笔记之Java Netty处理1M连接会怎么样
前言每一种该语言在某些极限情况下的表现一般都不太一样,那么我常用的Java语言,在达到100万个并发连接情况下,会怎么样呢,有些好奇,更有些期盼。这次使用经常使用的顺手的netty NIO框架(netty-3.6.5.Final),封装的很好,接口很全面,就像它现在的域名 netty.io,专注于网络IO。整个过程没有什么技术含量,浅显分析过就更显得有些枯燥无聊,准备好,硬着头皮吧
2014-10-21 16:51:49 860
转载 100万并发连接服务器笔记之1M并发连接目标达成
第四个遇到的问题:tcp_mem在服务端,连接达到一定数量,诸如50W时,有些隐藏很深的问题,就不断的抛出来。 通过查看dmesg命令查看,发现大量TCP: too many of orphaned sockets错误,也很正常,下面到了需要调整tcp socket参数的时候了。第一个需要调整的是tcp_rmem,即TCP读取缓冲区,单位为字节,查看默认值cat /proc/s
2014-10-21 15:56:10 564
转载 linux服务器内核报错,printk: 58 messages suppressed和Out of socket memory
20120830发现日本服务器 27和28 有报错日志。详细如下:Aug 31 18:25:36 collect-28 kernel: printk: 58 messages suppressed.Aug 31 18:25:36 collect-28 kernel: Out of socket memory故障排查分析:第一条日志分析:查找信息,Aug 31 1
2014-10-21 14:41:39 685
转载 Mina 解决请求后直接关闭连接(去除TIME_WAIT状态)
Mina 是一个韩国人写的基本java NIO的一个高性能的传输框架,我们的搜索就是基本它作为一个搜索服务开放接口了。对于系统的TIME_WAIT过多,造成服务器的负载过高,这个问题我也不用多说了,这段时间发现搜索服务器上的TIME_WAIT过多,我们每天大约总处理70W左右的搜索请求,虽然不多,但是造成了TIME_WAIT很多,有好几千个,可以 netstat -antu | grep :端
2014-06-13 20:56:38 3598
原创 java.security.NoSuchAlgorithmException: Cannot find any provider supporting DESede/CBC/PKCS5Padding
最近在做3DES加密,在本地window下面运行ok的程序,放到linux环境上竟然报错:java.security.NoSuchAlgorithmException: Cannot find any provider supporting DESede/CBC/PKCS5Padding at javax.crypto.Cipher.getInstance(Ciphe
2014-04-30 10:28:28 9325
转载 linux定时任务的设置
为当前用户创建cron服务1. 键入 crontab -e 编辑crontab服务文件 例如 文件内容如下: */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 保存文件并并退出 */2 * * * * /bin/sh /home/admin/jiaobe
2014-03-11 22:29:13 505
转载 linux 下查找大于100M的文件
命令行如下find . -type f -size +1000000k Linux系统下查找大文件或目录的技巧当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢? #已易读的格式显示指定目录或文件的大小,-s选项指定对于目录不详细显示每个子目录或文件的大小 du -sh [dirname|filename]
2014-03-11 22:28:37 4099 1
原创 XMPP connection分析
INFO 2014-03-05 16:39:44 ConnectionHandler:183 - RECV:INFO 2014-03-05 16:39:44 ConnectionHandler:224 - --SENT:INFO 2014-03-05 16:39:44 ConnectionHandler:224 - --SENT:DIGEST-MD5JIVE-SHAREDSE
2014-03-05 16:40:09 1140
原创 eclipse配置maven环境
maven安装下载maven:http://mirrors.cnnic.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip解压放到D盘,如:D:\apache-maven-3.1.1配置环境变量系统变量:MAVEN_HOME = D:\apache-maven-3.1.1用户变量
2014-02-21 11:08:38 639
原创 JAVA APNS苹果推送
最近在做苹果推送,找到了一个比较好的开源项目,国人写的下载地址为:https://github.com/RamosLi/dbay-apns-for-java调用代码如下:import java.io.InputStream;import java.util.List;import com.dbay.apns4j.IApnsService;import com.dbay.apns
2014-02-18 18:52:09 7155 1
转载 Java 下实现锁无关数据结构(转)
介绍通常在一个多线程环境下,我们需要共享某些数据,但为了避免竞争条件引致数据出现不一致的情况,某些代码段需要变成原子操作去执行。这时,我们便需要利用各种同步机制如互斥(Mutex)去为这些代码段加锁,让某一线程可以独占共享数据,避免竞争条件,确保数据一致性。但可惜的是,这属于阻塞性同步,所有其他线程唯一可以做的就是等待。基于锁(Lock based)的多线程设计更可能引发死锁、优先级倒置、
2014-02-17 18:41:23 565
转载 mina源码分析八(转)
这篇来看看AbstractPollingIoConnector抽象类,它用于用于实现客户端连接的轮询策略。处理逻辑基本上和上一篇文章说的AbstractPollingIoAcceptor类似,它继承自AbstractIoConnector,两个泛型参数分别是所处理的会话和客户端socket连接。底层的sockets会被不断检测,并当有任何一个socket需要被处理时就会被唤醒去处理。这个类封装了客
2014-02-17 16:00:22 598
转载 mina源码分析七(转)
前面介绍完了org.apache.mina.core.session这个包,现在开始进入org.apache.mina.core. polling包。这个包里包含了实现基于轮询策略(比如NIO的select调用或其他类型的I/O轮询系统调用(如epoll,poll,kqueue等)的基类。先来看AbstractPollingIoAcceptor这个抽象基类,它继承自AbstractIo
2014-02-17 15:58:46 531
转载 mina源码分析六(转)
上文的内容还有一些没有结尾,这篇补上。在ExpiringMap类中,使用了一个私有内部类ExpiringObject来表示待检查超时的对象,它包括三个域,键,值,上次访问时间,以及用于上次访问时间这个域的读写锁: private K key; private V value; private long lastAccessTime;
2014-02-17 15:23:40 700
转载 mina源码分析五(转)
前面介绍过IoSessionRecycler是负责回收不再使用的会话的接口,ExpiringSessionRecycler是其一个实现类,用于回收超时失效的会话。private ExpiringMap sessionMap;//待处理的会话集private ExpiringMap.Expirer mapExpirer;//负责具体的回收工作sessionMap的键是由本地地址和远端地址共
2014-02-17 15:01:18 649
转载 mina源码分析四(转)
前面几篇介绍完了org.apache.mina.core.service这个包,现在进入org.apache.mina.core.session,这个包主要是围绕IoSession展开的,包括会话的方方面面。IoSession接口与底层的传输层类型无关(也就是不管是TCP还是UDP),它表示通信双端的连接。它提供用户自定义属性,可以用于在过滤器和处理器之间交换用户自定义协议相关的信息。
2014-02-17 14:37:47 550
转载 mina源码分析三(转)
AbstractIoAcceptor类继承自AbstractIoService基类,并实现了IoAcceptor接口,它主要的成员变量是本地绑定地址。 private final List defaultLocalAddresses = new ArrayList(); private final List unmodifiableDefaultLocalAddre
2014-02-17 11:54:22 578
转载 mina源码分析二(转)
这一篇主要介绍实现这些接口的抽象基类。首先是实现IoService接口的AbstractIoService类。它包含了一个Executor来处理到来的事件。每个AbstractIoService都一个AtomicInteger类型的id号,确保每个id的唯一性。它内部的Executor可以选择是从外部传递进构造函数中,也可以在实例内部自行构造,若是后者,则它将是ThreadPoolExec
2014-02-17 11:28:11 520
转载 mina源码分析一(转)
整个框架最核心的几个包是:org.apache.mina.core.serviceorg.apache.mina.core.sessionorg.apache.mina.core.pollingorg.apache.mina.transport.socketorg.apache.mina.core.service:第一个要说的接口是IoService,它是所有I
2014-02-17 10:49:57 712
原创 centos安装UCSniff
先安装依赖环境# yum install alsa-lib-devel.x86_64# yum install lbzip2.x86_64# /usr/local/src# wget http://softlayer-ams.dl.sourceforge.net/project/ucsniff/ucsniff/ucsniff-3.2%20src/ucsniff-3.20.t
2014-02-14 12:09:27 949
转载 centOS服务器 netstat命令 查看TCP连接数信息(转)
netstat命令的功能是显示网络连接、路由表和网络接口的信息,可以让用户得知有哪些网络连接正在运作。在日常工作中,我们最常用的也就两个参数,即netstat –an,如下所示: [root@tiaobanji ~]# netstat -an Active Internet connections (servers and established) Proto
2014-02-14 11:18:53 7326
原创 linux下安装mongodb
第一:下载,解压mongodb文件。把解压的文件放在/opt/下面(存放目录安装自己习惯存放) # wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz # tar -zxvf mongodb-linux-x86_64-2.4.9.tgz # mv mongodb-li
2014-02-14 11:18:38 627
阿里Java并发程序设计教程
2014-02-17
淘宝性能测试白皮书V1.0
2014-02-17
openfire测试插件
2014-02-14
手机号码归属地数据库(mysql)
2013-07-24
Interactive Connectivity Establishment: ICE(思科)
2013-07-02
Java集群框架Shoal支持容错及分布式状态缓存
2013-02-05
百问FreeSwitch
2013-01-21
nginx中文文档
2012-12-13
Linphone的编译与代码分析
2012-12-11
linphone-android编译好的静态库
2012-12-03
jedis-2.0.0包下载
2012-03-28
redis-2.0.2下载
2012-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人