文档章节

EAServer 组件的生命周期

会哭的鳄鱼
 会哭的鳄鱼
发布于 2017/06/05 00:15
字数 892
阅读 13
收藏 0
点赞 0
评论 0

开发三层分布是应用,我们必须要了解组件的生命周期。

首先,当客户端连接上eas,并创建完组件实例的时候,eas并没有真正创建该组件的实例。客户端执行createinstance方法,eas仅仅是对用户指定的组件进行验证,看是否是有效的组件,并能在当前授权下有效创建,也即是说,客户端执行完createinstance后,eas并没有真正在内存中创建这个组件的实例。

当客户端开始调用组件第一个函数的时候,eas要做如下工作:

1,看指定的组件缓存池中是否有缓存的实例,如果没有将创建该组件的实例,并触发组件的构造事件。

2,一旦组件创建或则有可用的组件实例,则eas将把该组件实例和客户端线程邦定,并触发组件的activate事件。

3,执行客户端调用的函数。

4,如果是有状态组件,则函数执行完后,直接返回结果到客户端,并保留该组件和客户端线程的绑定,直到客户端调用setcomplete()和setabort()或则组件函数结尾处调用setcomplete()和setabort()。

5,当组件事务被提交或会滚后,将导致对数据的操作的提交和会滚。完成组件的客户端会话。

6,将组件和客户端线程解除绑定,并触发组件的deactivate事件。

7,判断当前组件属性中是否支持缓存池,如果不支持,或则当前缓存池已经超过了设置的最大缓存个数,默认不限制个数。则eas将会触发组件的析构事件,并将组件从内存中销毁。

8,如果组件可以缓存,将组件放入到缓存池中供下次调用

一旦客户端创建完组件并调用完函数,只要客户端不断开连接,则,客户端可以继续调用组件的函数,这就是eas的按需连接的功能。这个功能将大大节省服务器的资源消耗。

前面提到了客户端线程的概念,这里有必要特别说明一下。

当客户端执行连接到客户端,并通过授权认证后,eas将会自动创建一个服务器端线程来和该客户端进行通信,这个线程就是客户端线程(好像有点拗口哟!),在pb9,以及以后的版本中,默认是不要绑定客户端线程的,也就是说一旦完成一次函数的调用,组件和客户端线程解除绑定后,这个线程将进入到eas的线程池,共其他客户端使用。这样无形之中就提高了服务器的效能。因为在操作系统的线程资源也是有限的。尤其是windows,给每个进程分配的可用线程都是有限制的。

但在pb8的时候,因为pb8虚拟机的局限性,你必须要选择绑定线程,而绑定线程的结果,就是,就算客户端完成了一次函数调用,并把组件和线程解除绑定,则该线程也不会被其他客户端使用,直到该客户端断开连接,则该线程将被eas销毁掉。这是很浪费系统资源的。但pb8的组件,必须要选择绑定线程,切记!

© 著作权归作者所有

共有 人打赏支持
会哭的鳄鱼
粉丝 5
博文 52
码字总数 51678
作品 0
郑州
技术主管
J2EE应用服务器 兼容性实现(摘自Sun,只帖1.4和java ee5了)

Java EE 5 Compatible Implementations Sun Java System Application Server Platform Edition 9 TmaxSoft JEUS 6 1.4 Compatible Implementations Apache Geronimo 1.0-M5 BEA BEA WebLogic......

晨曦之光 ⋅ 2012/04/12 ⋅ 0

[翻译]Android Architecture之处理生命周期

原文地址:https://developer.android.com/topic/libraries/architecture/lifecycle.html 使用Lifecycle-Aware库来解决生命周期问题。 生命周期感知组件会对于另一个组件(如Activity和Fragm...

尺锤 ⋅ 2017/11/20 ⋅ 0

14、React系列之 组件的生命周期

版权声明:本文为博主原创文章,未经博主允许不得转载。 PS:转载请注明出处 作者:TigerChain 地址:http://www.jianshu.com/p/e3d1ecfb6312 本文出自TigerChain简书 git 地址:github.com/git...

TigerChain ⋅ 2017/12/15 ⋅ 0

React Native生命周期

初学RN,找了好久找到了挺齐全的生命周期介绍,来个转载,方便查阅~~ React Native 中组件的生命周期 概述 就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lif...

不爱吃鱼的喵 ⋅ 2016/02/01 ⋅ 1

React的生命周期到底是怎么一回事?

尽量全面详细的整理一下React的生命周期中的知识点。 组件 组件是独立的封装的可以复用的一个小部件,它是React的核心思想之一。通过划分组件,可以将一个页面划分成独立的多个可复用的组件,...

axuebin ⋅ 2017/09/16 ⋅ 0

React源码解析(二):组件的生命周期

笔者将编写"React源码解析"系列文章三到四篇,阐述React内部的机制。欢迎大家关注我的掘金账号,以便能及时看到最新的文章更新推送。 在上一篇文章《React源码解析(一):组件的实现与挂载》中...

ssssyoki ⋅ 2017/11/06 ⋅ 0

React组件(推荐,差代码)

课程地址:https://www.imooc.com/learn/944 认识React JSX—一种语法结构 一、环境安装: 1.HTTP服务器 安装python3.5.2 建立项目文件夹react_py 打开teminal(windows上我安装的cmder) 进...

xiaoge2016 ⋅ 04/12 ⋅ 0

【翻译】安卓架构组件(3)-处理生命周期

相关文章: 【翻译】安卓架构组件(1)-App架构指导 【翻译】安卓架构组件(2)-添加组件到你的项目中 【翻译】安卓架构组件(4)-LiveData 【翻译】安卓架构组件(5)-ViewModel 【翻译】安卓架构组...

Chuckiefan ⋅ 2017/06/07 ⋅ 0

ReactNative基础(二)了解组件的生命周期

此博客基于react-native-0.48.4 生命周期这个词大家一听肯定是不陌生了,在Android中有Activity、Fragment、Service…的生命周期(请原谅我是个小Android);那在ReactNative中组件也是一样有...

a_zhon ⋅ 2017/09/27 ⋅ 0

react native组建生命周期图

就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lifecycle)。所谓生命周期, 就是一个对象从开始生成到最后消亡所经历的状态,理解生命周期,是合理开发的关键...

KingBoxing123 ⋅ 2016/10/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 39分钟前 ⋅ 7

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 44分钟前 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部