浩然之气,兼容并蓄 http://blog.csdn.net/gsky1986

技术沉淀,经验分享,老有所念.
私信 关注
foreach_break
码龄13年

专注web、分布式、数据库、数据处理。

  • 134,000
    被访问量
  • 44
    原创文章
  • 43,356
    作者排名
  • 227
    粉丝数量
  • 于 2008-03-13 加入CSDN
获得成就
  • 获得21次点赞
  • 内容获得175次评论
  • 获得35次收藏
荣誉勋章
TA的专栏
  • 分布式与Hadoop
    12篇
  • 精通数据结构系列
    11篇
  • 搜索引擎技术
    7篇
  • linux
    9篇
  • 深度分析系列
    8篇
  • 服务端技术
    7篇
  • java
    15篇
  • Hadoop In Deep
    4篇
  • 有关心境
    6篇
  • 学着写游戏
    1篇
  • 逆向工程和信息安全
    3篇
  • 数据之路-博观
    2篇
  • VM
    2篇
  • storm
    5篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

如何看待科技、数据和业务?

科技、数据和业务的关系,自己的一点理解。
原创
574阅读
1评论
1点赞
发布博客于 5 年前

【.Net实现】TCP级别的反向代理、Socket 连接池和数据包解析器

背景最近特别忙,博客久未更新。 回顾了一下2010-2011年的一些.Net项目代码,觉得对初学者可能有一定参考作用,这里share一下。 主要包括:TCP反向代理Socket连接池数据包解析反向代理一般的Web反向代理大家很熟悉了,主要是通过在客户端和服务端之间架设一层代理服务器,转发客户端的请求至服务端或数据库,并将结果回复给客户端。 其特点主要有:1、缓存一些数据库I/O过重、却
原创
2409阅读
0评论
0点赞
发布博客于 6 年前

【JVM】模板解释器--如何根据字节码生成汇编码?

针对JVM的模板解释器,探讨: 如何根据opcode和寻址模式,将bytecode生成汇编码。
原创
1527阅读
0评论
1点赞
发布博客于 6 年前

【JVM】模板解释器--字节码的resolve过程

针对JVM的模板解释器,研究:字节码的resolve过程。
原创
1611阅读
0评论
1点赞
发布博客于 6 年前

老生常谈,传引用还是传值

按引用传递还是按值传递?你会swap吗?
原创
1543阅读
1评论
2点赞
发布博客于 6 年前

你了解实时计算吗?

实时计算是什么?
原创
2886阅读
4评论
5点赞
发布博客于 6 年前

storm如何分配任务和负载均衡?

如题.
原创
3286阅读
1评论
1点赞
发布博客于 6 年前

storm基础框架分析

背景前期收到的问题: 1、在Topology中我们可以指定spout、bolt的并行度,在提交Topology时Storm如何将spout、bolt自动发布到每个服务器并且控制服务的CPU、磁盘等资源的? 2、Storm处理消息时会根据Topology生成一棵消息树,Storm如何跟踪每个消息、如何保证消息不丢失以及如何实现重发消息机制?上篇:storm是如何保证at least onc
原创
1703阅读
2评论
1点赞
发布博客于 6 年前

storm是如何保证at least once语义的

storm是通过什么机制来保证消息至少处理一次的语义的
原创
4896阅读
3评论
2点赞
发布博客于 6 年前

学习笔记:The Log(我所读过的最好的一篇分布式技术文章)

这是一篇学习笔记。 学习的材料来自于我读过的最好的一篇分布式技术文章,没有之一。
原创
3196阅读
7评论
4点赞
发布博客于 6 年前

学习笔记:Twitter核心数据类库团队的Hadoop优化经验

学习笔记.
原创
2713阅读
2评论
3点赞
发布博客于 6 年前

你真的很熟分布式处理和事务吗?

本文从码农角度出发,聊聊分布式和事务.
原创
1315阅读
2评论
1点赞
发布博客于 6 年前

【hello,world 也打脸】记storm-starter在某知名IDE下的悲催调试经历

hello,world也打脸......
原创
3703阅读
5评论
3点赞
发布博客于 6 年前

【MyEclipse 2015】 逆向破解实录系列【3】(纯研究)

本篇,我们追出My Eclipse 2015的注册码和激活码,并且搞定它的rsa加密,以”优雅“地成为其”合法“授权用户.
原创
1044阅读
0评论
3点赞
发布博客于 6 年前

逆向怎么玩 - 动态调试jetBrains CLion实录

上篇我们通过静态分析,拿到了注册码的算法。本篇,我们更进一步,开启无源动态调试之旅。想了解逆向工程的骚年,come on!
原创
3436阅读
0评论
3点赞
发布博客于 6 年前

