
架构设计
文章平均质量分 63
samlei
干一行爱一行,做一天和尚撞一天钟,你是哪一个?
展开
-
电信行业软件系统优化
最近看了很多关于互联网站优化的方案文章,感觉很有帮助,特地把这几年做电信行业软件的优化经验总结一下。电信行业软件与一般的互联网有很大的不同,虽然现在架构上都采用了B/S结构,从软件界面上看都是WEB界面,但二者有实质上很大的不同。电信行业软件的用户通常是企业内部员工、合作伙伴、业务上的用户等等。访问数总量一般都不大,但读写操作多,属于事务密集型访问。不像一般的网站程序,很多是只读访问。行业软件原创 2008-11-18 15:27:00 · 1293 阅读 · 0 评论 -
虚拟机评估——如何确定一个CPU核上部署的虚拟机数量?
最近研究虚拟化技术,不可避免遇到一个问题:如何评估物理主机上虚拟主机的容量?下面这篇文章的思路有一定的启发性,转发一下。如何确定一个CPU核上部署的虚拟机数量?摘要:本文说明一个CPU核上部署虚拟机的理想数量。 用户经常会问我这样一个问题,“在一个CPU核上部署虚拟机的理想数量是多少?”我试图从下面两个答案中其中一方面回答:要么用户基于业内测试实例做出决定转载 2012-05-05 22:45:47 · 6146 阅读 · 0 评论 -
KVM虚拟机网络设备性能测试
摘要:虚拟机可以生成数种虚拟的网络设备类型,比如常见的e1000,rtl8139,纯粹虚拟化的virtio等。在加载不同的网络设备情况下,虚拟机的通讯效率如何呢?本文就是具体的测试过程和结果的记录。 简介KVM虚拟机可以生成数种虚拟的网络设备类型,比如常见的e1000,rtl8139,纯粹虚拟化的virtio,兼容老式网卡的ne2k_pci,pcnet等。本文测试单台虚拟机在加载不同的原创 2012-05-31 13:59:38 · 15635 阅读 · 1 评论 -
虚拟机迁移:一个基于Linux的系统克隆工具介绍 clonezilla
介绍Clonezilla 是一个很好的系统克隆工具,它可以说是吸取了 Norton Ghost 和 Partition Image 的优点。即不仅支持对整个系统进行克隆,而且也可以克隆单个的分区,这种灵活性可能更能适应备份者的需要。有需求的朋友不妨关注下 Clonezilla 的功能:在 GNU/Linux 端所支持的文件系统包括:ext2、ext3、reiserfs、原创 2012-05-14 14:04:11 · 3765 阅读 · 0 评论 -
Redhat/CentOS6.2 x86系统KVM虚拟机安装过程详解
什么是 KVM ?KVM 是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine)。 2006 年 10 月,由以色列的Qumranet 组织开发的一种新的“虚拟机”实现方案。 2007 年 2 月发布的 Linux 2.6.20 内核第一次包含了 KVM 。增加 KVM 到 Linux 内核是 Linux 发展的一个重要里程碑,这也是第一个整合到 L原创 2012-05-17 15:47:20 · 7617 阅读 · 0 评论 -
【小小说】从Linux系统重启动到养寇自重
摘要:小说形式的维护小故事。管理启示:领导喜欢看起来很忙的员工。管理暗黑心理:养寇自重。周一上班,O组的组长找C组组长借Linux启动光盘,随口问了一句,原来是系统无法启动了。好好的,怎么会突然无法启动?再多问两句,原来是周五大楼要进行电接通施工,停电(大家由此还在家办公一天),事先提前通知了所有人。但是O组的人忘了。C组也有很多的服务器,自己开发用的就两台,测试组测试用的原创 2012-05-22 11:17:03 · 3007 阅读 · 2 评论 -
squid(正向代理,共享上网)安装维护简单过程
Linux代理软件squid可以实现正向、反向代理,我们用正向代理的功能来实现多人上网,用反向代理来提高WEB的响应能力。反向代理的维护复杂得多,这篇小文只介绍正向代理部分,起因也是多人通过Linux主机共享上网。安装维护的简单过程: 1、安装squid#yum install squid 2、开启内核路由功能# echo "1" >/proc/sys/net/原创 2012-11-30 10:20:58 · 3765 阅读 · 0 评论 -
KVM存储方案选择——iSCSI 多路径实现 KVM 高可用
KVM虚拟机环境下,存储是一个重大问题。三种大的分类模式请参见文章《KVM虚拟机三大存储模式》。基于设备的KVM存储,IBM有一篇技术文章具体的介绍了作为传统中小企业网络存储 iSCSI 如何使用其多路径,来实现提高 KVM 虚拟机的可用性。iSCSI 多路径实现 KVM 高可用原创 2013-04-08 16:02:59 · 3700 阅读 · 0 评论 -
究竟要不要ESB?
最近遇到一个IT项目,由于项目前期已经做了一些工作,系统功能被分散到了各个预先定义好的子系统中,后面接手的设计师根据这一现实,以及项目中需要用到一些业务流程,坚持要用ESB来集成这些子系统。一定要用ESB吗?究竟ESB是什么,适用于什么开发场景?我们不得不回到最初的问题。ESB是什么?ESB 是一种体系结构模式,而不是软件产品。不同的软件产品可以构成 ESB。在某些情况原创 2013-05-22 10:55:01 · 6990 阅读 · 0 评论 -
面向对象方法中的数据库设计
(看到一篇文章讲述面向对象设计和数据库设计的关系,觉得很好,转贴出来。)在面向对象中,是没有数据流这一说法的。业务的完成是由对象及消息来完成的,只有“对象流”,没有数据流。只是在现实中,绝大部分的对象持久化是用关系数据库实现的,我们还没有在性能上和查询上可以顶替关系数据库的对象数据库。设计数据库表的目的是不考虑所谓“流”的,考虑的是如何把对象高效的持久化。可以说,数据库设计转载 2013-06-06 13:36:18 · 3737 阅读 · 1 评论 -
memcache适用和不适用场景总结
适用memcached的业务场景: 1)如果网站包含了访问量很大的动态网页,因而数据库的负载将会很高。由于大部分数据库请求都是读操作,那么memcached可以显著地减小数据库负载。2)如果数据库服务器的负载比较低但CPU使用率很高,这时可以缓存计算好的结果( computed objects )和渲染后的网页模板(enderred templates)。3)利用memca转载 2016-04-13 11:08:18 · 1694 阅读 · 0 评论 -
MongoDB适用和不适用场景总结
MongoDB 的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS 系统(具有丰富的功能)之间架起一座桥梁,它集两者的优势于一身。根据官方网站的描述,Mongo 适用于以下场景。● 网站数据:Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。● 缓存:由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后原创 2016-04-13 15:30:57 · 8125 阅读 · 0 评论 -
Redhat/CentOS6.2 x86系统KVM虚拟机网络配置(一)—NAT方式
摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式。NAT方式的配置原理和步骤。NAT方式适用于桌面主机的虚拟化。问题客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。KVM 客户机网络连接有两种方式:用户网络(User Networking):让虚拟机访问主机、互原创 2012-05-29 09:23:14 · 13342 阅读 · 0 评论 -
Redhat/CentOS6.2 x86系统KVM虚拟机网络配置(二)—Bridge方式
摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。问题客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。KVM 客户机网络连接有两种方式:用户网络(User Networking):让虚拟原创 2012-05-29 09:23:24 · 19369 阅读 · 2 评论 -
可伸缩性最佳实践:来自eBay的经验
在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的转载 2009-03-06 16:06:00 · 963 阅读 · 0 评论 -
UML对象和类之间的相互关系总结
UML中描述对象和类之间相互关系的方式包括:依赖(Dependency)关联(Association)聚合(Aggregation)组合(Composition)泛化(Generalization)实现(Realization)等。 依赖 (Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在转载 2009-03-16 11:35:00 · 4182 阅读 · 2 评论 -
谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:问题一: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?我很早前就发现U转载 2009-03-27 16:35:00 · 1019 阅读 · 0 评论 -
用满足S@T协议的手机应用给“快乐女声”投票
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 7月17日热播的2009湖南卫原创 2009-07-23 16:53:00 · 1560 阅读 · 1 评论 -
ant中调用外部ant任务的两种方法
在ant脚本中对外部ant任务的调用,在多项目管理中特别有用。两种方法总结一下:使用antfile、使用exec 一:使用antfile dir="${project1dir}" inheritall="false" inheritrefs="false"原创 2009-06-01 11:30:00 · 9498 阅读 · 0 评论 -
log4j配置详解
log4j详解 根据网络资料整理 1. 概述 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。 最普通的做法就是在代码原创 2009-06-25 11:27:00 · 4176 阅读 · 0 评论 -
机会!医院急需预约系统(呼叫中心)
昨天看中央二台的经济新闻,其中谈到北京医院为了分流挂号排队人员,实行电话、网上预约挂号的事情。 从被采访的人员来看,采用预约制以后,一定程度上减少了医院门口的排队情况,但无疑的,这种排队只是转移到了电话系统中和电子系统中,比如有人生成连续40分钟不停拨打电话等。总结被采访人的情况,基本是这几种情况:电话总占线;下班后电话无人接听;网上使用不便,很多医院没有提供网上预约系统;原创 2009-10-15 14:51:00 · 1548 阅读 · 0 评论 -
SNA -- Shared Nothing Architecture 无分享架构 简汇
简介:Shared Nothing Architecture(无分享架构)是一个分布式的架构,每个节点都是独立的。典型的SNA系统会集中存储状态的信息,如:数据库中,内存cache中;不在节点上保存状态的信息。 对于server集群,若将session等状态保存在各个节点上,那么各个节点的session复制会极大的影响性能;若采用原创 2010-03-05 14:59:00 · 2346 阅读 · 0 评论 -
Play 框架简介
Play Framework是一个功能完整的Java Web开发框架。采用RESTful架构设计,简便灵活。PlayFramework使用MVC模式作为Web层,集成Hibernate管理持久层,PlayFramework还使用一个基于Groovy的模板引擎。 Play Framework让开发者无须重新编译打包发布应用,即可看到修改后的效果,方便开发人员调试应用。 Pla原创 2010-03-05 15:54:00 · 1440 阅读 · 0 评论 -
利用Spring测试框架进行集成测试
一、使用Spring2.5 TestContext框架参阅:http://www.ibm.com/developerworks/cn/java/j-lo-spring25-test/ Spring 2.5 TestContext 测试框架,是一个全新的基于注解的测试框架,为 Spring 推荐使用该测试框架。 Spring 2.5 相比于 Sprin转载 2010-04-23 11:38:00 · 2222 阅读 · 0 评论 -
虚拟机硬件——英特尔的VT-x、VT-d、VT-c技术概述
“为服务器虚拟化选择适当的硬件平台,与选择适当的虚拟化软件一样重要。”— IDC英特尔VT具体包括分别针对处理器、芯片组、网络的VT-X、VT-D和VT-C技术。处理器:英特尔虚拟化技术(英特尔VT-x),包括英特尔虚拟化灵活迁移技术(Intel VT FlexMigration)、英特尔VT FlexPriority、英特尔VT 扩展页表(Extended Page Tables)芯转载 2012-05-10 01:53:36 · 4406 阅读 · 0 评论 -
Memcache的最佳实践方案
基本问题1、memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid-d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,转载 2016-04-13 13:09:17 · 497 阅读 · 0 评论