「十年饮冰」


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签
「十年饮冰」

关于序列化协议的思考

发表于 2016-01-30 | 分类于 java , 序列化 , 协议 , 性能 , protobuf , kryo |
思考最近在设计一个RPC框架,需要处理序列化的问题。有很多种序列化协议可以选择,比如Java原生的序列化协议,Protobuf, Thrift, Hessian, Kryo等等,这里说的序列化协议专指Java的基于二进制的协议,不是基于XML, JSON这种格式的协议。在实际开发中考虑了很多点,也遇到一些问题,拿出来说说。 抛开这些协议不说,结合实际的需求,一个理想的序列化协议至少考虑4个方面: 性能 是否支持被序列化对象新旧版本的兼容性问题。这个需求在实际开发中经常遇到,比如发布了一个服务,有很多客户端使用。当服务需要修改,新 添加1个参数时,不可能要求所有客户端都更新,那样牵扯的面太 ...
阅读全文 »
「十年饮冰」

浅析Google Guava中concurrent下的Monitor和Future特性

发表于 2016-01-30 | 分类于 java , 并发 , guava , 锁 , 异步编程 |
关于Monitor A synchronization abstraction supporting waiting on arbitrary boolean conditions Monitor类是作为ReentrantLock的一个替代,代码中使用 Monitor比使用ReentrantLock更不易出错,可读性也更强,并且也没有显著的性能损失,使用Monitor甚至有潜在的性能得到优化。下面我们整体上对Monitor的源码结构做一下梳理,总的来说也就在从jdk最原生的wait、notify.再做了一层warp。提供更加丰富的API。比如,当我们要实现一个blockingQueue的时候 ...
阅读全文 »
「十年饮冰」

高性能IO模型浅析

发表于 2016-01-10 | 分类于 IO , 网络 , Linux , 性能 |
服务器端编程经常需要构造高性能的 IO 模型,常见的 IO 模型有四种: 同步阻塞 IO(Blocking IO):即传统的 IO 模型。 同步非阻塞 IO(Non-blocking IO):默认创建的 socket 都是阻塞的,非阻塞 IO 要求 socket 被设置为 NONBLOCK。注意这里所说的 NIO 并非 Java 的 NIO(New IO)库。 IO 多路复用(IO Multiplexing):即经典的 Reactor 设计模式,有时也称为异步阻塞 IO,Java 中的 Selector 和 Linux 中的 epoll 都是这种模型。 异步 IO(Asynchronous ...
阅读全文 »
1…3456
谢照东

谢照东

我没有梦想,但是我有一个野心

16 日志
51 分类
42 标签
RSS
GitHub 微博 知乎
links
  • Mr.Harry
  • ilulu
  • 0-?
  • ios.dog
  • jucsinyu
  • 沈津生
© 2015 - 2017 谢照东
由 Hexo 强力驱动
主题 - NexT.Pisces