CLion注册码算法逆向分析实录(纯研究)

打算学习cocos2dx,奈何vim只会ggvG,被jetBrains惯坏了,找到了CLion,试了下,果然神器,我等菜鸟正好可以拿来愉快地学习书写c++了。
原创
3490阅读
7评论
3点赞
发布博客于 6 年前

新手学cocos2dx,centos7下的安装过程

背景打算学写游戏,新手向,当然从cocos2d-x开始. 看了cocos的文档,安装是针对ubuntu的.这里记录下centos7上安装、编译、运行测试的过程。 如果你已经有ubuntu,不推荐看此文.
原创
1645阅读
1评论
1点赞
发布博客于 6 年前

对程序员说点实在话

对程序员同行,说点实在话.
原创
7420阅读
29评论
21点赞
发布博客于 6 年前

外部排序,杀鸡焉用牛刀?

天下武功,唯快不破,冰冻三尺,一日之寒?
原创
3222阅读
1评论
2点赞
发布博客于 6 年前

大文件,5亿整数,怎么排?

大文件,大小4663M,5亿个数,文件中的数据随机,怎么排?
原创
4676阅读
7评论
11点赞
发布博客于 6 年前

【HBase】how many zookeepers should i run?

How many ZooKeepers should I run?You can run a ZooKeeper ensemble that comprises 1 node only but in production it is recommended that you run a ZooKeeper ensemble of 3, 5 or 7 machines; the more member
原创
741阅读
0评论
1点赞
发布博客于 6 年前

你好,树

嗯,如果你是抱着看生态文章的态度进来,那只能说你被我坑了.
原创
2219阅读
0评论
6点赞
发布博客于 6 年前

老菜鸟致青春,程序员应该选择java 还是 c#-

致青春还记得自己那年考清华失败,被调剂到中科大软院,当初有几个方向可以选,软件设计、嵌入式、信息安全等等,毫不犹豫地选择了信息安全。为什么选信息安全?这四个字听起来多牛多有感觉,我本科是学物理的,记得做一个光学实验的时候,一个老师看我做的结果,说,学物理不是什么人都可以的,这个是需要一点智商的。好吧,当初其实并非对我一个人所说,但我确实感觉到受到了鄙视,同时,我没有任何在物理上的精湛技艺可以反击我的
原创
8972阅读
82评论
63点赞
发布博客于 6 年前

【Hadoop】HDFS - 创建文件流程详解

1.本文目的通过解析客户端创建文件流程,认知hadoop的HDFS系统的一些功能和概念。2.主要概念2.1 NameNode(NN):HDFS系统核心组件,负责分布式文件系统的名字空间管理、INode表的文件映射管理。如果不开启备份/故障恢复/Feneration模式,一般的HDFS系统就只有1个NameNode,当然这样是存在单点故障隐患的。NN管理两个核心的表:文件到块序列的映射、块到机器序列的
原创
2482阅读
0评论
4点赞
发布博客于 6 年前

【Hadoop】RpcServer 线程模型

RpcServer 线程模型NameNode启动过程:线程模型Listener 1个:监听并接受来自客户端的连接.将新建连接放入pendingConnections.清理空闲连接.唤醒Reader.Reader N个 : 从pendingConnections中获取连接,读取数据,从RpcRequest构造Call,并放入callQueue.Handler N 个:从callQueue
原创
935阅读
0评论
1点赞
发布博客于 6 年前

【高级java程序员应该知道的小知识】weak reference

本篇态度: simple & stupidweak reference Weak reference objects, which do not prevent their referents from being made finalizable, finalized, and then reclaimed. Weak references are most often used to imp
原创
988阅读
0评论
1点赞
发布博客于 6 年前

【高级java程序员应该知道的小知识】 WeakHashMap

本篇宗旨:simple & stupidWeakHashMap (弱引用的哈希表) Hash table based implementation of the Map interface, with weak keys. An entry in a WeakHashMap will automatically be removed when its key is no longer in or
原创
928阅读
0评论
1点赞
发布博客于 6 年前

【高级java程序员应该知道的小知识】 volatile

本篇态度:stupid&simplevolatile用法:private volatile Service.STATE state;优点:比其他的锁机制(synchronized、lock)简单;不阻塞;对volatile修饰的变量允许并发读.谨记: Java Memory Model ensures that all threads see a consistent value for
原创
833阅读
0评论
1点赞
发布博客于 6 年前

高性能server分析 - Hadoop的RpcServer

