由于第一次在生产项目中使用分布式服务框架,在这方面缺少经验。因此对分布式服务做了一些研究和实践,在此通过“九周九分布式服务”系列文章做一个总结和分享。为什么是叫“九周九分布式服务”呢?很简单,在模仿“七周七”系列丛书的命名。为什么我选择了“九”而不是其他的数字,因为“九九归一”有归根到底,探寻事物本质的意思,更能表达我对此系列文章的定位,希望能从更深层次上说清楚分布式服务。本文是序不算做其中一篇,未来九周会有九篇文章发布。下面先简单介绍一下分布式服务,并做一个简单预告。
分布式服务的前世今生
随着公司业务的不断发展,和所有的公司一样到了一个阶段,分布式服务框架也逐渐被引入到项目开发中。一个公司系统应用的架构发展一般都是下面的一个历程:
从一体化的垂直应用架构到业务分层的RPC架构再到面向服务的SOA架构,然后就是最近特别流行的架构风格微服务,未来可能还有智能化架构模型,也不一定。那时,程序员的大部分工作将自动化、智能化!相信未来是美好的!未来的事先放一放,说说为什么应用架构不断发展,其核心推动力是提高公共能力的重用性,减少重复劳动,满足人类的懒惰。
分布式服务框架的功能组成
分布式服务架构是从传统RPC架构发展过来,随着RPC框架的不断推广,逐渐暴露很多问题,为了解决这些问题,分布式服务在RPC框架的基础上提供了很多特性:
- 基于注册中心的服务订阅/发布机制
- 支持服务自动发现
- 自带负载均衡
- 集群容错
- 流量控制、服务分组、服务多版本
- 故障隔离
- 支持多协议发布服务
- 践行DevOps思想
- 服务治理(支持服务监控、线上治理)
以上这些特性都是作为分布式服务框架的基本功能,不管在实际开发中使用哪一种框架,都应该包含这些功能。
分布式服务框架列表
在java生态圈中,目前业界主流的分布式服务框架,有以下几个:
- Dubbo/Dubbox(阿里/当当开源)
- HSF(阿里商业版)
- DSF(华为商业版)
- Coral Service(亚马逊内部)
- Spring Cloud(pivotal开源/商业版)
我们公司内部使用的分布式服务框架是华为研发的DSF框架,由于它是商业版的,在接下来的文章中有实例分析或者demo介绍的时候,我会采用Spring cloud框架。Spring cloud框架是Spring生态中的一员,以后可能是最流行的开源的分布式服务框架。
九周九分布式服务预告
下面列一下系列文章的内容预告,大体的内容不会变,以后可能由于思路的瞬变,会有小的变动也是可能的。请感兴趣的同学持续关注。预告:
- 九周九分布式服务-架构演进
- 九周九分布式服务-demo
- 九周九分布式服务-功能架构
- 九周九分布式服务-内部通信
- 九周九分布式服务-特性介绍1
- 九周九分布式服务-特性介绍2
- 九周九分布式服务-埋点日志
- 九周九分布式服务-访问控制
- 九周九分布式服务-服务治理
结束语:序就这么多吧。