`
matthieu
  • 浏览: 6012 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

请教关于两个独立tomcat之间的通信

阅读更多
现有这个消息发送系统,它有两部分组成:前台管理和后台发送引擎。他们位于同一台服务器上的两个独立的tomcat中。

整个系统的大致运行模式是:当前台的管理系统设置好待发消息后,将数据库表中对应的这条数据的某个标志位进行置位,而后台发送引擎分为两个部分,读取线程发现此标志位后,将其读入并包装后放入内存的任务池中,再由某一个工作线程再将其取出后进行相应的发送处理(现阶段读取线程设为1个,工作线程设为3个),发送结束后再将前台数据库表中此数据对应的标志位进行置位。

现在有一个问题在困扰我的是:如果前台管理系统在设置好待发消息后,我准备取消此次发送任务,此时该怎么处理比较好呢? 如果后台读取线程尚未读取此次任务,则简单将前台数据库表中对应的数据的标志位重新置位即可,但是一旦已经被读入后,如果工作线程尚未进行处理,则清除任务池中此次任务。如果已经正在处理中了,那么必然需要让工作线程放弃此次任务。

分析是这么分析,但是两个独立的tomcat之间该如何比较好的处理这种问题?
分享到:
评论
4 楼 jones 2007-12-10  
远程调用->锁住任务池->除去池中某个任务->解锁任务池->返回执行状态码
3 楼 daquan198163 2007-12-09  
使用悲观锁
2 楼 mingr6370 2007-12-08  
两个异步操作,你做通信好像也解决不了问题吧

可以考虑多加个功能,确认发送
1 楼 jones 2007-12-08  
取消任务池,这个完全是画蛇添足,线程池在多个工作线程间的线程安全维护所消耗的时间跟直接在数据库连接池中取得连接对象进行数据库查询时间基本等同,别太小看了现代的RDBMS,放到内存未必就比数据库快多少.
或者给你的任务池添加一个除去池中代发任务的API,然后把这个API用Hessian 或其它协议暴露给你的另一个tomcat

相关推荐

    在一台电脑上同时运行两个tomcat时对端口的修改说明

    本文将详细阐述在一台电脑上同时运行两个Tomcat实例时,对端口进行必要修改的方法及注意事项。 ### 一、理解Tomcat的默认端口 首先,让我们澄清Tomcat默认使用的几个关键端口: 1. **HTTP端口**:默认为8080,...

    一台服务器上同时运行两个Tomcat服务

    这样的配置允许你在同一台服务器上运行两个独立的Tomcat实例,它们各自管理不同的Web应用程序,互不影响。这种设置对于测试、开发或者生产环境都非常有用,可以提高资源利用率,同时保持服务的独立性和可管理性。...

    tomcat两个

    通过以上步骤,您将在同一服务器上成功部署了两个独立的Tomcat实例,并使用Nginx作为反向代理,使得客户端可以通过单一域名访问不同端口上的应用,而无需暴露内部端口号。这有助于提升系统的可维护性和安全性。

    一台机器上跑2个不同的tomcat

    本文将详细介绍如何在一台机器上配置两个独立的Tomcat服务器,并确保它们能够无冲突地运行。 ### 一、配置不同端口 #### 1. 修改 `server.xml` 文件 为了使两个Tomcat实例能够在同一台机器上同时运行,首要任务是...

    nginx实现多个tomcat7直接session共享所需jar包

    标题中的“nginx实现多个tomcat7直接session共享所需jar包”指的是在分布式系统环境中,使用Nginx作为反向代理服务器,将用户请求分发到多个Tomcat7应用服务器上,同时实现用户会话(Session)在这些服务器之间的...

    tomcat7 tomcat9 两个资源

    标题中的“tomcat7 tomcat9 两个资源”指的是Apache Tomcat服务器的第七个和第九个主要版本。Tomcat是一款开源的Java Servlet容器,主要用于部署和运行Java Web应用程序。这两个版本之间的差异在于功能的增强、性能...

    一台机器上部署不同版本JDK,两个Tomcat的解决方案

    ### 一台机器上部署不同版本JDK及两个Tomcat实例的解决方案 #### 一、背景介绍 在实际项目开发和运维过程中,有时会遇到需要在同一台机器上部署不同版本的Java Development Kit (JDK) 和多个Apache Tomcat服务器的...

    用channel实现Tomcat服务间通信

    在Tomcat服务间通信中,我们可以创建一个基于Socket或Pipe的Channel,允许两个服务之间通过网络或内存共享数据。例如,服务A可以通过SocketChannel向服务B发送请求,服务B接收到请求后进行处理并返回响应。这种方式...

    tomcat 7 8 两个版本

    本文将详细介绍Tomcat 7和Tomcat 8这两个版本的主要特点、改进以及它们之间的差异。 一、Tomcat 7 Tomcat 7是2011年发布的,主要支持Java Servlet 3.0、JSP 2.2和EL 2.2规范。以下是一些关键特性: 1. **Servlet ...

    本地同时部署两个tomcat需要修改的内容

    综上所述,部署本地两个Tomcat实例涉及多个方面的配置和管理,需要细心操作以确保每个实例的独立性和稳定性。通过合理的配置,你可以有效地利用资源,同时运行多个Web应用。在实际操作中,务必谨慎处理每一个细节,...

    一台电脑上两个tomcat

    一台电脑设置两个tomcat,对应两套环境变量 CATALINA_BASE1=E:\software\apache-tomcat-7.0.47copy CATALINA_BASE=E:\software\apache-tomcat-7.0.47 CATALINA_HOME1=E:\software\apache-tomcat-7.0.47copy CATALINA...

    tomcat android 双向ssl通信

    ### 知识点概述 #### Tomcat与Android双向SSL通信实践 ...通过这些步骤和概念的介绍,我们能够更深入地理解Tomcat与Android平台之间双向SSL通信的配置过程,以及在实践中可能遇到的一些关键问题和解决方案。

    tomcat 7和Tomcat8 两个包

    Tomcat 7和Tomcat 8是两个不同的版本,它们各自具有特定的功能改进和性能优化。 Tomcat 7是Apache Tomcat项目的一个主要版本,发布于2010年,支持Java EE 6规范。它引入了诸如WebSocket协议、异步处理支持、改进的...

    同时启动多个tomcat

    如果两个Tomcat实例都使用默认的8080端口,则会导致端口冲突,无法同时启动。因此,需要对每个额外的Tomcat实例的HTTP端口进行修改。例如,可以在`conf/server.xml`文件中的`<Connector>`元素下找到如下配置: ```...

    IIS整合多个tomcat

    3. 调整Tomcat:确保每个Tomcat实例都有独立的端口,以便IIS可以正确地将请求路由到相应实例。 四、负载均衡与故障转移 整合多个Tomcat时,可以利用IIS的内置负载均衡功能,根据预设策略(如轮询、最少连接等)分发...

    Tomcat之间Session共享

    Tomcat 之间的 Session 共享是指在分布式 Tomcat 环境中,多个 Tomcat 实例之间共享 Session 数据,以确保用户登录状态的一致性。在使用 Nginx+Tomcat 进行负载均衡时,使用轮询方式进行负载可能会导致用户退出登录...

    Android&Tomcat服务器Http协议通信

    以上就是关于"Android&Tomcat服务器Http协议通信"的相关知识点,希望对初学者有所帮助。通过学习和实践,你可以更好地理解和掌握Android客户端与服务器之间的数据交互,为开发更复杂的应用奠定基础。

    Linux安装两个tomcat

    本篇文章将详细讲解如何在Red Hat Linux 9上配置和管理两个独立的Tomcat实例。 首先,我们来看一下主要涉及的知识点: 1. **多实例配置**:在同一台Linux服务器上运行多个Tomcat实例,每个实例都有自己的配置、...

    svn和tomcat两个插件

    现在我们来详细讨论这两个插件以及如何在eclipse中使用它们。 `svn`插件在eclipse中的主要作用是提供源代码版本控制的集成环境。通过该插件,开发者可以在eclipse内部完成代码的版本提交、更新、合并、回滚等操作,...

Global site tag (gtag.js) - Google Analytics