请教各位朋友一个问题,欢迎各位前来讨论
公司有几套线上运行的系统(比如是A,B,C等等),本来是分别独立,互不相干
现在有了新需求,公司想开发一套通用的缓存系统,目的是让A,B,C等系统能够
共同使用同一套缓存,比如A系统中往缓存中插入一个类型为Entity的对象时,在B中
用类似于Get方法能够取到在A中刚才插入的值,即通过缓存实现各个系统的横向数据交换,
但是这有个问题,就是A中的Entity类型的属性和B中的Entity类型的属性不是完全一致的。
我不太明白这里改用如何的方式能更好的解决这个问题。我现在的想法是缓存用memcached来完成缓存内部的实现(用memcached的优势这里不提),
然后我写一个中间层(比如叫core的项目)用来包装一下,可以更适合自己公司的使用习惯,
用一个Model项目来完成统一的cache对象的存取,用一个service项目来暴露给客户端调用这只是我的初步想法,一定有很多问题,我想请各位给点意见,谢谢

解决方案 »

  1.   

    memcached不错,用C#的memcached client类库就能实现了
      

  2.   

    针对我上面的想法我有几点疑惑
    1、架构cache项目的方式,应该用webservice?还是dll引用?还是用wcf?
    用webservice会多很多序列化的过程,效率是不是会有问题
    用dll的方式,势必会部署到很多地方,例如上文中的A,B,C都要部署一套,有了变更要重新部署
    用wcf不是很熟悉,当然如果这种方式好的话,我会用
    2、cache项目中的model是不是 势必会有很多冗余地段,该如何解决?
    并且cache中的model项目中的数据类型和 各个子项目中的数据类型不是完全一致,连着转化怎么搞?
    难道都用手写明码的方式来转换吗?谢谢各位前来讨论了。
      

  3.   

    1楼的朋友首先谢谢你的回复,可能我没表述清楚也可能你没看明白我的问题
    memcached client类库只是针对cached的读取等操作,
    我会在core中对这个进行封装的
    然后给service项目来用
    我觉得这个不是问题
      

  4.   

    用wcf吧,虽然有时候部署起来比较麻烦
      

  5.   

    楼上兄弟,请教您这里用wcf都有什么优势?
      

  6.   

    可以使用不同的通信协议解决你使用webservice担心的效率问题,soa解决你部署和数据同步问题
      

  7.   

    不知道你看过这个没有http://www.cnblogs.com/artech/tag/WCF/,这位老大讲的比较细致
      

  8.   

    恩,感谢楼上各位兄弟据我所知,wcf和webservice还是有很多相似之处
    貌似数据传输就是很大问题
    因为序列化反序列化过程的原因
    尤其是当大数据量时,
    我也没试验过只是我的猜测
    并且往缓存读取的时候还逃不过序列化反序列化
    这个过程就有2次,貌似在加上数据类型转化
    这样一来webservice或者wcf,效率能得到保证吗?
      

  9.   

    使用分布式缓存系统Memcached、Cacheman ,与系统服务器分开
    通过WCF或web services获取数据
    参考
      

  10.   

    谢谢楼上朋友的回复用webservice和wcf会重复序列化2遍吧
    大数据量的访问这样对性能有影响吗
    谢谢
      

  11.   

    我看了你的给我参考的帖子
    里面提到的sharecache看起来可以满足我的需求
    不过不如memcached等让人更放心
      

  12.   

    获取数据通过wcf或web service