apache thrift 学习笔记: ThreadedSelectorServer

TThreadedSelectorServer是非阻塞服务AbstractNonblockingServer的另一种实现,也是TServer的最高级形式。虽然THsHaServer对业务逻辑调用采用了线程池的方式,但是所有的数据读取和写入操作还都在单线程中完成,当需要在Client和Server之间传输大量数据时,THsHaServer就会面临性能问题。TThreadedSelectorServer将数据读取和写入操作也进行了多线程化。

阅读全文

apache thrift 学习笔记: TNonblockingServer && THsHaServer

在上一篇对于Thrift Server端AbstractNonblockingServer类及其内部聚合的相关核心类的简要梳理之后, 这里对具体的TNonblockingServer和THsHaServer的实现模式进行梳理总结。

阅读全文

apache thrift 学习笔记: TServer初探

这篇文章会结合Thrift源码(Apache thrift 0.11.0)对Thrift Server端 Java 源码进行简要梳理学习。 Thrift Java Server端主要基于JDK原生的NIO实现, NIO的底层主要基于不同的操作系统调用底层的Selector/epoll/kqueue等, 相关准备知识请参见之前的总结。 这篇文章重点引用了: https://www.cnblogs.com/zaizhoumo/p/8184923.html, 感谢原创作者的整理。

阅读全文

apache thrift 学习笔记: 模块概览

Thrift 是一个轻量的, 语言无关的软件栈, 通过实现实现相关与语言的代码自动生成机制, 来提供跨语言的序列化/RPC框架。 这里主要在概念上对Thrift的模块划分以及协议分层做简单的梳理总结。

阅读全文

Java NIO: Selector 浅析

在Java中,Selector这个类是select/epoll/poll/kqueue的外包类, 在不同的平台上, 底层的实现可能有所不同, 但其基本原理是一样的。 这里结合JDK源码来简要分析 Java NIO中 Selector的实现原理。

阅读全文

poll、epoll小结

poll和epoll是linux高并发服务的基础,linux 系统下jdk的NIO底层也是基于epoll, 这里简单对从原理上对poll和epoll做简单总结, 并针对针对这两种IO模式给出简单的demo示例。

阅读全文

ItemCF 实践笔记

基于物品的协同过滤(item-based collaboritive filtering)算法是目前业界应用最多的算法。无论是亚马逊,还是Netflix、Hulu、YouTube,其推荐算法的基础都是该算法。本文结合ItemCF算法原理, 给出了Spark版本的算发实现,并基于MovieLens数据集对算法进行评测。

阅读全文

再看Java HashMap和ConcurrentHashMap

Java 8 对HashMap以及ConcurrentHashMap做了较大的改动, 这里基于jdk1.8.0_131 HotSpot源码简单梳理HashMap的内部实现以及对于高并发场景的支持。

阅读全文

AUC原理小记

AUC (Area under curve)是一个模型评价指标,只能用于二分类模型的评价。从字面理解,就是一条曲线下区域的面积,所有我们要先来弄清楚这条曲线是什么。这个曲线有个名字叫ROC曲线。ROC曲线是统计里面的概率,最早由电子工程师在二战中提出来。这篇文章主要描述AUC原理。

阅读全文

矩阵分解在推荐系统中的应用(4)_算法实现

矩阵分解在推荐系统中的应用翻译系列第四篇, 算法实现。

阅读全文