设为首页 收藏本站
查看: 580|回复: 0

[经验分享] 公司采集程序与tomcat比较

[复制链接]

尚未签到

发表于 2017-1-27 13:17:10 | 显示全部楼层 |阅读模式
  
最近经领导介绍,有幸细读了一下《深入剖析Tomcat》一书,感觉颇深。发现其中有很多架构设计可以值得公司现在正在开发的采集程序借鉴。
  一、我们通过tomcat和采集程序的生命周期,了解一下两者的相似之处
  1、tomcat生命周期,此处引用网友解析
从Tomcat处理用户请求,我们可以清晰的看到容器Servlet的生命周期管理过程:
  1、客户发出请求—>Web 服务器转发到Web容器Tomcat;
  2、Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse;
  3、从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把2创建的两个对象传递给该线程;
  4、Tomcat调用Servlet的servic()方法,根据请求参数的不同调用doGet()或者doPost()方法;
  5、假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;
  6、Servlet线程结束,Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。
  从该过程中,我们可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);调用destroy()方法(对应6步)。

DSC0000.jpg

  servlet容器可以理解为服务器,tomcat就是一个servlet容器.当用户有一个请求发来的时候,送到了tomcat端,即送到了servlet容器中,容器就创建一个servlet实例用来处理这个请求.通过init()方法初始化实例,然后就调用service()方法处理请求,并将结果返回. tomcat就返回一个响应.servlet在之后的过程中,如果没有被继续使用就会调用destory()方法销毁. 要注意的是,servlet容器和servlet的区别.容器就好比一个篮子,里面有很多苹果,就是servlet.苹果可以不断的拿进拿出,但是篮子没了[服务器关闭]之后就什么也没有了.
2、采集程序的生命周期
采集程序的采集工作根据采集器的不同,可以分为三种方式
(1)采集程序等待采集器定时返回电表的电能数据。
这种方式采集程序设计比较简单,只需要采集程序监听某个端口,接收采集器发送回来的电能数据即可。
DSC0001.jpg
 
 这种工作方式采集程序的压力在后台处理线程上,当采集器达到一定数或者采集频率小到一定值时,会达到采集程序的瓶颈。目前测试认为一分钟同时发送400条数据,连续发送1小时,即24000个采集器时,采集程序将出现解析不过来的现象。

采集器支持电表的类型达到最大化,但是采集器的故障点比较多,采集器有时钟、存储、内部处理,如果一个有问题,采集器不能正常工作,存在的隐患比较多。
(2)采集器发送报文后,切换到服务器模式,等待采集程序采集。 DSC0002.jpg
 
这种工作方式,对与tomcat很像,每个采集器可以看作一个request请求。这种工作方式处理的重点是采集程序后台处理线程,因为采集器的数量和采集的频率,一个后台处理线程是远远不够的,所以在处理时,应当考虑多线程的处理方式。而且这种处理方式处理设备的实时性方面要比上一个方式要差一些。但由于采集器不存在时钟和存储,采集器只能支持目前电表带冻结的一部分645电表。采集程序的设计要比前两者要更加复杂。
3、采集程序主动读采集器 
DSC0003.jpg
 
这种方式,只用传输作为桥梁,硬件设计达到最简化,成本能够很好控制。

由于采集程序通过原文下发方式读取电表数据,所以网络压力比较大,传输过程中出现错误情况比较多。
这种方式下,采集程序承受的电表数量受到了严重的限制。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-334127-1-1.html 上篇帖子: java web项目配置tomcat连接池 下篇帖子: 配置tomcat让shtml嵌套文件显示
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表