标签:
互联网服务和BS架构的传统企业软件相比,系统规模上产生了量级的差距。例如
原始的SSH+DB的BS开发模式,显然已经无法满足现代互联网服务的需要。随着企业软件不断地向云端迁移的趋势越来越明显,最终中小型企业软件系统的开发将变得越来越非主流,模式和架构被淘汰后,只熟悉原始的开发模式和架构的工程师,也将遭遇被淘汰的压力。
大型互联网服务的体系架构有什么特点呢?以大型B2C电商网站为例,其功能至少应该包含以下几个部分
每个功能模块都有自身的业务逻辑,且侧重点各有不同,需要着眼的技术难点也不相同
如何开发这样的复杂大型系统,经过不断地迭代和发展基本上找到了一条比较合适的道路:
这时的每个模块都拥有自己的输入和输出结构,相对独立,可以被称作一个服务。这种系统的整体架构就是SOA(面向服务的体系结构)。“它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。”,最重要的一点,“接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言”。
“这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互。” --- 百度百科
随着规模的增大,系统架构如何变迁到SOA的,Dubbo官方网站上有个很好的总结:
网站系统更加细节具体的架构演化,还可以参考一篇很好的博文 http://www.cnblogs.com/pflee/p/4507579.html
或者阅读一本好书 《构建高性能Web站点》
服务化的思路简化了一些事情,但是也有一些问题尚未解决:
Dubbo[]是阿里开源的 ”一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案“,帮助我们解决上述的那些问题。
其核心部分包含:
首先看一下来自于官方文档的架构图
(Dubbo更具体的架构组成,请参考这里)
从官方文档中,可以提炼出Dubbo的一些重要特点
特色1:服务注册与发现的注册中心Registry
注册中心的这两个特性大大提高了系统的可用性和扩展性。注册中心既可以采用Multicast注册中心,也可以集成Zookeeper,也可以采用Redis,非生产环境也可以使用一个Dubbo自己实现的Simple注册中心,非常灵活。
特色2:统计服务的调用次调和调用时间的监控中心Monitor
监控负载,排查性能瓶颈就方便多了。简易监控中心的安装,请参考这里。
特色3:使用上,采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。
特色4:开源部分中,还包含有一个管理控制台的实现(内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能)。
Dubbo的必读官方文档
--------------------------------------------------------------------------------
参考文献:
http://www.iteye.com/magazines/103
http://www.tuicool.com/articles/YRRjq2E
http://blog.csdn.net/aisoo/article/details/8286875
http://shiyanjun.cn/archives/325.html
标签:
原文地址:http://www.cnblogs.com/csliwei/p/4502204.html