上一页 1 2 3 4 5 6 7 8 ··· 26 下一页
  2019年1月31日
摘要: 在设计netty的编解码器过程中,有许多组件可以选择,这里由于咱对Protostuff比较熟悉,所以就用这个组件了。由于数据要在网络上传输,所以在发送方需要将类对象转换成二进制,接收方接收到数据后,需要将二进制转换成类对象,由于这个操作在之前的文章中有讲解过:网络传输数据序列化工具Protostuf 阅读全文
posted @ 2019-01-31 15:53 程序诗人 阅读(418) 评论(0) 推荐(0) 编辑
  2019年1月18日
摘要: 在js编码过程中,经常会使用如上的语句来规避拿不到变量的问题。 比如:queryData:function () { var that=this; var param={}; for(var key in this.condition){ if(this.condition[key]){ ... 阅读全文
posted @ 2019-01-18 18:09 程序诗人 阅读(320) 评论(0) 推荐(1) 编辑
  2019年1月16日
摘要: 在使用基于TCP实现的各种组件的时候,我们经常会处理数据包。这数据包说来奇怪,从来不会丢失,也不会乱序,只会产生粘包。底层的机制是如何实现的呢?进来我们就来用简洁易懂的文字描述清楚。 在TCP数据包设计思想中,有两个比较重要的概念: Sequence Number: 顺序号,意即数据包的序号,主要用来解决数据包乱序问题。 Acknowledgement Number:确认号,意即数... 阅读全文
posted @ 2019-01-16 20:18 程序诗人 阅读(6863) 评论(0) 推荐(0) 编辑
  2018年12月29日
摘要: 前言 回调,顾名思义,回过头来调用,详细的说来就是用户无需关心内部实现的具体逻辑,只需要在暴露出的回调函数中放入自己的业务逻辑即可。由于回调机制解耦了框架代码和业务代码,所以可以看做是对面向对象解耦的具体实践之一。由于本文的侧重点在于讲解后端回调,所以对于前端回调甚至于类似JSONP的回调函数类的, 阅读全文
posted @ 2018-12-29 17:15 程序诗人 阅读(1161) 评论(0) 推荐(0) 编辑
  2018年12月11日
摘要: 网上有很多关于ThreadLocal的文章,大部分都提到了多线程之间共享资源的问题。其实ThreadLocal和多线程之间一点关系都没有。如果有,我怕是它的名字改成ThreadShare是不是更合适呢?开个玩笑。从其名称ThreadLocal,我们就可以看出他应该是隶属于线程内部的资源。接下来就详细 阅读全文
posted @ 2018-12-11 09:25 程序诗人 阅读(277) 评论(0) 推荐(0) 编辑
  2018年12月5日
摘要: java项目有时候需要将一些静态文件拷贝到生成的test-class文件夹或者其他地方,虽然手动拷贝可以做到,但是很麻烦。今天主要讲解如何利用pom.xml进行动态的拷贝。 具体的配置信息如下,在dependencies节点后面追加build节点,用于进行资源拷贝操作: maven-resources-plugin 3.1.0 ... 阅读全文
posted @ 2018-12-05 10:25 程序诗人 阅读(1020) 评论(0) 推荐(0) 编辑
  2018年11月30日
摘要: 一直在物色比较好用的网络传输数据序列化工具,看了诸如marshalling,protobuff等,但是均有一个共同特点,使用起来异常繁杂,有没有比较好用同时性能又不会太差的组件呢?答案当然是有的,那就是基于protobuff改造的protostuff,它拥有良好性能的同时,又免去了生成描述文件的烦恼 阅读全文
posted @ 2018-11-30 09:45 程序诗人 阅读(689) 评论(0) 推荐(0) 编辑
  2018年11月8日
摘要: 高并发的系统中,redis的使用是非常频繁的,而lua脚本则更是锦上添花。因为lua脚本本身执行的时候是一个事务性的操作,不会掺杂其他外部的命令,所以很多关键的系统节点都会用redis+lua来实现一致性的操作请求。但是在实际开发过程中,由于redis lua脚本调试难的问题,导致大量的时间耗费在了 阅读全文
posted @ 2018-11-08 14:52 程序诗人 阅读(3595) 评论(0) 推荐(0) 编辑
  2018年10月28日
摘要: 在系统架构设计当中,限流是一个不得不说的话题,因为他太不起眼,但是也太重要了。这点有些像古代镇守边陲的将士,据守隘口,抵挡住外族的千军万马,一旦隘口失守,各种饕餮涌入城内,势必将我们苦心经营的朝堂庙店洗劫一空,之前的所有努力都付之一炬。所以今天我们点了这个话题,一方面是要对限流做下总结,另一方面,抛 阅读全文
posted @ 2018-10-28 12:34 程序诗人 阅读(873) 评论(13) 推荐(5) 编辑
  2018年10月18日
摘要: 目前性能测试组正在对独立秒杀进行性能压测,性能抖动特别厉害。 由于独立秒杀的接口大多数是经过volicity渲染过的页面和数据的整合,所以在压测的时候有很多volicity的错误。初步判定,感觉是volicity的性能问题才导致的。但是通过排查volicity发现,此版本没有网传的性能问题,而且代码 阅读全文
posted @ 2018-10-18 13:15 程序诗人 阅读(4526) 评论(2) 推荐(0) 编辑
  2018年9月12日
摘要: 在互联网项目中,一般以堆内缓存的使用居多,无论是Guava,Memcache,还是JDK自带的HashMap,ConcurrentHashMap等,都是在堆内内存中做数据计算操作。这样做的好处显而易见,用户完全不必在意数据的分配,溢出,回收等操作,全部交由JVM来进行处理。由于JVM提供了诸多的垃圾 阅读全文
posted @ 2018-09-12 14:56 程序诗人 阅读(7092) 评论(2) 推荐(6) 编辑
  2018年8月17日
摘要: 原始Benchmark做法 在设计新框架的时候,往往需要评估待接入的组件的性能,这个时候我们可能会利用UnitTest来进行,写一个方法,然后在循环里面跑,利用System.CurrentTimeMillis()来评估组件性能。然而这种机制,只是跑在了主线程中,无法将组件的性能全部测算出来。当单线程 阅读全文
posted @ 2018-08-17 14:14 程序诗人 阅读(2176) 评论(0) 推荐(0) 编辑
  2018年8月9日
摘要: 由于项目使用的是fastjson,也无法换成其他的序列化框架,所以研究了一下他对泛型序列化和反序列化的支持能力,最终解决了这个问题。 要达成的目标 我的封装方式属于通用封装,我要达到的目标是如下的使用方式: 放入数据: 获取数据: OffheapDTO对象的定义方式如下: 也就是我可以随意的把任何对 阅读全文
posted @ 2018-08-09 21:32 程序诗人 阅读(21829) 评论(3) 推荐(1) 编辑
  2018年6月17日
摘要: 在互联网设计架构过程中,日志异步落库,俨然已经是高并发环节中不可缺少的一环。为什么说是高并发环节中不可缺少的呢? 原因在于,如果直接用mq进行日志落库的时候,低并发下,生产端生产数据,然后由消费端异步落库,是没有什么问题的,而且性能也都是异常的好,估计tp99应该都在1ms以内。但是一旦并发增长起来 阅读全文
posted @ 2018-06-17 16:04 程序诗人 阅读(14356) 评论(49) 推荐(30) 编辑
  2018年4月25日
摘要: 项目在mac上跑起来的步骤: 1. 访问,https://brew.sh/ 装上这个然后 brew install git brew install maven, settings.xml需要放到目录位置/usr/local/Cellar/maven/<version>/libexec/conf b 阅读全文
posted @ 2018-04-25 14:34 程序诗人 阅读(293) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 26 下一页