84年的矿泉水

博客园 首页 新随笔 联系 订阅 管理

    这段时间都没有写任何的blog,主要的精力都放在了albian的开发上。因为一个朋友创业,原本有意加入之,所以加紧了albian的开发,但因为额启动成本的问题,这段时间开发的albian是java版本的,俗称albianj。后来因为了解的深入,感觉这个创业项目不靠谱就放弃了。但是albianj基本上写完了。总体结构、思想都没有任何的改变,但是代码结构albianj和albian.net相比成熟很多。albian.net会在下次重构的时候更改代码结构。

    这次先来说一下albian的使用(因为java版本和net基本上使用方法一样)。和平常的开源软件一样,albian也有配置文件,而且配置文件还不少,一共有10个,分别是

   cache.xml 此文件主要配置使用在ORM上的缓存,支持本地和Memcached两种;

     config.xml  此文件主要配置“配置服务”,这是一个albian内置的服务,主要提供程序中经常使用的参数配置功能;

     controller.properties 此文件主要配置albian的控制中心,即albian的管理器;

     log4j.xml 这是日志配置,albian使用log4系列作为默认日志工具,这就不多说了吧;

     persistence.xml 此文件主要配置对象的持久化关闭,即ORM的映射关系、对象和数据库、数据库表之间的关系;

     routing.xml 此文件主要配置数据对象的database router功能,即数据对象会根据你配置的router,路由到不同的库、表中;

     service.xml 此文件主要配置最简单的IOC功能;

     storage.xml 此文件主要配置数据库链接;  

     alocker.xml 此文件主要配置分布式锁服务器;

    介绍完了配置文件后,我们通过一个实例来讲述一下。

     场景描述:

     有一个电子商务网站,大概一天的pv在2kw左右,数据库采用sql server和mysql,sql server主要用来提供“写操作”,mysql被大量的部署,用来提供“读操作”。然后客户端可以发布自己的东西,在电子商务站点中称为发布单;顾客也可以购买东西,即对发布单下订单。发布单除了单页面查看以外,还可以通过list页面来查看。场景应该差不多了吧?这些应该是最简单的电子商务网站的模型吧?!

      首先我们确定一下我们将使用albian来完成底层功能的使用。然后审视一下场景描述,我们不难发现,pv在2kw以上,那么应该可以称为中型网站,所以数据量压力、并发压力、流量压力都很大。为了应对网站压力,对数据肯定是进行了一定的拆分,俗称“分库分表”,然后因为需要list页面的显示,我们肯定又需要一个总体的数据库表来导出列表或者各类分索引的数据库表来完成这项功能(暂且不考虑search引擎,虽然那么大的访问量没有search引擎是很难想象的)。那么大的访问量,肯定是需要缓存来顶部分的压力,可能是分布式缓存、也可能是本地缓存,这需要具体的情况看。好,现在明确一下我们需要什么。

      第一:使用albian来完成(一站式服务嘛,为嘛不用?!);

      第二:数据对象需要分库分表;

      第三:数据库存在异构(sql server和mysql);

      第四:分库分表后牵连的一个问题,事务问题;

      第五:缓存问题;

      第六:数据的并发问题;

    搞定了场景和场景中的利弊,这就简单了,下一节将介绍怎么使用albian来完成!

posted on 2011-10-19 21:15  xvhfeng  阅读(1636)  评论(4编辑  收藏  举报