HTML5技术

.Net 分布式云平台基础服务建设说明概要 - 车江毅

字号+ 作者:H5之家 来源:博客园 2016-07-15 13:00 我要评论( )

1) 背景 建设云平台的基础框架,用于支持各类云服务的业务的构建及发展。 2) 基础服务 根据目前对业务的理解和发展方向,总结抽象出以下几个基础服务,如图所示 3) 概要说明 基础服务的发展会根据业务的发展,调整和完善,也会不断的改进,演变及完善;当

1)  背景

建设云平台的基础框架,用于支持各类云服务的业务的构建及发展。

2)  基础服务

根据目前对业务的理解和发展方向,总结抽象出以下几个基础服务,如图所示

 

3)  概要说明

基础服务的发展会根据业务的发展,调整和完善,也会不断的改进,演变及完善;当然根据目前公司的现状和对基础服务的迫切程度,基础服务各模块的定位和发展预期将如下所述。

1)     数据库中间件

公司现状:

1)     对多种类型数据库的支持需求迫切,如同时支持mysql,orcale,sqlserver这些数据库。最多改动少量代码就可以在多种数据库类型中切换。

2)     尽量不要让开发人员写sql代码,因为原有的开发人员开发方式是采用linq的方式,大部分开发的业务是winform类型的业务。

采用方案:

目前采用entity framework,因entity framework 本身采用linq方式编程,自身能够解析linq为sql,且兼容多种数据库类型的查询。Entity framework 在.net 中的流行程度较高,代码开源,版本发展较快,且拥有大量应用文档和学习资料,相比较同类型的框架而言,当首选之。

方案弊端:

Entity framework 的采用只是临时的方案,因为业务的需要会持续比较久的时间。

1)     从高性能的服务来看,linq to sql的过程必然会有性能损失,即便框架做了解析的缓存,但是也无法避免这些问题。一些复杂语句的查询,linq to sql 目前也会出现意外的解析结果,复杂的语句查询难以用linq表达。如果不是对linq to sql 这种方式较熟练和关注性能的人,一般写法上也会导致性能问题。

2)     从数据库的角度看,目前业务暂时还使用同一个数据库,未来业务会采用多个数据库,多张数据表。这一点entity framework 后面会涉及到分库的支持和分表的支持,显然即便修改源码也很头疼。而且多个数据源,多个数据库类型的支持,意味着同一个业务要涉及到多种数据库下面性能的调优和运维,特别是涉及到版本升级的数据迁移,要兼容多种数据库,意味着工作量真心不小。

未来方向:

采用单一类型的数据库,会有一个支持sql编写直连数据库,支持分库分表的分布式数据库,自动管理数据库连接池,自动提供性能分析及预警等的数据库中间件。

 

2)     TCP服务框架

公司现状:

1)     用于采集程序,采集设备和服务器的直连,发送采集信息。

2)     服务器端反向通知连接程序或设备,即时通知信息。

3)     与工作站的通信环境(云平台采用ActiveMQ),连接第三方设备(采用signalr asp.net)。

采用方案:

暂时保持与工作站的通信环境(云平台采用ActiveMQ),连接第三方设备(采用signalr集成入asp.net)这种方案。因为公司目前采用C#编程,这两块技术选型都有相应的C#客户端或者C#的解决方案的一些示例;故使用起来问题应该不大,但是遇到的问题也不会少。若遇到性能问题,可以简单的通过扩展多个ActiveMQ应用服务的负载均衡来解决。

其他方案:

采用redis或者rabbitmq之类的类似解决方案,个人倾向与redis 的发布订阅机制解决,性能不算差(听闻过上规模的使用案例及跨语言客户端sdk)(且可以统一缓存的使用框架,便于维护。)

方案弊端:

1)     无论采用redis,activemq,rabbitmq之类的哪种消息队列方式解决,都无法避免本质的性能问题,因为这些框架本身是用来解决消息队列的,因为其内存消息转发机制,故而用于一些即时通讯,常用于解决内网环境的一些应用交互。目前的场景会应用到广域网环境与工作站进行通信,业内类似的解决方案也曾有人使用过,但是也会经常出现activemq 内存满或者莫名死掉的情况。

2)     采用signalr 应用挂载到asp.net 上面的使用方式,经过一些第三者开发的经验,也会出现稍微高并发就出现性能问题或者死掉的情况。Signalr 常用于.net 技术,也有简单的使用案列,但是还没有成熟的上规模的使用案例和场景。

未来方向:

采用java的NIO思想或者Windows 完成端口思想,搭建纯粹的TCP socket服务是解决本质的一个方案,一般一台服务器能够承载10万的连接,几千的活动连接(具体看服务器配置等情况)不会有问题(而旧方案可能承载几千,上百的活动连接就会出现性能问题)。

 

3)     认证中心

公司现状:

1)     原有工作站内网子系统的登陆验证,外网设备登录验证,云平台用户登录验证。

2)     云平台用户菜单权限获取,操作权限获取。

采用方案:

自行研发公司特有业务的认证中心平台,目前仅第一个版本。包含

1)     设备管理,子系统管理,云平台用户管理和权限管理等

2)     第三方使用的登录接口,用户菜单权限接口,用户操作权限接口。

以上功能目前能够满足现有公司的业务。

方案弊端:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Dora.Interception: 一个为.NET Core度身定制的AOP框架 - Artech

    Dora.Interception: 一个为.NET Core度身定制的AOP框架 - Artech

    2017-05-02 11:00

  • 如何在 ASP.NET Core 中发送邮件 - Savorboard

    如何在 ASP.NET Core 中发送邮件 - Savorboard

    2017-05-02 08:02

  • 十二个 ASP.NET Core 例子 - Savorboard

    十二个 ASP.NET Core 例子 - Savorboard

    2017-04-27 16:01

  • ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

    ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

    2017-04-24 08:04

网友点评
p