自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

后台知识

写给自己的后台知识索引结构,方便查询

  • 博客(23)
  • 收藏
  • 关注

原创 IM同步服务

后台同步方案的设计就是数据存储结构的设计,如何快速体现“信息变化”,如何快速计算出“变化信息”。后台数据存储结构是由同步协议中同步契约决定的。

2023-09-28 09:43:46 410

原创 centos6.5安装bitcoin

参考博文下载源码git clone https://github.com/bitcoin/bitcoin 个人是把0.10,0.14,0.15,0.16版本都弄了一下,编译都没有问题,就是最终运行bitcoind时发现0.10能够运行,其他版本全都coredump。也没管了,反正是阅读源码为主,问题暂时放下。这个问题后面解决了,具体原因暂时还不清楚,有可能是内存不足。我的内存只有1G...

2018-02-27 20:34:20 676

原创 vim最简约配置

提供一个可以方便的在linux下查看源码,并且学习成本低,使用复杂度低的vim配置。不用插件的配置如果你不想使用任何插件,那么下面的配置基本上够用。” 环境set nocompatible” 通用set background=darksyntax onfiletype offset autochdir” UI set cursorlineset li...

2017-11-19 15:43:19 498

原创 简单业务推荐排序算法

业务推荐排序算法场景用户在进行搜索时,假设搜索出来的结果有B1,B2,B3…Bn类业务,每类业务分别有S1,S2,S3…Sn条推荐内容。在把各个业务展示给用户时,需要把和用户搜索关键词“相关性”最高的业务放在前面。原理词频因子(Tf)Tf计算因子代表了词频,即一个单词在文档中出现的次数。一般来说在某个文档中反复出现的单词,往往能够表征文档的主题信息。即Tf值越大,越能代表文档所

2017-09-11 04:25:37 1327

原创 自定义协议设计

ID是用来进行身份标识的,这个ID值唯一确定了某类业务领域对象中的某个对象,对于sdk和server进行业务描述和沟通来说,这个东西是所有信息里面最核心的,因为其描述了业务的对象。所谓业务就是对象加上规则,规则往往就是通过命令id来标记,表示进行的是什么类型的业务。用ID来进行沟通很大的好处就是对信息接收方完全透明,也就是说对sdk完全是透明的,sdk根本就不需要知道这个ID的意义,只需要在信息传输

2016-07-08 09:39:56 538

原创 分布式系统节点设计

学习分布式系统设计最好的例子就是TCP/IP协议,特别是其关于流量和拥塞控制的那部分简直就是经典。这部分内容实现了在系统中的单个节点无法预知系统全局状态的情况下,让节点自适应系统整体状态的方法。主要思想就是反馈。因为节点加入系统后就不再是独立的自己,而是系统中的节点,与其他节点发生关系,所以节点和节点之间的通信是必不可少的。既然存在信息的交流,那就要充分利用这些信息进行节点的自我调整,处在动态的变化

2016-07-08 09:39:26 1363

原创 数据传输加密设计

HTTP协议上加的SSL协议过程(简化版) 服务端生成公钥和私钥 客户端获得服务端的公钥,客户端本地生成一段随机序列(以后用来进行对称性加密和解密的密钥),用公钥进行加密后传给服务端 服务端用私钥把客户端传过来的数据进行解密,获取客户端本地生成的随机序列(以后用来进行对称性加密和解密的密钥) 业务加密需求不同点 使用http的业务,业务信息构成协议是http,是公开的。使用极光sdk的业务

2016-07-08 09:38:55 596

原创 查询方式设计

语言查询提供的查询接口比较灵活,但同时也带来一些问题1-使得后台解析数据的复杂度变大,而且要完全描述出什么是合法的查询语句是非常困难的。2-灵活带来的缺点是不确定性增大,一般内部模块在查询时最好是不要用这样的方式。因为内部模块之间的查询方式一般都相对比较固定,变化的概率不大。除非业务发生剧烈变化,否则可以通过扩容查询接口的方式来解决业务发展带来的问题。3-灵活带来的另一个缺点是速度下降,越是灵活的查

2016-07-08 09:37:21 433

原创 同步异步和阻塞非阻塞

要真正弄明白一个概念的语义,到最后站在设计者的角度去改善这个语义的实现方式。甚至如果你站的层次更高,于是跳出用这个概念来描述事物的条条框框。自己创造一套概念系统,用来描述这个领域的事物,解决这个领域的问题。按照分解法的认知,世界上的万物关系都可以最终划分为两元关系。一下所描述的异步针对的是最简单的场景(二元场景),假如有个契约的双方,称之为使用方和被使用方。使用方在利用被使用方的服务,使用方在使用服

2016-07-08 09:33:49 308

原创 分布式事务

业务的本质是数据。事务是业务的一种性质。事务的本质是业务获取数据状态到改变数据状态处在同一个上下文里面。本质就相当于intel的xchg指令

2016-07-08 09:33:19 287

原创 (9)ICE服务之发布订阅模型

概述发布订阅模型在通信模型里面也算是一个非常经典的模型了,它能够将信息发送方和信息接收方的关系进行解耦,实现信息发送方和接收方的异步通信。

2016-06-19 16:40:30 1069

原创 (8)ICE服务之网格计算模型

概述ICE网格计算服务是一个相当复杂的服务,我只能说ICE这一套东西本身就非常的复杂,因为它太想提供一套通用的分布式框架了。在软件设计领域里,我觉凡是有这种提供“银弹”想法的设计都是要出问题的。换做是我,真的不会去在生产上用这ICE框架,非常的操蛋。回归正题,ICE网格计算服务对某一类特定网络拓扑结构提供的通信服务模型。参考更多的demo地址参考ICE在github上的主页

