Adhesive框架系列文章--配置服务模块简介

首先谈一下配置服务的相关背景。在一个复杂的系统中,有些部分可能会存在经常性的变动,这些部分可能是系统本身也可能是业务需求,考虑到系统的灵活性和可扩展性,我们将经常需要改动的部分作为参数配置,以达到在不修改代码的前提下,调整系统功能及业务逻辑。像一些大型系统,比如SAP就是就是一个很好的例子。系统可以通过6000 个"开关"设置,调整软件的业务流程。通常我们会使用本地配置文件(XML)保存配置信息,使用配置文件缺点也很明显,当我们的系统越来越庞大,配置文件会越来越多,甚至需要大量的服务器来支撑时,配置文件的更新相当麻烦,而且各个服务器上配置文件版本的一致性也很难保证。我们的思路是将配置保存在数据库中集中管理,然后配合Web后台对这些配置进行管理。

配置服务的目标:

1、对配置进行集中管理,可以根据不同的应用划分不同的配置;

2、配置修改后,客户端能及时得到通知,保证每次获取到的都是最新配置;

3、支持更多的数据类型,除了基础数据类型(比如整型、字符串、布尔、枚举、浮点、日期等),还支持列表、字典以及自定义实体;

4、支持水平扩容。

配置服务模块划分:

分为两个部分:

1、服务端

服务端使用WCF构建,将获取增量配置和配置的基本操作(添加、修改、查询)等封装为服务,供客户端调用。当一台配置服务压力过大时,可以再添加一台,然后使用F5做负载均衡。

2、客户端

为了获取配置时不频繁的向配置服务器发出请求,配置在本地会有缓存,为了最大限度的提高性能,分为一级缓存和二级缓存。一级缓存会缓存一条条配置项,二级缓存会缓存配置的值(对于字典、列表和自定义配置实体来说,会包含多个配置项),本地缓存会由同步模块自动更新。

配置服务模块特性:

_thumb9

配置服务模块就介绍到这,下篇文章会向大家介绍配置服务模块的使用。

posted @ 2011-10-11 12:46  陈 锋  阅读(1783)  评论(2编辑  收藏  举报