你的位置:首页 > 软件开发 > ASP.net > 做一个分布式、跨语言、跨平台、敏捷 需要那些技术做支撑?

做一个分布式、跨语言、跨平台、敏捷 需要那些技术做支撑?

发布时间:2015-05-29 00:00:27
做了7年的开发了,时间越久越是发现自己需要一个像标题写的那样的一个架构做为整个平台的支撑。  我的技术种类又是.net开发,总觉得.net技术人才容易出现瓶颈;其实这种瓶颈更像是这种环境造成的。简单快捷的开发本来就是.net所追求的,而这种追求导致整个语言平台在技术上都喜欢用最直 ...

做一个分布式、跨语言、跨平台、敏捷 需要那些技术做支撑?

  做了7年的开发了,时间越久越是发现自己需要一个像标题写的那样的一个架构做为整个平台的支撑。

  我的技术种类又是.net开发,总觉得.net技术人才容易出现瓶颈;其实这种瓶颈更像是这种环境造成的。简单快捷的开发本来就是.net所追求的,而这种追求导致整个语言平台在技术上都喜欢用最直接简单的方法解决问题,至于架构,可维护,持续升级,还是等项目上线或是出了问题之后再说。成熟、稳健并被公认的技术架构似乎每个做技术的都是见仁见智,都有自己独立的理解,而像java一样ssh等成熟公认的架构在业界基本寥寥无几,也许你会把三层架构拿出来说事,但是我个人觉得,三层只适合做中小型项目。

  废话少说,直接切入主题,分布式,在我的理解看来,要解决几个问题(注:很多核心主键我将不限)数据库、会话、缓存、项目之间的通信、跨语言、同步等等。而这些问题在java环境中有各种各样的核心组件可以解决。而组件之间似乎大家都统一用spring做为中间的调和剂。而.net 这方面相对要欠缺一些,所以数据访问层需要自己实现支持访问不同数据库,支持分表,支持虚拟表访问,借助taobao的tddl,自己准备开发一个ddl.net,.net版的分布式数据访问层,借助.net 的异步访问,实现分库分表的多线访问并合并数据集。项目之间的通信我选择thrift,这样解决了跨语言和项目的目的。而缓存选择memcached,它也是我分布式会话的核心只是会话存储的内容是json数据格式,这样也解决了不同语言开发时候会话数据的统一格式。消息队列messagequeue,选用MSMQ。.net 的中间调和剂比较丰富,而且特点各一。最终我还是选择了spring.net毕竟是java比较成熟的产品,在.net平台下也不会差到哪里去。而且spring.net也自带了和get='_blank'>mvc、wcfwindowservices等无缝集成的事例代码,可以说是完美的了,唯一的确定就是配置有点多,这个时候肯定要选择一个比较好的代码生成器,在现有的代码生成器中我没有找到好用的于是自己在已有大代码中改了一个,代码生成基于项目配置,基础数据由数据库中产生,支持sqlserver、mysqloracle单代码生成和数据库无关只与配置相关,所以代码生成器可以离线工作。模块文件也是以项目为独立单元,所以一个代码生成器可以配置各种项目类型,并且模版也是相互独立的。这样也比较适合团队开发和代码规范。这样由于架构的灵活造成的大量代码问题也得以解决。然后是文件服务器,我现在的考虑是由thrift直接存储到对应的服务器中,再由文件服务器中的自动同步代码同步到不同服务器中。搜索也是独立的模块,Lucene.net 是基础库,ZoieNet(由java的项目修改过来,现在还没有发布)做real time index。当然做为行业垂直搜索引擎,在搜索的数据结构上根据不同的需要来做相应的调整。前端现在的工作量也是呈现**式的增长。于是乎我选择了Combo.Net(自己开发的中间件),这样让组件方式的封装前端成为可能。

这是按照这个架构搭建的项目

驾驭 metronic 前端轻轻松松

http://www.hxteservices.com 

下面附上部分代码:

ddl.net --配置不同的数据源

<atom-datasource   name="group_test_3_001"   provider="sqlServer4.0"   property="sqlServer"   connectionString="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; min pool size=1; max pool size=50"   />  <atom-datasource   name="group_test_4"   provider="MySql"   property="MySql"   connectionString="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; min pool size=1; max pool size=50"   />

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:做一个分布式、跨语言、跨平台、敏捷 需要那些技术做支撑?

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录