Web服务架构之路--开篇

离开腾讯后,出来开始所谓的“创业”,开始逐步走向所谓的架构师之路。

仔细想想,其实自己一直都在做一些原创性的设计,但是一直是为自己的企业做的,所以也一直未公开发表过!


~~~~~~~~~~~~~~~~~~~追忆~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. 2011年人人Symbian客户端,信箱数据交互模型(Android也试用)

    手机客户端在操作的过程中,存在大量的网络交互。当时的网络引擎的API设计,是利用callback指针的方式进行。但是客户端交互中存在大量的页面跳转交互,例如当用户在页面回复一个用户后,很有可能跳转到查看详细新鲜事的页面。代码中充斥着register和unregister回调的,以及页面状态的判断。相关BUG也极其的多,代码凌乱,难以编写。不是所有程序员都能很好的编写异步代码的##

1)信箱模型采用mail的形式封住数据,每封mail都有自己的格式,发送地址。

2)每个数据接受者MailHandler都有一个邮箱,当其在线是可以直接处理mail;当其不在线时,mail会依次进行       post。

3)每封mail,投递到中间转发组件(PostOffice), 会按照协议类型(http, file, image)等等,被数据存进行接管。

4)处理完成后投递会PostOffice,按照mail的收件地址,进行转发。每个MailHandler会自动生成其收件地址,也可以重写为固定地址(适用于单例)

5)MailHandler的状态维护,大多数采用UI框架的hide事件设置为离线状态,show事件为在线状态

6)Symbian的视图切换框架被我改写为和Android相似的Activity间的切换框架

期间数据交互,不存在任何的指针引用。数据会被自动缓存,无用数据会被自动丢弃(适用于取消,但是实际已请求的情况)。随机崩溃的bug减少很多。


2. Symbian崩溃保留

http://wangli-whu.blog.163.com/blog/static/115098317201252894356156/


3. 2011至2012年期间,后台开发

    一直在学习,我的web服务架构,基本都是从这里学过来的。只不过腾讯采用C++的平台,我没有带出任何源代码。
    我希望构建一个以java为主的平台,并且从细节上改变以前一些不合理不好用的地方。我现在的架构也是根据电商平台的架构,一步一步的进行的。


4. 2012年2014年期间,Chromium内核预研,基于闭包的消息系统
   chromium内核逐步脱离webkit,google团队开发自己的blink的内核。我们希望在Android版本上构建一套基于blink内核的单进程架构的内核版本。chromium的content自身具备多进程架构,但是放在Android版本上,多进程版本显得过于厚重。
   chromium内核中提供了PostTask的接口,但是类之间还是存在指针引用和线程应用。我希望面向功能的类能封闭在,通过消息来改变自身状态提供功能。从而构建一套面向对象,解耦,线程安全的系统。帮团队成员从繁杂的多线程编程中解放出来。
   我们开发好了基础版本后,进行迭代测试。老同事说,感觉我们随机崩溃的bug好少呀!偷笑,这是我设想的目的。


好了,回归正题。我们的目标是海量服务Web框架,先上图

                    

这样一套架构图,乍看起来没啥大不了。大部分大型Web服务都会这么做。这是典型的SOA系统!
1. 创业公司是否需要做这样的一个框架?
    确实,直接Web到DB的配置是最简单不过的,随便拿一个在培训学习培训过几天的人都能写。这样初期成本是很低,但是每个公司是求发展的。
    团队协作带来的成本,后续高负载引发系统不可用带来的间接损失,其实是非常大的。

2. 采用SOA后生产力会变低吗?
    SOA的系统强调接口设计,每个AO和DAO之间都用IDL来约束。相反,从某种程度更加加强了接口设计,可复用性也得到了极大的提高。模块化的工作对于业务系统来讲,是一个至关重要的工作。

3. 平台框架需要做什么?
       1) 提供各种组件,简化业务需求的使用方式。(其实和现在的云服务很类似)
    2) 配置能够集中管理,检验。避免发布期的错误,便于升级,扩容和维护
    3) 多机负载,自动路由,尽量避免单点故障
    4) 监控体系,及时发现和定位问题。
    5) 易于发布和运维,提供自动化方案

4. 难在那里?
    难在细节,难在易用性,难在稳定性,难在高性能!

下一篇开始介绍RPC服务平台的构建,也是我最重要的组件svr_platform



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值