架构设计
JackxinXu2100
专注于传统企业互联网化的信息技术提升赋能研究,帮助企业实现信息能力快速提升。
展开
-
UML研发--- Use case, Activity, Class Diagram 的协同使用
大家都使用UML来指导项目的研发,项目一开始都信心十足地画UML图,但是当项目进行一定时间后,随着各种各样的UML图越来越多的时候,随之而来的维护问题越来越严重,特别是现代的项目采用Agile, XP等开发模式,需求的迭代在逐步推进,这种模式下项目文档的维护也显得越来越不堪重负,最后导致代码,文档之间不匹配越来越多,也使得UML文档渐渐地丧失了其开发的指导性地位,大家都知道UML的九种基本图形:原创 2009-09-02 12:54:00 · 1669 阅读 · 0 评论 -
实现架构5视图法
实现逻辑架构的5种不同的视图方法:o 逻辑架构关注功能,不仅包括用户可见的功能,还包括为实现用户功能而提供的辅助功能模块o 物理架构关注应用的安装和部署问题,以及如何部署机器和网络来配合实现软件系统的可靠性、可伸缩性等要求。o 运行架构关注进程、线程、对象等运行时概念,以及相关的开发、同步、通信等问题o 数据架构关注持久化数据的存储方案,不仅原创 2013-08-24 20:28:30 · 2355 阅读 · 0 评论 -
高性能、高流量Java Web站点打造的22条建议
1. 考虑使用不止一个数据中心在商务领域,一直存在许多恐怖的道听途说,而这些恐慌都因为他们只使用了单一的数据中心。如果你想在自然灾害或者电力供应故障中幸免,那么请使用多于1个的数据中心,使用active-active模式来配置你所有的数据中心。虽然在开销上可能会有所增加,但是比只使用单active的配置要值得多——因为在passive和active副本上,总会发现有些数据片不一致。2. 考转载 2013-12-22 10:23:52 · 1611 阅读 · 0 评论 -
假如我来架构12306网站(二) - 浅谈系统需求调研
前言: 此文的是续接假如我来架构12306网站(一) - 概论一文,目的是继续探讨整个项目的开发链条,将项目开发中的每个环节都进行一定程度的剖析研究,跟各位同行切磋技艺,共同提高,但毕竟此项目带有虚拟性,如有言之不妥之处,还请各位同行予以谅解。需求分析是至关重要的,对于每个系统而言,需求是生命线,是一切后续工作的源头,笔者在大量的项目实践中发现成功的项目往往在需求定义上相对比较清晰,双方的原创 2013-01-02 11:02:58 · 33273 阅读 · 133 评论 -
数据切分算法实践
数据切分其实有一个很巧妙的方法。 在memcached中用到了。 因为涉及到负载均衡等情况.所以有很大的优化.其实完全是数学层面的东西。 但是比前一篇文章的三种切分方法都要好一些。 其实数据切分的最好算法是能够根据新加入的节点(由于性能不够而重新加入新节点)能够动态加入到水平切分的数据库集群之中,并且承载均衡的负载。 引用Consistent Hashing Co转载 2014-02-05 11:19:01 · 2267 阅读 · 0 评论 -
数据库水平切分的实现原理解析
最近看了几篇数据库水平切分的实现原理,觉得如下的这篇分析的颇有道理,转载跟大家一起分享。----------------------------------------------------------------------------------------------------------------------------------------------------------转载 2014-02-05 11:01:11 · 1430 阅读 · 0 评论 -
Alibaba的COBAR真是强大
最近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家。Cobar是阿里巴巴研发的关系型数据的分布式处理系统,该产品成功替代了原先基于Oracle的数据存储方案,目前已经接管了3000+个MySQL数据库的schema,平均每天处理近50亿次的SQL执行请求。首先,使用Cobar的核心功能如下: 分布式:Cobar的分布式主要是通过将表放入转载 2015-03-18 21:53:05 · 14393 阅读 · 2 评论 -
阿里巴巴Dubbo实现概要分析
1. Dubbo概述Dubbo是阿里巴巴开源出来的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及作为SOA服务治理的方案。它的核心功能包括:#remoting:远程通讯基础,提供对多种NIO框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式。#Cluster: 服务框架核心,提供基于接口方法的远程过程调用,包括多协议支持,并提供软负载均衡和容错转载 2015-03-21 10:34:02 · 1886 阅读 · 0 评论 -
Amoeba源码分析之:核心类说明
Amoeba目前一共有三个项目产品,分别是: Amoeba for MySQL:为MySQL提供了一种数据库代理的解决方案,可以实现多台MySQL之间的读写分离,具有负载均衡、高可用性、Query过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。 在Amoeba上面你能够完成多数据源的高可用、负载均衡、数据切片的功能。 Amoeba for Al转载 2014-02-06 21:12:44 · 3090 阅读 · 1 评论 -
假如我来架构12306网站(一) - 概论
序言: 此文的撰写始于国庆期间,当中由于工作过于繁忙而不断终止撰写,最近在设计另一个电商平台时再次萌发了完善此文并且发布此文的想法,期望自己的绵薄之力能够给予各位同行一些火花,共同推进国内的大型在线交易系统的研发工作,本文更多地站在软件工程角度来看待整个问题,有关后续的技术问题研究,将在另外的博文中予以探讨。 一年一度的国庆大假刚落下帷幕,由于这次长假是历史上最长的一次,因此出行原创 2012-11-02 14:36:09 · 32825 阅读 · 101 评论 -
做到这五点,才算是好用户体验 -- 转自周鸿祎在UPA用户体验大会上的演讲
前记: 笔者在TECH2IPO站点看到周鸿祎先生所写的这篇文章,旋即被这里所总结的思路所感染,此文中总结的五点确实非常核心与重要,在目前产品泛滥的时代,如何能够紧紧抓住核心,进行产品突围乃至于如同乔布斯先生一般由几款革命性的产品创造一个全新的产业分支,颠覆世人对于这块应用的全新理解与期待,这点对于我们广大技术人员特别是市场销售与售前人员,有着非同凡响的借鉴意义。技术人员出身的产转载 2012-11-22 09:15:34 · 2276 阅读 · 0 评论 -
概要设计与详细设计的区别
概要设计与详细设计的区别 概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。 详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。 概要设计阶段通常得到软件转载 2010-04-23 18:13:00 · 1792 阅读 · 0 评论 -
负载均衡
在全球不同的数据服务器农场(Data Farm)之间的负载均衡主要是依照区域通过DNS来实现负载均衡的;应用服务器级别的群集主要分两种部署实施方式:1.硬件来实现负载均衡,一般是通过F5来实现的;2.软件来实现负载均衡,一般是通过Windows Server 2008的负载均衡组件来实现,另外在非微软平台是通过部署独立的负载均衡软件譬如Apache Server之类的来担当;附原创 2012-05-08 23:28:08 · 2036 阅读 · 0 评论 -
单点登录SSO简单笔记
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像各企业的门户,在门户的背后是数量众多的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。原创 2012-03-04 21:34:11 · 1956 阅读 · 0 评论 -
软件级负载均衡器(LVS/HAProxy/Nginx)的特点和对比
现在网站发展的趋势对网络负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术:一种是通过硬件来进行进行,常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用;另外一种就是类似于LVS/HAProxy、Nginx的基于Linux转载 2012-09-08 21:19:06 · 1642 阅读 · 0 评论 -
用orabm测试oracle服务器的TPS值
一、TPS概念简介TPS:transaction per second 服务器每秒处理的事务数。Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用转载 2012-11-28 08:58:15 · 5783 阅读 · 0 评论 -
软件需求分析规格说明书格式
1.引言 1.1 编写的目的/*说明编写本说明书的目的1.2 背景说明/*给出待开发系统的全名及项目提出者,开发者,及用户。同时说明该软件系统将做什么和不做什么。1.3 术语定义1.4 参考资料/*列出本文档所引用的全部资料以及资料的来源。2. 任务概述2.1 功能概述/*简要叙述本系统预计实现的主要功能及功能之间的相互关系,最好用图表明。2转载 2012-11-19 10:21:34 · 1877 阅读 · 0 评论 -
软件需求分析
软件需求分析(Software Reguirement Analysis)是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据。软件需求分析是一个项目的开端,也是项目实施最重要的关键点。据有关的机构分析结果表明,我们设计的软件产品存在不完整性、不正确性等问题80%以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能转载 2012-11-20 09:40:24 · 2938 阅读 · 1 评论 -
RAID0、RAID1、RAID0+1、RAID5原理介绍
摘要:RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能RAID 1又称为Mirror或Mirroring,它的宗旨是最大限度的保证转载 2012-11-20 17:34:13 · 1281 阅读 · 0 评论 -
SAAS软件的多租户实现技术研究笔记
在SAAS、IAAS、PAAS这三个不同层面,实现多租户的技术是不一样的:SAAS 软件的使用权,主要是依照账户的容量(如何约定是个值得考虑的问题),譬如用户(租户)拥有使用账号;PAAS 软件开发平台资源(如开发支撑系统工具、应用存储空间、运行容器、平台服务等等);如某租户拥有1G应用存储空间,应用容器(数量不限、总内存上限4G),2个缓存服务;IAAS 硬件基础设施(如CPU、内存、存储、IP原创 2015-05-09 20:45:43 · 7772 阅读 · 0 评论