大型信息系统架构
李纲明
热忠于互联网、移动互联网技术交流和分享
展开
-
漫画b+树图文详解
B+ 树详细说明一个m阶的B树具有如下几个特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m4.所有的叶子结点都位于同一层。5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。一个m阶的B+树具有如下几个特征:1.有k个子树的中间节点包含有k个元素(B树中是k-1个元转载 2020-10-16 09:44:03 · 654 阅读 · 0 评论 -
结合企业实例谈IT规划过程
信息化规划过程模型信息化规划架构模型信息化架构示例转载 2011-12-11 10:07:26 · 819 阅读 · 0 评论 -
sphinx搜索集群搭建示例(多产品)
每个产品项目分配一个搜索配置,每个配置分不同的数据库或端口区分不同的产品,每个配置启动一个守户进程配置文件project1_csft.conf示例:#Test sourcesource test_main{ type = mysql sql_host = 192.168.1.100 sql_user原创 2011-12-16 15:35:46 · 2976 阅读 · 0 评论 -
编程技术面试的五大要点
扎实的基础知识、高质量的代码、清晰的思路、优化代码的能力、优秀的综合能力是编程技术面试的五大要点。找工作一直是一个热门话题。要想找到心仪的工作,难免需要经过多轮面试。编程面试是程序员面试过程中最为重要的一个环节。如果能在编程面试的环节充分展示自己的能力,那么拿到中意的Offer就是水到渠成的事情。我先后在欧特克、微软和思科等公司任软件工程师,多次接受他人的面试,同时也面试过很多人。总结面试转载 2011-11-05 17:37:33 · 783 阅读 · 0 评论 -
PHP程序来操作MongoDB【NoSQL】的一些方法及MongoDB安装
一、MongoDB简介MongoDB (名称来自"humongous") 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点:http://www.mongodb.org/,MongoDB特点:•面向文档原创 2011-09-20 10:56:26 · 1177 阅读 · 0 评论 -
启动MongoDB时,提示dbexit: really exiting now
删除mongod 启动时 -dbpath /data/db 集合 同一目录下产生的:_tmp和mongod.lock,重启mongodb即可解决问题原创 2011-08-25 12:37:27 · 5320 阅读 · 0 评论 -
mongodb 用户认证
添加用户认证,必须在启动mongod的时候使用参数--auth用户的认证信息是保存在每个数据库的system.users中的1.在admin中创建用户admin,密码adminpasswd> use adminswitched to db admin> d原创 2011-09-20 09:24:01 · 2918 阅读 · 0 评论 -
PHP-redis中文说明
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:下载地址如下:https://github.com/owlient/phpredis(支持redis 2.0.4)原创 2011-09-05 10:40:29 · 4134 阅读 · 0 评论 -
基于MongoDB的php应用开发
一、连接数据库主机连接本地主机,端口为27017:$connection = new Mongo();连接远程主机,端口为默认端口:$connection= new Mongo( "192.168.2.1" );连接远程主机,端口为指定端口:原创 2011-08-02 15:16:49 · 1467 阅读 · 0 评论 -
提高PHP编码能力的10个细节
从某种程度上看,编程语言要实现的最终目的是一样的,用汇编的思想来考虑编程是个不错的选择。尽管用汇编、链接、加载的思维在编程中作用显著,但若是用高级程序语言编写的程序,用这样的思维理解起来比较有困难。事实上,提高最基础的编程能力是有助于提高对特殊语言的灵活运用的;同样的,学习编程语言的细微差别和关注该语言所开发的应用软件同样重要。就好像一个木匠,他需要提高基本的测量能力,或者学习一些特定车床的使转载 2011-12-16 13:14:53 · 1310 阅读 · 0 评论 -
云计算与数据中心计算
云计算概念发端于Google和Amazon等超大规模的互联网公司,随着这些公司业务的成功,作为其支撑技术的云计算也得到了业界的高度认可和广泛传播。时至今日,云计算已被普遍认为是IT产业发展的新阶段,从而被赋予了很多产业和产品层面的意义。由于意义多重,各种概念纷繁复杂,众多公司和从业人员的眼中都有自己的一朵云,正如徐志摩在《偶然》一诗中所说:“我是天空里的一片云,偶尔投影在你的波心”。传统的系统转载 2012-02-02 16:32:43 · 716 阅读 · 0 评论 -
公司首席设计师推荐的视觉体验设计站点很不错
http://mxd.tencent.comhttp://isux.tencent.comhttp://mux.baidu.comhttp://ued.taobao.org/blog/原创 2014-06-04 17:47:04 · 919 阅读 · 0 评论 -
MAC OS 搭建PHP开发环境
启动Apache运行PHP安装MySQL使用phpMyAdmin配置PHP的MCrypt扩展库设置虚拟主机启动Apache 有两种方法:打开“系统设置偏好(System Preferences)” -> “共享(Sharing)” -> “Web共享(Web Sharing)”打开“终端(terminal)”,然后(注意:sudo需要的密码就是系统的root转载 2012-11-16 13:34:20 · 4755 阅读 · 0 评论 -
Mongodb的带用户验证replica set配置
mkdir -p /data/data/dbmaster /data/data/dbslave1 /data/data/dbslave2 /data/data/dbslave3mongod --fork --auth --master --port 27017 --dbpath /data/data/dbmaster --logpath /data/data/dbmaster原创 2012-04-18 18:12:39 · 3959 阅读 · 0 评论 -
mongodb分片部署
1、mongodb分片科普 (各种罗嗦) Replica Set(副本集):副本集使其组内的每个成员(member)在不同的mongod实例中具有相同的数据备份,这样可以将来自应用服务器的请求访问(request visit)得以均匀的分布在Replica Set的每一个成员所在的mongod实例上,用以减缓单台mongod服务器在请求负载上的压力。在一定时限内Replica Set能完成转载 2012-04-28 11:22:27 · 4222 阅读 · 0 评论 -
10亿量级LAMP架构分享
贴吧是功能性产品,唯快不破是永恒的准则,这一特点决定了快速迭代是需要解决的关键性问题。快速迭代,分解开来有如下部分:开发阶段,快速开发;测试阶段,包含了环境快速搭建、自动化测试工具;运维阶段,包含了集群管理技术、自动化运维工具;同时,这三方面的工作需要一个整体性的解决方案衔接起来。早期的贴吧,作为一个高性能社区,功能相对单一,全部采用C语言开发,系统可重用程度低,开发、测试效率低,运维方面的积转载 2012-04-14 15:20:54 · 917 阅读 · 0 评论 -
Mongodb Mapreduce 初窥
在单台机器上做这种模型测试就效率上是得不尝失的(执行周期太长),特别是数据量特别大(比如3000w以上),所以应用(或运行)场景的选择很重要。 上面所说的示例比较简单,都是在单一reduce任务中的执行场景,如下图: 实际的生产环境要比上图复杂许多,比如多reduce任务情况,在Hadoop中,如果运行多个reduce任务,map任务会对其输出进行分区,为原创 2012-03-22 10:44:20 · 873 阅读 · 0 评论 -
用PHP开发基于MongoDB的php应用
一、连接数据库主机连接本地主机,端口为27017:$connection = new Mongo(); 连接远程主机,端口为默认端口:$connection= new Mongo( "192.168.2.1" ); 连接远程主机,端口为指定端口:$connection = new Mongo( "192.168.2.1:65432" ); 选择数转载 2012-03-16 13:59:28 · 2472 阅读 · 0 评论 -
mongodb 常用方法
每个集合(文档、数据表)都会有一个key, "_id"对应;system.indexes集合是系统表索引system.user集合是系统用户最常用原子操作$set:array( $set => array( field => value))$unset:array($unset => (field => 1))$inc :array($inc => (field=> val原创 2012-03-29 14:10:20 · 624 阅读 · 0 评论 -
memcached、redis、mysql、mongodb结合架构数据库系统
1.业务系统的关联关系用mysql组织2.缓存数据用memcached、redis存取3.大文本数据放进mongodb存取中4.数据统计计数增加阀值功能用mysql将memcached、redis、mongodb三者结合起来,根据实际业务需要看一下哪些适合memcached、re原创 2011-07-24 10:22:51 · 5122 阅读 · 2 评论 -
分布式中型文档存储系统MongoDB基础概念
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言原创 2011-07-24 10:42:49 · 1327 阅读 · 0 评论 -
MySQL NDB 6.3.20集群安装
MySQL集群是一种在无共享架构系统里应用内存数据库集群的技术。这种无共享的架构可以使得系统使用非常便宜的并且是最小配置的硬件。MySQL集群是一种分布式设计,目标是要达到没有任何单点故障点。因此,任何组成部分都应该拥有自己的内存和磁盘。任何共享存储方案如网络共享,网络文件系统和SAN设备是不推荐或不支持的。通过这种冗余设计,MySQL声称数据的可用度可以达到99。999%。原创 2010-04-11 15:51:00 · 765 阅读 · 0 评论 -
nginx学习之一Location,rewrite,防盗链,禁止访问
一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.二、Location语法语法:location [=|~|~*|^~] /uri/ { … }注:1、~ 为区分大小写匹配2、~* 为不区分大小写匹配3、!~和!~*分别为区分大小写不匹配及不区分大转载 2010-03-21 20:31:00 · 853 阅读 · 0 评论 -
用Nginx配置https加密站点
一、Nginx安装安装的时候需要注意加上 –with-http_ssl_module,因为http_ssl_module不属于Nginx的基本模块。Nginx安装方法:./configure –user=username –group=groupname –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_mo原创 2010-03-21 20:19:00 · 6590 阅读 · 1 评论 -
Linux 下Nginx SSL/HTTPS 配置
使用OpenSSL生成证书1、生成RSA密钥的方法openssl genrsa -des3 -out privkey.pem 2048 这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:openssl genrsa -out privkey.pem 2048 建2、生成一个证书请求建议用2048位密钥,少于此可原创 2010-03-21 20:05:00 · 3807 阅读 · 0 评论 -
什么是CDN?CDN的特点是什么?
CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。 实际上,内原创 2010-03-20 07:39:00 · 836 阅读 · 0 评论 -
流媒体CDN解决方案
创智数码科技股份有限公司一直专注于流媒体领域的增值业务应用软件开发,致力于为流媒体服务运营商提供一流的、专业的视频应用软件和流媒体整体解决方案。 以多年的流媒体服务软件开发经验为背景,总结了多次省级电信运营级流媒体项目的建设经验,深入、前瞻性的分析了流媒体业务当前和未来的业务需求。创智数码科技股份有限公司推出了以高性能银鲨流媒体服务器为核心,面向电信运营商的PowerSSP转载 2010-03-20 18:46:00 · 2918 阅读 · 0 评论 -
CDN Linux下架设squid代理服务器的安装及配置说明
一、代理服务器概述1.1什么是代理服务器 在TCP/IP网络中,传统的通信过程是这样的:客户端向服务器请求数据,服务器响应该请求,将数据传送给客户端。在引入了代理服务器以后,这一过程变成了这样:客户端向服务器发起请求,该请求被送到代理服务器;代理服务器分析该请求,先查看自己缓存中是否有请求数据,如果有就直接传送给客户端,如果没有就代替客户端向该服务器发出请求。服务器响应以后,代理服务器将响应转载 2010-03-20 08:13:00 · 11347 阅读 · 0 评论 -
关于大型信息系统架构中js、css、images及用户上传图片、流媒体等等资源部署规则
在大型系统中研发和制作及设计人员在代码部署上在多个项目上通常是通过svn进行版本控制结合FTP进行分离实现的 以下是我在实现项目中通常的部署方法: 1。js、css、images等单独部署在静态资源服务器上实际样例类似以 img(x).c(x).域名.com/项目/静态资源文件类似这样的形式,通过squid实现CDN的部署 2。Web应用服务器原创 2010-04-04 06:54:00 · 1945 阅读 · 1 评论 -
Linux下MySQL双向同步复制配置方法
设置MySQL数据双向同步一、准备服务器由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。more.. | less.. | 本文中,我们假设主服务器(以下简称Master)和从服务器(以下简称Slave)的版本都是5.0.27,操作系统是RedHat原创 2010-04-05 07:05:00 · 4186 阅读 · 0 评论 -
大批量sql数据快速导入技巧
1.将批量执行的大数据先存为*.sql文件; 2.每个表在导出数据时都要先锁表并将索引关闭(索引关闭是不关闭的导入时减少2/3左右的时间对大数据迁移来说该方法很关键); 3.直接进行mysql后执行source *.sql文件即可; 注:1。phpselect 文件时间注意相关参数的设置 set_time_limit(0); ini_set(memor原创 2011-06-19 20:14:00 · 2938 阅读 · 0 评论 -
世界顶尖PHP站Facebook后台技术探秘
Hadoop and HiveHadoop的是一个开源的map-reduce实现,使得它可以在进行大数据上进行运算。 Facebook的使用这个进行数据分析(而我们都知道,Facebook已经大量的数据)。 Hive就是发源于Facebook,使得对于Hadoop使用的SQL查询成为可能,从而是其更容易对非程序员使用。Hadoop和Hive是开源的(Apache项目),有为数众多的追随者,例如雅虎和Twitter。ThriftFacebook使用的几种不同的语言和不同的services。 PHP是最终用于前转载 2011-05-31 09:05:00 · 1051 阅读 · 0 评论 -
win本机测试环境MangoDB安装笔记
<br />1.下载mongodb的windows版本,有32位和64位版本,根据系统情况下载,<br />下载地址:http://www.mongodb.org/downloads<br /> <br />2.解压缩至D:/mongodb即可<br /><br />3.创建数据库文件的存放位置,比如D:/mongodb/data。启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。默认文件夹路径为c:/data/db.使用系统默认文件夹路径时,启动服务无需原创 2011-05-28 19:17:00 · 2792 阅读 · 0 评论 -
如何进行类设计
<br />一、面向对象的设计原则-类设计原则<br /> <br /> 在面向对象设计中,如何通过很小的设计改变就可以应对设计需求的变化,这是令设计者极为关注的问题。为此不少OO先驱提出了很多有关面向对象的设计原则用于指导OO的设计和开发。下面是几条与类设计相关的设计原则。<br />1. 开闭原则(the Open Closed Principle OCP)<br /> 一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。因此在进行面向对象设计时要尽量考虑接口封装机制、抽象机制和多态技术。该原创 2011-01-25 15:24:00 · 1151 阅读 · 0 评论 -
LVS & MySQL NDB Cluster
组成LVS最重要的部分有三个:请求分发服务器、处理服务器、共享存储。典型的Web集群并不需要共享存储,只有请求分发服务器和处理服务器,如下图所示: 如果完成请求需要基于数据,那么共享存储就是LVS必须的组件了。LVS邮件服务器集群如下所示:目前能应用于LVS的MySQL集群只能是NDB Cluster,因为MySQL众多的存储引擎中,只有NDB Cluster实现了共享存储的转载 2010-04-10 18:48:00 · 1369 阅读 · 0 评论 -
亿级数据的高并发通用搜索引擎架构设计
最新的搜索引擎架构,目前已经写出“搜索查询接口”和“索引更新接口”的beta版。经测试,在一台“奔腾四 3.6GHz 双核CPU、2GB内存”的普通PC机,7000万条索引记录的条件下,“搜索查询接口”平均查询速度为0.0XX秒(查询速度已经达到百度、谷歌、搜狗、中国雅虎等搜索引擎的水平,详见文章末尾的“附2”),并且能够支撑高达5000的并发连接;而“索引更新接口”进行数据分析、入队列、返回信息转载 2010-04-05 11:11:00 · 1671 阅读 · 0 评论 -
MySQL Proxy─官方MySQL连接池和代理工具
MySQL Proxy,我们可以将它理解为类似SQL Relay的连接池工具,不过MySQL Proxy要更强大一些。 下面,让我们来一起看一下官方描述的特性: * load balancing * failover * query analysis * query filtering and modification * ... and many more原创 2010-04-03 21:35:00 · 2980 阅读 · 1 评论 -
linux 下 MySQL-Proxy 实现 MySQL 的负载均衡和读写分离实现
Mysql proxy是MySQL官方开发一个mysql数据库前端代理,使用C语言编写,并且支持lua来编写proxy规则,可以用来实现mysql的读写分 离,负载均衡等等功能. 一:安装Mysql-Proxy1)系统环境的设置(系统为CentOs 5.2):确定这些包已经安装:GNU Autotools, flex, pkg-config, bazaar, MySQL client原创 2010-04-05 20:33:00 · 2557 阅读 · 0 评论 -
Sphinx全文检索服务器配置
Sphinx全文检索服务器配置原创 2010-03-12 09:09:00 · 776 阅读 · 0 评论