rocketmq控制台跳过堆积是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rocketmq控制台跳过堆积是啥意思相关的知识,希望对你有一定的参考价值。
参考技术A rocketmq控制台跳过堆积是RocketMQ 控制台不支持消息堆积查询、消息堆积报警和订阅关系查询功能。MQ消息堆积是指生产者发送的消息短时间内在Broker端大量堆积,无法被消费者及时消费,从而导致业务功能无法正常使用。消息堆积常见于以下几种情况:1、新上线的消费者功能有BUG,消息无法被消费。
2、消费者实例宕机或因网络问题暂时无法同Broker建立连接。
3、生产者短时间内推送大量消息至Broker,消费者消费能力不足。
4、生产者未感知Broker消费堆积持续向Broker推送消息。
“INFO:TLD 已跳过。URI 已定义”是啥意思?
【中文标题】“INFO:TLD 已跳过。URI 已定义”是啥意思?【英文标题】:What does "INFO: TLD skipped. URI is already defined" mean?“INFO:TLD 已跳过。URI 已定义”是什么意思? 【发布时间】:2012-02-02 05:01:13 【问题描述】:在 Eclipse 中运行我的 JSF 2 应用程序时 我收到了几个 TLD 被跳过的信息日志,因为它已经定义如下:
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://www.springframework.org/tags/form is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://www.springframework.org/tags is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
我很想知道,这个日志是什么意思?
【问题讨论】:
请不要转发您的问题。 链接的重复帖子已被删除 【参考方案1】:这意味着您的 Web 应用的运行时类路径中有重复的 TLD 文件。由于 TLD 通常包含在库 JAR 文件中,这反过来意味着您的 Web 应用的运行时类路径中有重复的 JAR 文件。
假设您没有触及 appserver 的 /lib
文件夹或 JDK 的 /lib
文件夹,那么这些重复项位于 WAR 构建的 /WEB-INF/lib
文件夹中。清理它。
【讨论】:
【参考方案2】:规范要求的 URI 的优先级顺序是:
J2EE platform taglibs - Tomcat doesn't provide these
web.xml entries
JARS in WEB-INF/lib & TLDs under WEB-INF (equal priority)
Additional entries from the container
Tomcat 加载 tld 两次。
1、Tomcat启动时会加载tld,在tld文件中寻找监听器。
2,当第一个jsp文件被编译时,它会建立一个tld对的缓存。
1、加载tld查找tld文件中的监听器
当从 web.xml 加载时,它将 web.xml 中的 taglib-uri 和 tld 文件中的 uri 放入一个集合中。 从 WEB-INF 或 jar 加载时,uri 来自 tld 文件。
Tomcat 需要避免重复添加 tld 监听器,因此它会检查 uri 是否存在于集合中。如果 uri 已经存在,它会记录您发布的消息并跳过添加 tld 侦听器。
2、构建缓存
1) web.xml 条目,标签 uri 取自 web.xml
2) 扫描WEB-INF下的tld文件,标签uri取自tld文件
3) 扫描jar,标签uri取自tld文件。
如果存在uri aready,该条目将被忽略。
【讨论】:
【参考方案3】:这意味着例如,如果您使用 Tomcat 和 Maven(或其他服务器),则您发布了一个已经在服务器上找到的 JSTL 库,并且服务器确实会抱怨。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
在部署应用程序时(在 Tomcat 上),您会收到错误消息:
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
Mar 02, 2017 2:19:32 PM org.apache.catalina.startup.TaglibUriRule body
解决方案是使用标签 'scope' 和值 'provided',因为 Tomcat 已经附带了 JSTL(它仅适用于您的 IDE):
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
然后错误就会消失。
【讨论】:
以上是关于rocketmq控制台跳过堆积是啥意思的主要内容,如果未能解决你的问题,请参考以下文章