NIO的一坑一惑小记】的更多相关文章

前言 不知不觉,已那么长时间没有更新东西了,说来真是汗颜啊.(主要是最近在技术上豁然开朗的感觉越来越少了-_-|||) 最近一直在学习Linux相关的东西.又一次接触到了I/O复用模型(select/poll/epoll),由于好久没在用NIO写过代码了,今天就小试写个例子,以巩固下对I/O复用模型的理解.这不,遇到了一个坑,也产生了一点疑惑.^_^. 一坑 简单描述:Selector的select方法返回的key集合中有一个SelectionKey是可读的,但是调用与此SelectionKey…
title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql-client 测试是否安装成功 sudo netstat -tap | grep mysql 相关操作 登录 mysql -uroot -p 检查MySQL服务器占用端口 netstat -nlt|grep 3306 检查MySQL服务器系统进程 ps -aux|grep mysql 查看数据库的…
# 支付宝使用整理 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,tab…
报错日志: 2018-12-17 10:01:19,688 ERROR [io.undertow.request] (default task-3) UT005023: Exception handling request to /xxx/app/bannerMaterialManager/uploadBannerSysGoodsPicture: java.nio.charset.IllegalCharsetNameException: UTF-8;boundary=sqgzzmMxl1UPdI…
MySql 踩坑一时爽,一直踩啊一直爽...   以下记录刚踩的三个坑,emmm... 首先是远程机子上创建表错误(踩第一个坑),于是将本地机器 MySql 版本回退至和远程一致(踩第二个坑),最后在第二个坑里踩到了第三个坑.   Sequelize 创建表报错   针对 Sequelize 创建表的时候,报错 Specified key was too long; max key length is 767 bytes   原因:数据库针对索引列的长度限制为最大 767byte   至于为什么…
1.问题提出 1.前段时间在项目中用到Lists.transform返回的List,在对该list修改后发现修改并没有反映在结果里,研究源码后发现问题还挺大.下面通过单步调试的结果来查看Guava Lists.transform使用过程中需要注意的地方. a.对原有的list列表修改会影响Lists.transform已经生成列表 由上图可以看出,对原数据集personDbs的修改会直接影响到Lists.transform方法返回的结果personVos,这是很危险的,如果在使用的过程中不注意的…
从今年过完年回来,三月份开始,就一直在做重构相关的事情. 就在今天刚刚上线了最新一次的重构代码,希望高峰期安好,接近半年的Node.js代码重构. 包含从callback+async.waterfall到generator+co,统统升级为了async,还顺带推动了TypeScript在我司的使用. 这些日子也踩了不少坑,也总结了一些小小的优化方案,进行精简后将一些比较关键的点,拿出来分享给大家,希望有同样在做重构的小伙伴们可以绕过这些. 为什么要升级 首先还是要谈谈改代码的理由,毕竟重构肯定是…
Codeforces VP/补题小记 1149 C. Tree Generator 给你一棵树的括号序列,每次交换两个括号,维护每次交换之后的直径. ​ 考虑括号序列维护树的路径信息和,是将左括号看做 \(-1\) ,右括号看做 \(1\) ,那么一段竖直向上的路径可以表示为括号序列的一个区间和,一段竖直向下的路径可以看做括号序列的一个区间和的相反数.我们要维护的是树的直径,也就是一段连续的和减去紧随其后的一段连续的差.具体来说就是 \[ \max_{\forall [l,r]}\{\sum_{…
前几天在帮后端排查一个cors的问题的时候发现的一些小坑特此记录 ** cors的本质是出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求. 例如,XMLHttpRequest和FetchAPI遵循同源策略. 这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非使用CORS头文件.跨域并非一定是浏览器限制了跨站请求,也有可能是跨站请求可以正常发起,但是返回结果被浏览器拦截了.最好的例子是 CSRF跨站攻击原理,请求是发送到了后端服务器无论是否跨域!注意:有…
本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star. 背景 本文记录最近一位读者反馈的dubbo 2.7.x中应用级服务发现的问题,关于dubbo应用级服务发现的相关介绍可以参考之前的文章<dubbo应用级服务发现初体验>,这里不再赘述. 读者反馈他们在基于dubbo 2.7应用级服务发现开发dubbo网关,根据文章<dubbo应用级服务发现初体验>写了demo调用时报no provider的错误. 首先觉得他们挺有想法,把dub…
转载请注明出处:http://blog.csdn.net/guodongxiaren/article/details/40950249 谢谢合作 前言 无论是CentOS,或是Debian/Ubuntu.甚至是Windows.Nginx都有已编译好的安装包可用. 通常仅仅须要在终端上潇洒地输入apt-get install ...或是yum install ..就能够了.可是对于我这个源代码编译狂来说.那样一键安装,显然无法满足我心理需求. 获取Nginx源代码 下载 官网已经出现了1.7了.只…
修改的ranger ui的admin用户登录密码时,需要在ranger的配置里把admin_password改成一样的,否则hdfs的namenode在使用admin时启动不起来,异常如下: Traceback (most recent call last): File "/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py", line 317, in <mo…
在使用jquery ajax时,如果其参数是一个json对象,将此参数使用$('#dd').data(param)绑定到一个元素上, 在使用$('#dd').bind('click',function(){});绑定事件, 在用$('#dd').data()取出此param对象,param对象中会包含jquery对象的元信息 此时在使用jquery ajax发送此参数时,会导致ajax无限循环序列化此参数对象 浏览器显示正在处理,请求发不出去.…
之前有写过Vue.Draggable实现拖拽效果(快速使用)(http://www.cnblogs.com/songdongdong/p/6928945.html)最近项目中要用到这个拖拽的效果,当产品那个今日头条app编辑导航,拖拽的效果时,心里暗爽,(之前玩过呀,很简单的,事实证明,任何看似简单的东西,实现起来都不会那么一帆风顺,当然:当你真正实现了该效果时,会发现其实还是挺简单的:ps:自说自话,自己打自己脸\(^o^)/~),闲话少说,直接切入正题: 仔细观察发现,今日头条导航部分编辑效…
The number of method references in a .dex file cannot exceed 64K. 这句话的意思翻译出来是:.dex文件中的方法引用数不能超过64K. 我的理解: 引用的第三方的方法超过了64K,需要在Android包下配置multidex减少第三方包引入(个人理解) 解决方案: 在android/app/build.gradle中的 dependencies 下添加 implementation 'com.android.support:mult…
原文:https://www.az1314.cn/art/69 ------------------------------------------ mapA := make([string]interface{})   mapB := make([string]interface{})   mapA["name"] = "小文"    mapA["age"]  = 25   mapB["mapA"] = mapA   for…
Docker是一个开放平台用于快速开发.分发和部署应用程序.   Docker是一种容器管理技术.   解决头疼问题原则:回归最简单的方式来.确保最初级的方案没有错误. 安装 docker安装很简单,输入官方的命令就可以,但是在安装docker-comopse的过程中遇到下载超级慢的问题,所以需要配置加速器,这里使用了国内的daoclould curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361…
一:phpmailer发送邮件成功了 数据库发送状态也更改 但是用户就是没收到邮件. 出现原因:发送邮件太多 导致邮箱服务器被腾讯封了 发送的邮件统统进入了邮件服务器的草稿箱里. 解决方案: 重新修改密码,更换授权码即可. 二:php发送邮件报错:SMTP Error: data not accepted. 出现原因:发送邮件太频繁 解决方案: 休息一天这样自己就好了.…
错误使用样例 map.getOrDefault("account","").toString(); 在运行几小时后,发现报错空指针:查看源码如下: default V getOrDefault(Object key, V defaultValue) { V v; return (((v = get(key)) != null) || containsKey(key)) ? v : defaultValue; } 竟然是||运算,如果containsKey 或者get…
广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2的情况 第二个讲师介绍了PostgreSQL里面的一些执行计划分析 我个人比较关注第一个session,因为涉及到真正的应用案例 网上有对PostgreSQL-X2的简短介绍,我先转载过来 转载:http://francs3.blog.163.com/blog/static/405767272012…
为了形成一个完整清晰的认识,将概念和关系梳理出来,把坑填平. I/O多路复用 I/O多路复用主要解决传统I/O单线程阻塞的问题.它通过单线程管理多个FD,当监听的FD有状态变化的时候的,调用回调函数,通知用户已经准备完毕.用户收到通知,就可以进行IO操作了.这种机制大大的提高了系统的吞吐量.I/O多路复用的目的是为了更充分的利用CPU资源. EPOLL(SELECT/POLL) Linux下I/O多路复用的接口实现.EPOLL是POLL和SELECT的升级版.NIO底层就是封装了EPOLL接口.…
Kafka 0.9版本对java client的api做出了较大调整,本文主要总结了Kafka 0.9在集群搭建.高可用性.新API方面的相关过程和细节,以及本人在安装调试过程中踩出的各种坑. 关于Kafka的结构.功能.特点.适用场景等,网上到处都是,我就不再赘述了,直接进入正文 Kafka 0.9集群安装配置 操作系统:CentOS 6.5 1. 安装Java环境 Zookeeper和Kafka的运行都需要Java环境,所以先安装JRE,Kafka默认使用G1垃圾回收器,如果不更改垃圾回收器…
1.前言 有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性.移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着大量的挑战.本文将简述移动端IM最重要的架构设计和通信协议选择方面的坑点,希望为IM开发者同行带来些许启发.(本文同步发布于:http://www.52im.net/thread-289-1-1.html) 2.学习交流 - 即时通讯开发交流群: 215891622 [推荐] - 移动端IM开发推荐…
其实这篇应该叫Netty实践,但是为了与前一篇名字保持一致,所以还是用一下坑这个名字吧. Netty是高性能Java NIO网络框架,在很多开源系统里都有她的身影,而在绝大多数互联网公司所实施的服务化,以及最近流行的MicroService中,她都作为基础中的基础出现. Netty的出现让我们可以简单容易地就可以使用NIO带来的高性能网络编程的潜力.她用一种统一的流水线方式组织我们的业务代码,将底层网络繁杂的细节隐藏起来,让我们只需要关注业务代码即可.并且用这种机制将不同的业务划分到不同的han…
转: http://www.oschina.net/question/54100_16195omcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态. 1)bio 默认的模式,性能非常低下,没有经过任何优化处理和支持. 2)nio  利用java的异步io护理技术,no blocking IO技术. 想运行在该模式下,直接修改server.xml里的Conne…
之前跟大家说过,要讲MappedByteBuffer,现在我来履行承诺了. 首先从大体上讲一下MappedByteBuffer究竟是什么.从继承结构上来讲,MappedByteBuffer继承自ByteBuffer,所以ByteBuffer有的能力它全有:像变动position和limit指针啦.包装一个其他种类Buffer的视图啦,都可以."MappedByteBuffer"为何而来?吾辈心中亦有惑(熊猫人之谜的梗)用一个字来概括就是快 为什么快?因为它使用direct buffer…
event对象的属性提供了有关事件的细节并且通过event对象的方法,可以控制事件的继续传播和阻止事件的默认行为 2级DOM Events 标准定义了一个标准的事件模型  被除了IE外的所有现代浏览器实现     在标准事件模型中event对象传递给事件句柄函数,在处理事件的时候获取事件发生的一些属性和控制事件的一些行为(冒泡和默认行为)   在标准事件模型中,Event的各种子接口定义了额外的属性,也就是可以定义多种种类的event对象  而IE只有一种event对象 应用于所有的事件处理 2…
1.获取web项目根目录的绝对路径 request.getContextPath()  获取项目名称,如    /BiYeSheJi getServletContext().getRealPath("/")  获取项目根目录,如  C:\install files\programing software\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BiYeSheJi\…
这两天仿hadoop 写java RPC框架,使用PB作为序列号工具,在写读数据的时候遇到一个小坑.之前写过NIO代码,恰好是错误的代码产生正确的逻辑,误以为自己写对了.现在简单整理一下. 使用NIO,select()到读事件时,要处理4种情况: 1. channel还有数据,继续读. 2. channel中暂时没数据,但channel还没断开,这是读取到的数据个数为0,结束读,继续到select()处阻塞等待数据. 3. 另一端channel.close()关闭连接,这时候读channel返回…
前言 本文主要内容为nw.js官方文档中没有提到,而在实际入手开发过程中才碰到的问题以及经验的汇总. 详情请查看官方文档:http://docs.nwjs.io/en/latest/References/Menu/ 1. MenuStrip与ContextMenu 在聊nwjs中的Menu之前先说下在传统window桌面端应用开发中的两种常见的菜单. windows中的MenuStrip 第一种:MenuStrip,菜单栏,通常在主窗体中的顶部,横向展示.如图:  windows中的Conte…