System and program architectur
文章平均质量分 96
贾诩是也
走过很多弯路,一直坚强、执着的眺望着远方、、、一个听着小米布斯故事成长起来的老码农。不忘初心,方得始终、、、给自己鼓劲加油,为这个时代华丽的时代喝彩!
展开
-
系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
Web前端现在是一个独立的技术工种,这个工种的产生主要是针对互联网行业的需求,我在以前的文章里曾经讲到过,一个大型互联网网站,例如想淘宝网,它绝对不是一个Web项目,而是一群web项目的集合,那么如果不在前端进行整合,这么多web项目前端开发一定存在大量重复劳动,并且运维时候也存在难以统一管理的问题。本文假想一个面对需要前端资源整合的组织,如何做到前后端分离的解决思路。本文详情如下:转载 2018-04-12 09:38:28 · 960 阅读 · 0 评论 -
实时股票分析系统的架构与算法
如果能在一台服务器上应用人工智能和机器学习算法处理每天的股票交易,而自己则在夏威夷的海滩上享受生活,那将是多么惬意呀。虽然股票价格的变化受多种因素的影响,世上也没有免费的午餐,但是有些公司依然能够借助于开源的机器学习算法和数据分析平台得到“更好、更健康、更便宜的午餐”。本文搜集并整理了一些如何实现实时股票分析系统的资料,从架构和算法两个层面给出了一种可行的方案。虽然股票交易市场一直在持续地变化转载 2017-08-01 10:37:33 · 5861 阅读 · 0 评论 -
Spring Cloud实战(二)-Spring Cloud Eureka
概要什么是Spring Cloud Eureka?使用Eureka获取服务调用Eureka整合Spring Config Server构建Eureka Server集群什么是Spring Cloud Eureka?Spring Cloud Eureka 模块提供的功能是被动式的服务发现.什么是服务发现?服务发现就像聊天室一个,每个用户翻译 2016-10-31 09:59:08 · 339 阅读 · 0 评论 -
两种分布式锁实现方案一(13)
一。为何使用分布式锁?当应用服务器数量超过1台,对相同数据的访问可能造成访问冲突(特别是写冲突)。单纯使用关系数据库比如MySQL的应用可以借助于事务来实现锁,也可以使用版本号等实现乐观锁,最大的缺陷就是可用性降低(性能差)。对于GLEASY这种满足大规模并发访问请求的应用来说,使用数据库事务来实现数据库就有些捉襟见肘了。另外对于一些不依赖数据库的应用,比如分布式文件系统,为了保证同一文件在大转载 2017-07-03 18:23:06 · 421 阅读 · 0 评论 -
Apache ActiveMQ实战(2)-集群
ActiveMQ的集群内嵌代理所引发的问题:消息过载管理混乱如何解决这些问题——集群的两种方式:Master slave Broker clustersActiveMQ的集群有两种方式:MASTER/SLAVE模式Cluster模式Pure Master SlavePure master s转载 2017-07-02 23:09:55 · 408 阅读 · 0 评论 -
Apache ActiveMQ实战(1)-基本安装配置与消息类型
ActiveMQ简介ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apache提供的授权,任何人都可以对其实现代码进行修改。ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。ActiveMQ转载 2017-07-02 23:08:38 · 343 阅读 · 0 评论 -
Kafka你我之见
Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输同时支持离线数据处理和实时数翻译 2017-07-02 23:02:56 · 294 阅读 · 0 评论 -
Apache Kafka —一个不同的消息系统
简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Apache Kafka与传统消息系统相比,有以下不同:它被设计为一个分布式系统,易于向外扩展;它同时为发布和订阅提供高吞吐量;它支持多订阅者,当失败时能自转载 2017-07-02 22:59:31 · 474 阅读 · 0 评论 -
通向架构师的道路(第二十六天)漫谈架构与设计文档的写作技巧
前言:这篇是一篇番外篇,没有太多代码与逻辑,完全是一种”软“技巧,但是它对于你如何成为一名合构的架构设计人员很重要。在此要澄清一点,架构师本身也是”程序员“,不是光动嘴皮子的家伙们,如果你不是一名程序虽出身那你根本谈不上也不可能成为一名架构师。那么架构师还有哪些是作为一名程序员来说不具备的呢?其中有一项能力就叫做”文档写作能力“。一、Soft Skill与Har转载 2017-07-02 08:55:57 · 384 阅读 · 0 评论 -
通向架构师的道路(第二十五天)SSH的单元测试与dbunit的整合
一、前言在二十三天中我们介绍了使用maven来下载工程的依赖库文件,用ant来进行war包的建立。今天我们在这个基础上将使用junit+dbunit来进行带有单元测试报告的框架的架构。目标:每次打包之前自动进行单元测试并生成单元测试报告生成要布署的打包文件即war包单元测试的代码不能够被打在正式的要布署的war包内,单元测试仅用于unit test用使用模拟数据对dao层进行测试,转载 2017-07-02 08:54:53 · 474 阅读 · 0 评论 -
中小企业的架构之道
为什么要谈中小企业的架构之道--------------------------------------------------所有的大公司都是从中小型企业发展起来的如果经的创业环境下中小企业是大多数中小企业的it现状堪忧当业务变化时打了太多的补丁程序当业务发展时系统不断出现各种瓶颈1、系统出现各种故障、卡顿2、数据库经常锁死3、用户法宁网站打不开4、业务团原创 2017-12-01 15:21:36 · 1533 阅读 · 0 评论 -
几款流行开源ESB总线简介
现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,现在已经是百花争鸣的景象了。现在我就对现有的各种开源ESB总线依据性能、可扩展性、资料文档完整程度以及整合难易程度等方面展开。CXFCXF的定位不是ESB总线,而是一个服务框架(Service Framework),主要还是为关于服务的应用提供API上的支持,或者上下文上的管理。但是它的前身之一的Celtix就翻译 2017-06-24 11:18:50 · 5027 阅读 · 0 评论 -
怎样成为优秀的软件模型设计者?
我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢? 将下列原则应用到你的软件工程中,你会获得立杆见影的成果。 1. 人远比技术重要 你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们那时侯将主要精力都集中在技术上。显然,构件(components),EJB(Enterprise Java...翻译 2018-04-15 07:47:56 · 255 阅读 · 0 评论 -
闲扯大型网站架构演变03
在一个项目还是单体架构的时候,所有的js,css,image都会在一个web网站上,看起来并没有什么问题,比如下面这样: 但是当web网站流量起来的时候,这个单体架构必须要进行横向扩展,而在原来的架构中静态资源这羊毛是出在单体架构这头羊身上,所以横向多少个单体,就有多少个静态资源文件夹,比如下面这样的架构。那这种架构有什么问题呢? 总的来说会有如下二个问题: 1.原创 2018-01-29 08:26:12 · 208 阅读 · 0 评论 -
闲扯大型网站架构演变02
缓存说到缓存,我想大家跟我一样都很兴奋,当我们遭遇网站性能瓶颈的时候,缓存是一剂强心针,也是一粒紧急妈富隆,从而在优化网站性能方面冠上了第一定律的帽子,我们前年在做淘应用的时候,就遭遇了性能瓶颈,短时间内采用缓存紧急优化,给我们大优化之前争取了宝贵的时间。 一:缓存的种类 要说缓存有多少种,太多了,比如浏览器缓存,文件缓存,片段缓存,数据库缓存等等,合理利用原创 2018-01-29 08:25:08 · 176 阅读 · 0 评论 -
闲扯大型网站架构演变01
我们知道一个网站都是随着业务的发展,逐渐演变成几万服务器,几亿用户数的大型网站,经历了若干年,甚至上十年的发展成为大型网站,然而真正亲身经历这个发展过程的人已经不多了,这种人也是拿着公司股票,赶都赶不走的人,所以正因为很多人没有亲身经历过,所以对架构的演变没有深刻的了解,包括我自己在内,不过没吃过猪肉,也看过猪跑。。。 一:第一代架构 这年头创业大多都是从穷屌丝开始的,奔着原创 2018-01-29 08:24:45 · 190 阅读 · 0 评论 -
通向架构师的道路(第二十四天)之Oracle性能调优
前言这次,我们将在Linux下来动手完成Oracle数据库的安装与使用。oracle本身是可以免费下载的包括 它的企业版以及被它收购的Weblogic和Sun中的几乎任何东西你都可以拿来下载和使用,不像IBM和Tibco一些其它厂商,只有“试用版”给你下载,Oracle的东西没有时间限制,你拿来做练习,搭实验环境都是没有任何的问题的。但是,如果你出了问题,需要用到Oracle的转载 2017-07-02 08:52:55 · 3960 阅读 · 0 评论 -
通向架构师的道路(第二十二天)spring(四)使用struts2
一、前言SSH有了,现在我们要把我们的struts层从原来的1.3替换成struts2.x,引入了struts2.0后我们会发觉我们的代码和框架的变化还是不小的二、Struts2的好处1)在struts2的方法里,一切变量是线程安全的,而原有的struts1不是的;2)在struts2中如果你声明了如下这样的代码: privater String st转载 2017-07-02 08:47:19 · 831 阅读 · 1 评论 -
通向架构师的道路(第十五天)IBM Websphere的安装与优化
转自:http://blog.csdn.net/lifetragedy/article/details/7864092一、IBMWebsphere02年开始接触EJB1.x时,当时有一本巨肥厚无比的书叫作”ejb从入门到精通(master ejb2.0)”,红皮的,wrox公司出版的。该书带有1张光盘,光盘里有3个App Server。1. Jboss2.2转载 2017-07-01 20:47:47 · 870 阅读 · 0 评论 -
通向架构师的道路(第十九天)使用maven构建Spring工程
一、前言上次大家拿了我上传的工程后,有些人自己通过spring3,struts1.3,hibernate3的download的包自行去装配jar包到工程的WEB-INF\lib目录下。有些是通过我上传的alpha_lib包把里面的jar文件一股脑的copy到了工程的WEB-INF\lib目录下去。有时经常还会发生少包了,ClassNotFound这样的错误,或者是一些因为缺包还引起的各种莫转载 2017-07-01 20:53:22 · 515 阅读 · 0 评论 -
架构师需要直面的几个问题
、、、 以前收集过很多有关架构师能力模型的文章,感觉自己离架构师不远,但近一两个月真正把这个title戴我头上时才发现自己离一个合格的架构师还有很远,架构师决不仅仅停留在设计系统和写设计文档的层面,现在感觉到压力和捉襟见肘是因为没有真正回答过以下几个问题:1)是否真正具备扎实的开发功底?而不是停留在满足项目需求2)是否能推动他人去改进系统或提升技术?而不是停留在DIY原创 2017-06-30 21:41:18 · 449 阅读 · 0 评论 -
通向架构师的道路(第二十三天)maven与ant的奇妙整合
一、前言我们在《万能框架spring》前四天中都用到了maven,接下去要讲述在SSX这样的架构下我们的“单元测试”是怎么进行的,但是在此之前我们再来深入入解一下maven,因为我们的单元测试需要用到的是junit+ant+junitreport这样的组合。而。。。。。。由于我们已经使用了maven,那么我们如何可以延续经典的junit+ant这样的单元测试的组合呢?其答案就是把maven和a转载 2017-07-02 08:48:18 · 428 阅读 · 0 评论 -
通向架构师的道路(第二十一天)spring(三)之SSH
一、前言我们有了spring+JdbcTemplate和Spring+iBatis并结合maven的基础,搭建一个SSX这样的框架现在就和玩一样的简单了,今天我们将搭建一个使用Struts1.3,Srping3, Hibernate3的SSH1的开发框架,大家跟着我一步步走,会发觉在程序跑通后自己再动手搭建一遍这个框架,只需要30分钟。二、SSH框架仔细看这个框架,稍微转载 2017-07-02 08:45:54 · 439 阅读 · 0 评论 -
通向架构师的道路(第七天)之漫谈使用ThreadLocal改进你的层次的划分
一、什么是ThreadLocal早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名转载 2017-07-01 00:40:45 · 350 阅读 · 0 评论 -
通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
一、权限系统这一天将讲述一个基本的基于数据库的权限管理系统的设计,在这一天的课程的最后将讲述“左右值无限分类实现算法”如何来优化“系统菜单”的结构而告终。今天的内容和前几天的基础框架是一样的它们都属于基础知识,在这些基础知识上还可以扩展出无数的变种与进化设计。二、先来看客户的一个需求2.1用户实际需求1. 所有的用户、角色可动态配置2. 所有的系统菜转载 2017-07-01 00:39:06 · 274 阅读 · 0 评论 -
通向架构师的道路(第五天)之tomcat集群
转自:http://blog.csdn.net/lifetragedy/article/details/7712691一、为何要集群单台App Server再强劲,也有其瓶劲,先来看一下下面这个真实的场景。当时这个工程是这样的,tomcat这一段被称为web zone,里面用spring+ws,还装了一个jboss的规则引擎Guvnor5.x,全部是ws没有serv转载 2017-07-01 00:34:41 · 402 阅读 · 0 评论 -
通向架构师的道路(第四天)之Tomcat性能调优
转自:http://blog.csdn.net/lifetragedy/article/details/7708724一、总结前一天的学习从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是:ü 吞吐量ü Responsetimeü Cpuloadü MemoryUsage我们也在第三天的学习中对Apache做过转载 2017-07-01 00:32:56 · 340 阅读 · 0 评论 -
通向架构师的道路(第三天)之apache性能调优
转自:http://blog.csdn.net/lifetragedy/article/details/7707455一、总结前一天的学习在前两天的学习中我们知道、了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构。这个架构是一个非常基础的J2ee工程上线布署时的一种架构。在前两天的教程中,还讲述了Http服务器、App Se转载 2017-07-01 00:31:14 · 249 阅读 · 0 评论 -
通向架构师的道路(第二天)之apache tomcat https应用
转自:http://blog.csdn.net/lifetragedy/article/details/7699236一、总结前一天的学习在前一天的学习中我们知道、了解并掌握了Web Server结合App Server是怎么样的一种架构,并且亲手通过Apache的Http Server与Tomcat6进行了整合的实验。这样的架构的好处在于:ü 减轻App转载 2017-07-01 00:29:51 · 369 阅读 · 0 评论 -
通向架构师的道路(第一天)之Apache整合Tomcat
转自:http://blog.csdn.net/lifetragedy/article/details/7698555/一、先从J2EE工程的通用架构说起这是一个通用的Web即B/S工程的架构,它由:ü Web Serverü App Serverü DB Server三大部分组成,其中:² Web Server置于企业防火墙外转载 2017-07-01 00:27:58 · 255 阅读 · 0 评论 -
架构师成长之路
于任何一个软件开发人员来说,架构师都是一个令人向往的角色。就连世界首富比尔盖茨在2000年卸任公司CEO的同时,也担任了微软公司的荣誉角色“首席软件架构师”,可见“架构师”这一称谓的吸引力。架构师是公司的“金领”,有着非常高的收入,很少需要考虑生存的问题,从而有更多的精力思考关键技术问题,形成“强者愈强”的良性循环。部分优秀的开发人员在工作了一定时间后,就要开始考虑自己的未来到底向哪个方向发展。如原创 2017-06-30 23:36:30 · 219 阅读 · 0 评论 -
一步一个脚印
从事这一行,真的需要一步一个脚印,任何人如此。先打好技术基本功,如编程语言、设计模式、研发工具、三方类库等;做好自己负责的工作,职责范围由小到大,从子模块到模块、服务、子系统、复杂系统、到整体架构等;了解清楚业务,学习各类业务架构,踩各种坑,一步步积累经验,打怪升级。 有一个机会让我从0开始搭建一个百万级别同时在线的即时通讯的架构,在这个过程中我对即时通讯的架构细节和业务细节了原创 2017-06-30 23:11:30 · 356 阅读 · 0 评论 -
通向架构师的道路(第八天)之weblogic与apache的整合与调优
一、BEAWeblogic的历史BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、 网络应用和数据库应 用的Java应用服务器。将Java的动态功能和JavaEnterprise标准的安全性引入大型网络应用的 开发、集成、部署和管理之中。 BEA WebLogic Server拥有处理关键Web应用系统问题所需的性能 、可扩展性和高可用性。转载 2017-07-01 00:42:47 · 225 阅读 · 0 评论 -
通向架构师的道路(第九天)之weblogic的集群与配置
一、Weblogic的集群还记得我们在第五天教程中讲到的关于Tomcat的集群吗?两个tomcat做node即tomcat1, tomcat2,使用Apache HttpServer做请求派发。现在看看WebLogic的集群吧,其实也差不多。区别在于:² Tomcat的集群的实现为两个物理上不同的tomcat,分别就是两个node,没有总控端,没有任何控制台可言(只有转载 2017-07-01 00:44:09 · 268 阅读 · 0 评论 -
通向架构师的道路(第二十天)spring(二)maven结合spring与ibatis
一、前言转自:http://blog.csdn.net/lifetragedy/article/details/8122621上次讲了Struts结合spring并使用Spring的JdbcTemplate来搭建工程框架后我们面临着jar库无法管理,工程发布不方便,jar包在工程内太占空间,jar包冲突,管理,甚至漏包都问题。于是我们在讲“万能框架spring(二)”前,传授了一篇转载 2017-07-02 08:44:42 · 373 阅读 · 0 评论 -
通向架构师的道路(第十六天)Websphere与IBM HttpServer的集成
一、IBMWebsphere与IBMHttpServerIBM WebSphere非常强大,几乎可以和任何主流Web服务器集成。其原理和Weblogic与Apache以及tomcat与Apache的集成原理一致,也是以plug-in(插件)的方式来做应用的。不过我们今天要介绍的是IBM自带的HttpServer,又称IHS。IHS其实就是一个Apache,IBM拿了Apache过来进行转载 2017-07-01 20:48:51 · 490 阅读 · 0 评论 -
通向架构师的道路(第十八天)万能框架Spring(一)
一、前言前一阵列刚换了个新的工作环境,然后自己的baby也刚出生,一直没有时间去做工作以后的其它事了,担搁了一段日子。今天儿子满一周了,我内人她家帮着照顾着,总算我可以喘口气休息一下,因此决定将这个系列的博文继续下去,同时也将此篇献给我刚出生一周的儿子和幸苦了10个月的爱人。二、基本概念spring,作为一个流行框架它给我们在日常工程中的框架搭建提供了太多的便利了,它就像一个骨架一转载 2017-07-01 20:51:53 · 434 阅读 · 0 评论 -
通向架构师的道路(第十七天)IBM Websphere集群探秘-WASND
一、IBMWebsphere集群IBM WebSphere的发行版分为单机版和NetworkDeployment版,我们把Network Deployment称为ND即可作集群的版本。WAS的集群和Weblogic的集群一样,它也可以作垂直和横向两种集群。而WASND的集群是在所有的集群中最强大的,因为它可以:通过各个node组成一个个cell,又可以把这一个个cell组成一个个新转载 2017-07-01 20:50:31 · 532 阅读 · 0 评论 -
通向架构师的道路(第十四天)Axis2 Web Service安全之rampart
一、加密保护我们的web service传输在上一天的教程中,我们讲了一个简单的基于” security-constraint”的以指定用户名和密码来保护一个Web Service以及如何用https对这个web service的通讯过程进行保护。虽然它用https来进行保护了,但是我们抛开https,这个web service之间传输的用户名,密码,数据都是明文的。在我之间教程中曾经提到转载 2017-07-01 00:59:25 · 514 阅读 · 0 评论 -
通向架构师的道路(第十三天)Axis2 Web Service安全初步
一、WSSecurity简述安全的Web服务是Web服务成功的必要保证。但大家都知道,Web服务使用XML来进行数据交换,而XML在默认情况下是明文编码的;同时,大部分Web服务使用HTTP协议作为传输协议,同样,HTTP也是使用明文方式来传输数据的。这就造成了在不加密的传输协议上传输不加密的信息,从而使信息传输的保密性受到威胁。作为企业级的应用,以上的方式不能满足安全性基本要求:² 数转载 2017-07-01 00:56:23 · 386 阅读 · 0 评论