2016-03-19 21:42:30 622

原创 (7)通过ICE平面扩展类型系统

诞生的意义ice是通过对象来进行通信的,对象提供的操作一旦多起来,就变得复杂起来,不便于管理。人类为了管理复杂的事物,唯一手段就是抽象,实现抽象的办法就是分层。面向对象本来就是人类在面对复杂的现实世界时用来对世界的各种信息进行分类用的,这样可以让人类更好的契合自己的脑袋,来认识世界。ice facets本质还是对信息进行分类,只不过是针对对象的信息进行分类。 facets在通信协议领域里面是很常见

2016-03-19 21:29:51 320

原创 (5)ICE通信器是干嘛的

作用在运行期间,ice框架为了完全隔绝通信层对于客户业务服务的影响,将通信层用到的所有资源都与客户业务服务用到的资源完全隔离开来了。为了完成这个目标,写代码进行封装的时候,我们一般封装一个资源管理类来对通信层所用的资源进行管理,ice则用communicator来实现这个功能。 另一方面,框架为了完全独立,一般都有个全局的入口点,类似于程序的入口main函数。ice框架则用Ice::Communi

2016-03-19 21:24:06 2215

原创 (6)最简单的ICE例子

简述例子虽然短小,但是基本上反映了ICE对分布式系统建模的思想和方法。结合以上6篇文章,应该就能够轻松迈入ICE框架学习的大门,比起买《zero ice权威指南》那本坑人的书要好的多。协议#pragma oncemodule Demo{ interface Printer { void printString(string s); };};客户端#inc

2016-03-19 20:46:57 1512 1

原创 (4)ICE适配器带来的好处

为什么需要适配器在讲解ice servant的章节中说到,服务端要想真正把服务提供给客户,就要把ice servant和ice object联系起来,负责建立这种联系的东西就叫做ice适配器(adapter)。ice adapter和ice proxy从本质上讲是一样的,都是建立一个中间层,把客户和最终需求之间进行解耦,只不过称呼不一样。作用每个对象适配器都有一个或更多Ice服务员,负责服务Ice

2016-03-19 20:06:46 1389 1

原创 (3)ICE服务员起到的作用

为什么叫服务员Ice 对象是一种具有类型、标识、寻址信息的概念性实体。由此话可以得出的结论是Ice对象相当于通信协议,只是定义了一个通信的规范。也就是规定好了客户想要的服务(函数调用),享受服务时需要提供的资料信息(函数参数),以及最终的服务结果(函数参数和返回值)。但是至于服务具体是怎么完成的,Ice对象是不负责的。为了完成客户服务,服务端必须要对请求进行处理。换句话说,就是每个Ice对象都要有相

2016-03-19 19:19:43 1124

原创 (2)ICE代理扮演的角色

为什么叫代理代理这个术语在现实世界里,又被称作中间人。由于现实中的人(通信的实体)与人之间可能存在信息不对等的情况,人与人没法直接进行沟通,这个时候就需要有个中间人来解决这样的困局,这个人可以把两人给沟通上。 由于分布式领域中的通信实体和现实社会中的人其实有时候具有的困局是一样的,因为人类社会本质就是个分布式系统。所以分布式领域里为了解决通信实体遇到的无法沟通的问题,产生了代理这样的概念。通信框架

2016-03-19 18:23:44 1608

原创 (1)从ICE的对象讲起

通信实体、通信信息、链路传输从网络节点层面看,网络中的通信实体是以计算机为单位。从tcp编程的角度看,通信实体是以socket为单位。从ice的角度看,通信实体以对象为单位。ice认为分布式系统是由对象构成的,所以对分布式系统建模的时候采用的是面向对象设计方法。ice中的对象和面向对象领域里的对象概念上没有什么本质区别,只是ice中的对象只包含操作,所以ice中的对象又叫做接口类型的对象。 定义

2016-03-19 15:42:27 898

原创 consul

简介功能简介consul组件很多很杂,反正就是一个很复杂的东西,唯一知道就是它能够提供下面几项服务。服务发现服务发现本质就是个名字服务。就像共享内存,只要shmkey知道了,所有的进程都能够访问这块内存的值。访问consul服务的方式主要有两种:DNS和HTTP。健康检查健康检查,故名思议就是定期的去检查机器或者服务的当前状态。consul提供了一条简约而不简单的路子,那就是通过定期运行脚本去检查。

2016-03-17 11:54:15 852

原创 centos7 web开发常用环境配置

注:centos默认安装的是python2.7gcc yum install gccg++ yum install gcc-c++mysql wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm rpm -ivh mysql57-community-release-el7-7.noarc

2016-03-16 00:20:50 2315

原创 IM同步协议

设计概述同步协议的设计就是业务契约的设计,本质就是client和server双方就同步的信息范围达成一致。同步同一个事物,存在不同的演化路线。从事物最初状态开始,不同的演化路线导致同一时间点事物状态不一样。给所有不同演化路线上的事物状态同一时间点确定一个共同状态的过程,就叫同步。IM同步IM同步是给IM用户进行的信息同步,同步的事物就是“该IM用户需要知道的

2016-02-28 21:41:06 1949 1

原创 Windows下hadoop环境的搭建

环境搭建强烈建议用hadoop1.0.0版本,该版本在windows下出现的各种问题,基本上都已经被解决了,至少能够比较好的支撑hadoop的入门学习。参考资料一hadoop各个版本下载地址hadoop版本演进说明

2013-11-09 14:19:45 1044

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除