`
lovnet
  • 浏览: 6706689 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

分布式与实体控制层

 
阅读更多

多层结构的业务实体在层间传递时常常需要根据层次裁减,或者根据功能选择某些信息,特别时在分布式层部署环境中,如果实体包含的信息太多,势必增加序列化与传递的开销,然后,如果把实体拆开,传递时使用简单变量,又有可能造成变量过多,或者对需求变化不灵活的麻烦

在这种情况下,使用实体控制层能够解决这个问题

你可以把实体控制层设想为一个衔接外部接口和内部功能的桥梁

实体控制层根据具体功能和层次,从传入的实体中,选择必要的信息,以新实体,或者简单变量,或者直接使用清理过的原实体这集中方式传递到具体的内部功能

举个例子TopicDataCenterEntry有这样一个方法,Post(TopicInfo,ConfigInfo)传入一个帖子和该论坛的配置,而TopicDataCenter需要根据配置中的信息,选取合适的缓存策略,比如内存缓存MemCache.Post,静态文件机制StaticFile.Post,这些都是分布式的实现,所以传入的实体必然需要尽量精简,而ConfigInfo包含了一个论坛所有的配置信息,所以传入的信息量很大,而使用的只是很少一部分.

看到这里,有的看官可能会想,那么TopicDataCenterEntry的Post方法里面不要传入ConfigInfo,直接传入需要使用的信息不就可以了吗?

假如所需要的信息是很确定的,那么却是应该这样做,然而,由于内部需要实现切换机制,不同的机制需要配置文件的不同信息,而且一旦修改为简单变量的传递,以后凡是发现某些内容需要配置在配置文件里,而不写死,就必须修改函数签名,导致上层结构的变化

这个时候实体控制层就派上用场了,TopicDataCenterEntry里面加上对应的逻辑,对于内存缓存,调用Post(TopicInfo,ConfigInfo.LifeTime)传入该帖子的存活时间,而对应静态帖子,传入ConfigInfo.TemplateFilename模版文件名,Encoding等等不同的信息,这样TopicDataCenterEntry就成为了实体控制层,保证了对上层的不变与灵活性,而又保证了在分布式结构中的性能

分享到:
评论

相关推荐

    基于WebService的分布式多层应用范例

    分层与职责 PersonalManagerModel 定义客户端和服务端共用的实体、接口、类型等 PersonalManagerServerBizLogic 服务端业务逻辑的实现,只提供功能,不区分调用者,此template简单,没有独立出DAC层 ...

    分布式系统服务ZooKeeper的学习历程.zip

    计算机硬件系统: 计算机硬件系统是构成计算机物理实体的所有部件的集合,包括核心组件以及外设。其主要组成部分包括: 中央处理单元 (CPU):作为计算机的大脑,负责执行指令、进行逻辑运算和数据处理。 内存:...

    迅杰企业管理软件

    显示层与控制层的分离。既降低控制层的复杂度。同时也为系统升级为BS结构奠定坚实的基础。 实体层。实体层是后台数据显示的载体。 业务层。系统业务数据之间的关联操作均在此处理。如收货后系统更新采购单收货数量。...

    迅捷企业资源管理软件

    显示层与控制层的分离。既降低控制层的复杂度。同时也为系统升级为BS结构奠定坚实的基础。实体层。实体层是后台数据显示的载体。业务层。系统业务数据之间的关联操作均在此处理。如收货后系统更新采购单收货数量。等...

    迅杰企业资源管理系统

    显示层与控制层的分离。既降低控制层的复杂度。同时也为系统升级为BS结构奠定坚实的基础。实体层。实体层是后台数据显示的载体。业务层。系统业务数据之间的关联操作均在此处理。如收货后系统更新采购单收货数量。等...

    golang基于websocket单台机器支持百万连接分布式聊天(IM)系统.zip

    计算机硬件系统: 计算机硬件系统是构成计算机物理实体的所有部件的集合,包括核心组件以及外设。其主要组成部分包括: 中央处理单元 (CPU):作为计算机的大脑,负责执行指令、进行逻辑运算和数据处理。 内存:...

    使用springcloud+mybatis+mysql构建的分布式员工信息管理,单表的.开发工具使用maven

    一、使用springcloud+MyBatis+MySql 1.1.Maven新建父项目,在pom.xml加入mysql的依赖 ...1.6.建立控制层服务器模块EurekaClient,引入Feign组件,调用业务层的控制器组件。 1.7.使用页面访问服务器的控制器。

    捷迅企业资源管理系统

    显示层与控制层的分离。既降低控制层的复杂度。 同时也为系统升级为BS结构奠定坚实的基础。实体层。实体层是后台数据显示的载体。业务层。系统业务数据之间的关联操作均在此处理。 如收货后系统更新采购单收货数量。...

    xmljava系统源码-daijie-example:基于spring-cloud系列整合的分布式项目的例子,监控管理、配置中心、注册中心、分

    控制层:控制层提供互联网访问,控制层的义务是控制访问请求跳转到接口业务层,监控用户状态,角色权限的拦截处理。 接口业务层:利用防火墙限制只允许指定的内网机器访问,接口业务层的义务是处理具体业务实现,对...

    xc-spring-cloud-alibaba:Spring Cloud阿里巴巴(2.2.1最新版)+ nacos + dubbo + gateWay + sentinel + rocketmq +(pgsqlmysql8.0的json支持)+ ignite集成可用于docker分布式框架+分布式自动化任务+ mybatis多数据源+ seate + shardingSphere分布式分库事务解决方案

    网关,分配路由,用于调用管理类的控制层,无需关注端口,路由分配转发 xc-ui 后台页面,使用 react技术开发 增加mybatis多数据源操作,引用seate1.2处理分布式事务,多数据源事务,引用shardingSphere进行分库分表...

    数据库系统基础知识.doc

    属性:用椭圆形表示,并用无向边将其与实体连接起来; 联系:用菱形表示,菱形框内标明联系名,并用无向边连接有关实体,同时在无向边旁 标明联系类型。 3)实体间的联系 实体间的联系主要有两实体、两个以上实体及...

    数据库课程设计要点难点,实例,代码拆解

    学生需要了解数据库管理系统(DBMS)的基本原理,包括数据存储、索引、事务处理和并发控制。 难点可能在于优化数据库性能、备份和恢复策略,以及安全性管理。 应用开发: 学生可能需要将数据库与应用程序集成,以...

    Oracle数据库基础教程-参考答案

    Oracle之所以得到广大用户的青睐,其主要原因在于:支持多用户、大事务量的事务处理、提供标准操作接口、实施安全性控制和完整性控制、支持分布式数据处理、具有可移值性、可兼容性和可连接性。 (7)

    javaweb电子政务网.zip

    数据访问层使用Java持久化技术,如Hibernate或MyBatis,与数据库进行交互。通过定义实体类和数据库表的映射关系,实现数据的增删改查操作。同时,源码还采用连接池技术来提高数据库连接的效率,提供数据的可靠性和...

    智能制造系统架构.docx

    系统层级 系统层级自下而上共五层,分别为设备层、控制层、车间层、企业层和协同层。智能制造的系统层级体现了装备的智能化和互联网协议(IP)化,以及网络的扁平化趋势。具体包括: (1)设备层级包括传感器、仪器仪表...

    ASP EXCEL导入SQL

     361CRM平台的平台服务层与通常的应用服务不同,它是实时运行的服务,平台服务层有相应的任务调度机制,邮件服务、消息队列以及实时的工作流引擎等,这些服务都是实时运行的,因此当企业用户的业务对象或者业务流程...

    助力零信任安全架构的下一代IAM.pdf

    分布式设计模式和实践(如微服务,容器编排和云计算)已经让我们的生产环境变得越来越动态和异构,我们认为传统的安全实践(例如仅仅基于四层网络控制策略的访问控制)在这种复杂性下难以扩展,急需一套全新的IAM...

    .NET的极速开发框架

    (14)实体层、数据层、业务层、操作事件层可配置 (15)支持SQL语句操作、支持Lamda表达式与SQL联合查询、支持读写分离 (16)多种关系类型数据库支持,目前支持的数据库类型有mssql,mysql,oracle,可扩展支持...

Global site tag (gtag.js) - Google Analytics