一、ListenerListener线程,当Server处于运行状态时,其负责监听来自客户端的连接,并使用Select模式处理Accept事件。同时,它开启了一个空闲连接(Idle Connection)处理例程,如果有过期的空闲连接,就关闭。这个例程通过一个计时器来实现。当select操作调用时,它可能会阻塞,这给了其它线程执行的机会。当有accept事件发生,它就会被唤醒以处理全部的事件,处理事
原创
1661阅读
0评论
3点赞
发布博客于 6 年前

高性能大并发server的基础

一、背景进入多核时代已经很久了,大数据概念也吵得沸沸扬扬,不管你喜欢不喜欢,不管你遇到没遇到,big-data或bigger-data都必须正视.处理大数据,基本都离不开分布式计算和分布式存储,这其中以hadoop最为使用广泛和经典。分布式系统,就离不开计算系统、网络系统、文件系统和数据库系统。这么多系统,之间又是如何协作的呢? 通讯过程又是如何保障高性能的呢?1.单处理器在以前的单核心cpu下,
原创
1735阅读
2评论
1点赞
发布博客于 6 年前

你的java/c/c++程序崩溃了?揭秘段错误(Segmentation fault)(3)

前言接上两篇:你的C/C++程序为什么无法运行?揭秘Segmentation fault (1) 你的C/C++程序为什么无法运行?揭秘Segmentation fault (2)写到这里,越跟,越发现真的是内核上很白,非一般的白。 但是既然是研究,就定住心,把段错误搞到清楚明白。本篇将作为终篇,来结束这个系列,也算是对段错误和程序调试、寻找崩溃原因(通常不会给你那么完美的stackstrace
原创
2545阅读
0评论
4点赞
发布博客于 6 年前

你的C/C++程序为什么无法运行?揭秘Segmentation fault (1)

什么让你对C/C++如此恐惧?晦涩的语法?还是优秀IDE的欠缺? 我想那都不是问题,最多的可能是一个类似这样的错误: 段错误(Segmentation fault)这是新手无法避免的错误,也是老手极力回避也经常遇到的错误。 本篇,试图简略地剖析一段会引发这个错误的程序,带来一些启发。先看两份代码,一份是错误的.错误代码#include "string.h"#include <stdlib.h
原创
15601阅读
8评论
9点赞
发布博客于 6 年前

你的C/C++程序为什么无法运行?揭秘Segmentation fault (2)

什么让你对C/C++如此恐惧?本篇将继续上一篇来讨论段错误(Segmentation fault)。 上一篇: 你的C/C++程序为什么无法运行?揭秘Segmentation fault (core dumped)(1)追溯段错误如果你觉得你已经理解了段错误的根源,也知道了如何防止段错误,那么可以到此为止。否则,下面的内容或许对你有所启发。malloc我们开始为指针所指向的地址分配内存: 注意
原创
9631阅读
1评论
3点赞
发布博客于 6 年前

亲,这就是遗传算法

本文试图通过几幅简明的图来介绍遗传算法。背景当一些问题不存在确定性的最优解法,或者说最优解法的施展时间长的1-B,那我们就得开始考虑点其他路子了。比如说旅行商问题: 旅行商要去很多城市卖货,为了节省时间,它一个城市只去一次,最后还得返回原城市,因为他老婆不允许他离开太久。 它怎么走比较合算?城市的分布可能会像下面这样: 旅行商会想就是把所有城市路线做个排列(一半),然后看看哪条路线最短
原创
2372阅读
8评论
4点赞
发布博客于 6 年前

我们为什么需要Map-Reduce?

在讨论我们是否真的需要Map-Reduce这一分布式计算技术之前,我们先面对一个问题,这可以为我们讨论这个问题提供一个直观的背景。问题我们先从最直接和直观的方式出发,来尝试解决这个问题: 先伪一下这个问题:SELECT COUNT(DISTINCT surname) FROM big_name_file我们用一个指针来关联这个文件.接着考察每一行的数据,解析出里面的姓氏,这里我们可能需要一个姓氏
原创
2885阅读
0评论
4点赞
发布博客于 6 年前

搜索引擎-架构概述(2)

接上一部分:搜索引擎-架构概述(1)查询处理系统查询处理系统主要包含三个构件:用户交互、排序和评价。 用户交互组件 (User interaction)创建查询、完善查询以及向用户展示结果. 比如,将用户的查询转换为索引项. 并将从搜索引擎得到的有序文档列表组织成搜索结果,展示给用户.1.查询输入 (Query Input)为查询语言(query language)提供接口和解析器。 查询语
原创
1319阅读
0评论
0点赞
发布博客于 6 年前

搜索引擎-架构概述(1)

架构对软件系统来讲,从一个层面对系统的各个组件进行抽象.描述它们各自的功能、提供的接口以及它们之间的关系.需求架构为应付需求而产生,对搜索引擎来讲,它主要的需求来自两个方面: 效果(effectiveness):搜索的结果质量如何. 效率(effeciency):返回结果的相应时间是不是够低,搜索服务的吞吐量是不是够高.索引处理系统(Indexing Process)从这样的需求出发,我
原创
2109阅读
0评论
1点赞
发布博客于 6 年前

单源最短路径-迪杰斯特拉算法(Dijkstra's algorithm)

Dijkstra’s algorithm迪杰斯特拉算法是目前已知的解决单源最短路径问题的最快算法. 单源(single source)最短路径,就是从一个源点出发,考察它到任意顶点所经过的边的权重之和为最小的路径.迪杰斯特拉算法不能处理权值为负数或为零的边,因为本质上它是一种贪心算法,出现了负数意味着它可能会舍弃一条正确的边,而选择一个长边和一个负数边,因为长边和负数边的权值之和可能小于那条正
原创
1316阅读
0评论
0点赞
发布博客于 6 年前

最小生成树-普利姆算法eager实现

在普利姆算法的lazy实现中,参考:普利姆算法的lazy实现 我们现在来考虑这样一个问题: 我们将所有的边都加入了优先队列,但事实上,我们真的需要所有的边吗?我们再回到普利姆算法的lazy实现,看一下这个问题: 当顺着顶点0的邻接表考察顶点7时,边7-2和边7-1被加入了优先队列Q.然而,当我们开始对顶点2进行考察时: 边2-3是最轻边,我们显然不需要对边7-2和边7-1进行再次考
原创
1485阅读
0评论
0点赞
发布博客于 6 年前

最小生成树-普利姆算法lazy实现

lazy普利姆算法的步骤: 1.从源点s出发,遍历它的邻接表s.Adj,将所有邻接的边(crossing edges)加入优先队列Q; 2.从Q出队最轻边,将此边加入MST. 3.考察此边的两个端点,对两个端点重复第1步.例子: 从顶点0开始,遍历它的邻接表:边0-7、0-2、0-4、0-6会被加入优先队列Q. 顶点0的邻接表搜索完毕后,边0-7是最轻边,所以它会出队,并加入M
原创
1763阅读
0评论
0点赞
发布博客于 6 年前

最小生成树-克鲁斯卡尔算法(kruskal's algorithm)实现

克鲁斯卡尔算法是一种贪心算法,因为它每一步都挑选当前最轻的边而并不知道全局路径的情况. 算法最关键的一个步骤是要判断要加入mst的顶点是否会形成回路,我们可以利用并查集的技术来做。并查集的具体实现可参考:快速并查集下面是对算法的一个简单描述: 这是一个非常简单易懂的算法,它面向边而不是顶点,所以在算法开始的时候,它要先找出所有的crossing edges,而为了高效的找到最轻边,用一个优先队列
原创
3175阅读
0评论
1点赞
发布博客于 6 年前

索引式优先队列(indexed priority queue)

为了达到O(ElogV)的效率,需要对普利姆算法进行eager实现。 如果我们用java来做,jdk当中的priorityQueue并不能满足我们的要求。 因为我们需要进行一个对索引元素降key的操作(decrease-key)./** * 将索引所关联的key降到newKey * * @param index 索引 * @param newKey 新的k
原创
2050阅读
0评论
1点赞
发布博客于 6 年前

说说最小生成树(Minimum Spanning Tree)

minimum spanning tree(MST) 最小生成树是连通无向带权图的一个子图,要求 能够连接图中的所有顶点、无环、路径的权重和为所有路径中最小的.graph-cut 对图的一个切割或者叫切断,会使图分离成为两个不相连的顶点集. 它基于树的两个基本属性: 为树的任意两个节点间添加一条边,会在树中形成一个环. 删去树中的一条边,会将原树分离成两棵不相连的树.cros
原创
4247阅读
0评论
0点赞
发布博客于 6 年前

由最小生成树(MST)到并查集(UF)

背景最小生成树(Minimum Spanning Tree)的算法中,克鲁斯卡尔算法(Kruskal‘s algorithm)是一种常用算法.在克鲁斯卡尔算法中的一个关键问题是如何判断图中的两个点是否形成环(cycle),那么一种高效的判断方式就是使用并查集技术(Union-Find).代码package com.beifeng.haoran.util;/** *
原创
1196阅读
1评论
0点赞
发布博客于 6 年前

电离层层析成像技术进展

电离层层析成像技术进展,介绍目前国际国内电离层特征参量反演算法及成像技术。
application/pdf
发布资源于 11 年前