下载地址 https://sourceforge.net/project/showfiles.php?group_id=238653&package_id=322981&release_id=683333
事件管理框架通过bboss aop框架来实现远程事件管理功能。新增了事件远程服务配置文件:
/bbossevent/src/event-service-assemble.xml
文件的内容如下:
<properties>
<!-- 定义可以进行远程通讯的网络节点结合,默认为all -->
<!-- <property name="event.static-networks" value="172.16.17.254:1185"/> -->
<!--
是否启用远程事件开关,如果没有启用远程事件或者系统的rpc服务没有开启,事件的处理情况如下:
本地事件发给当前服务器的本地事件监听器
远程事件发给当前服务器的本地远程事件监听器、远程事件监听器
本地远程事件发给当前服务器的本地事件监听器、本地远程事件监听器、远程事件监听器
如果启用远程事件和开启rpc服务的情况下:
本地事件发给当前服务器的本地事件监听器
远程事件发给所有服务器的本地远程事件监听器、远程事件监听器
本地远程事件发给当前服务器的本地事件监听器、所有服务器的本地远程事件监听器、所有服务器的远程事件监听器
-->
<property name="remoteevent.enabled" value="true"/>
<!--
/**
* 指定缺省消息传播类型:
* 本地传播(Event.LOCAL)
* 远程传播(Event.REMOTE)
* 本地远程传播 (Event.REMOTELOCAL)
*/
-->
<property name="event.destinction.type" value="Event.REMOTELOCAL"/>
<property name="event.threadpool.corePoolSize" value="5"/>
<property name="event.threadpool.maximumPoolSize" value="10"/>
<property name="event.threadpool.keepAliveTime" value="30"/>
<!--
TimeUnit.SECONDS
TimeUnit.MICROSECONDS
TimeUnit.MILLISECONDS
TimeUnit.NANOSECONDS
-->
<property name="event.threadpool.keepAliveTimeUnit" value="TimeUnit.SECONDS"/>
<property name="event.threadpool.blockingQueue" value="100"/>
<property name="event.threadpool.waitTime" value="1"/>
<!--
RejectedExecutionHandler
必须实现java.util.concurrent.RejectedExecutionHandler接口
目前系统提供以下缺省实现:
com.chinacreator.thread.WaitPolicy 循环等待event.threadpool.waitTime指定的时间,单位为秒
java.util.concurrent.ThreadPoolExecutor.DiscardPolicy 直接丢弃任务,不抛出异常
java.util.concurrent.ThreadPoolExecutor.AbortPolicy 直接丢弃任务,抛出异常RejectedExecutionException
java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy 直接运行
java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy 放入队列,将最老的任务删除
-->
<property name="event.threadpool.rejectedExecutionHandler" value="com.chinacreator.thread.WaitPolicy"/>
</properties>
<manager id="event.serivce" singlable="true" >
<!--
事件管理远程服务
属性描述:
type:不同provider实现的标识
class:实现类代码
-->
<provider type="default" class="com.chinacreator.remote.EventRemoteServiceImpl" />
</manager>
上述文件的内容分为三部分:
第一部分
event.static-networks 如果有需要则定义远程事件默认发送的范围,前提是用户自己没有定义EventTarget对象
remoteevent.enabled 是否允许远程事件 true允许,false不允许,所有的事件将在本地传播
第二部分
event.threadpool.* 配置调度异步消息传输的线程池的相关信息
第三部分 远程事务管理服务配置
<manager id="event.serivce" singlable="true" >
<!--
事件管理远程服务
属性描述:
type:不同provider实现的标识
class:实现类代码
-->
<provider type="default" class="com.chinacreator.remote.EventRemoteServiceImpl" />
</manager>
事务管理框架通过该服务来广播远程事件。从上述3部分的配置内容可以看出事务管理框架的核心功能:
Ø 增加是否启用远程事件开关,这样即使系统中开通了其他的远程服务,也不会影响事件处理框架
Ø 可以设定远程事件在集群中广播的范围
Ø 扩展了远程事件发送的机制:
1.点对点事件发送(只支持Event.REMOTE事件Event. REMOTELOCAL)
2.多个点的单播事件发送(支持Event.REMOTE事件Event. REMOTELOCA)
3.集群组播事件发送(支持Event.REMOTE事件Event. REMOTELOCA)
EventTarget target = new EventTarget("172.16.17.254",1185);//单点发送
Event event = new EventImpl("hello world type2 with target[" + target +"].",
ExampleEventType.type2withtarget,
target,
Event.REMOTE);
EventHandle.getInstance().change(event);
通过定义不懂得target来实现不同的通讯模式:
EventTarget target = new EventTarget("172.16.17.254",1185);//单点发送
EventTarget target = new EventTarget("unicast:: 172.16.17.254:1186;172.16.17.254:1185");//多个点的单播事件发送
EventTarget target = new EventTarget("muticast:: 172.16.17.254:1186;172.16.17.254:1185",1185);// 集群组播事件发送
Ø 支持异步事件发送功能
通过jdk 1.5提供的线程池,事件管理框架中对原有的异步事件处理的功能进行了很大的改进。线程池的属性借助于bbos aop框架的全局属性配置来实现。具体可以参考上文中关于属性定义的第二部分的内容。
EventHandle.getInstance().change(event);//默认为同步发送
EventHandle.getInstance().change(event,false);//异步发送事件,关于异步发送消息的相关配置,请参考博客文章
《JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介》
分享到:
相关推荐
**Active Directory(AD)架构扩展**是AD管理员在部署特定应用程序,如Microsoft OCS(Office Communications Server)或Exchange Server时必须进行的关键操作。这涉及到修改AD的内部结构,以容纳新应用所需的数据...
总结来说,CI权限管理类扩展是CI框架中用于用户权限控制的核心组件,它提供了丰富的功能,帮助开发者构建安全、灵活的Web应用,确保只有经过授权的用户才能执行特定操作。`level.php`可能是实现这一功能的具体类文件...
SQL Server中的扩展事件是一种强大的诊断工具,它允许数据库管理员和开发者监视各种事件以及活动,从而进行性能调优和故障排除。扩展事件在SQL Server 2008版本中首次引入,虽然当时没有图形界面支持,捕捉结果也...
该项目是一个后台管理界面框架,旨在为Flask应用程序提供一个简单且可扩展的管理界面。系统提供了用户管理、角色权限、数据管理等功能,通过清晰的界面和丰富的交互体验,使用户可以轻松地进行后台管理操作。此外,...
SpringBoot插件式开发框架是基于SpringBoot框架构建的一种创新性开发模式,旨在解决系统动态扩展和模块化管理的问题。这种框架充分利用了SpringBoot的简洁、高效特性,为开发者提供了快速构建可插拔功能的能力。下面...
在实际项目中,这个图书管理系统可能会使用Spring框架来实现MVC架构,Spring提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,以及对数据库操作的支持,如使用MyBatis或JPA。此外,项目可能还会涉及到前端技术...
【标题】基于RuoYi-Vue扩展的多租户框架是SpringBoot的前后端分离权限管理系统,这个项目主要是为了实现一个适用于多个企业的系统,通过多租户模式,每个企业都可以拥有自己的独立数据空间,而无需担心数据混淆。...
3. **全面的功能集**:Phalcon提供了一系列完整的开发工具,如MVC架构、数据库抽象层(ORM)、安全功能、缓存支持、依赖注入容器、事件管理、路由、会话管理等,覆盖了Web开发的多个方面。 4. **数据库访问对象...
分布式管理采用分布式管理架构,将管理任务分散到不同的节点上进行处理,提高管理的可靠性和可扩展性。标准化和开放性遵循国际标准和开放接口,使得管理系统能够兼容不同的平台和设备,提高管理的互操作性和可扩展性...
* 架构治理:数字政府架构框架的治理是指对架构的管理和维护,确保架构的安全、稳定和高效运行。 数字政府架构框架的应用场景包括: * 智慧城市建设:数字政府架构框架可以应用于智慧城市的建设中,来提高城市的...
该项目是一款基于Jfinal框架扩展的微信消息后台管理设计源码,包含2107个文件,涵盖549个JavaScript脚本、187个Java源代码文件、335个PNG图片、175个LESS样式表、166个HTML文件、126个CSS样式文件、109个JPG图像、...
综上所述,利用EasyUI构建的后台管理框架不仅提供了美观的界面,还具备优秀的功能和良好的扩展性,是开发高效后台系统的一个理想选择。通过不断优化和更新,这种框架能够满足不断变化的业务需求,为企业提供稳定可靠...
**Yaf框架扩展详解** Yaf(Yet Another Framework)是由著名PHP开发者鸟哥(Laruence Yee)创建的一个轻量级的PHP框架,它的设计目标是提高PHP应用的运行效率,提供更好的性能和可维护性。在PHP 5.6版本下,Yaf能够...
基于.Net6.0的权限管理及快速开发框架,前后端分离,核心模块包括:组织机构、角色用户、权限授权、多系统、多应用管理、定时任务、业务单据编码规则、代码生成器等,整合应用最新技术包括Asp.NetCore MVC、EF、...
初步探讨了RFID中间件中事件规则管理的内容,并提出一种灵活的RFID事件规则管理框架,全面介绍了RFID事件编码、模式过滤、目标事件识别以及业务规则定义四个环节的内容,重点阐述了一种基于XML语言的业务规则定义...
总的来说,C#的酒店管理系统WinForm程序采用三层架构,实现了业务逻辑与界面的分离,提升了系统的可维护性和扩展性。通过合理设计和实现每个层次,我们可以构建出一个功能完备、用户体验良好的酒店管理系统。
在当前的云计算环境中,PaaS(Platform as a Service)平台扮演着至关重要的角色,它为企业提供了便捷的应用托管、管理和扩展能力。本文主要围绕基于OAM(Open Application Model)应用模型的可扩展PaaS平台架构展开...
《基于ThinkPHP框架的人力资源管理系统详解》 在IT行业中,PHP作为一种广泛使用的服务器端脚本语言,尤其在Web开发领域扮演着重要角色。而ThinkPHP则是国内最受欢迎的PHP开发框架之一,它以其简洁的语法、强大的...
基于纯电动汽车BMS电池管理系统架构CAN扩展应用.pdf