草庐IT

消息Nginx

全部标签

在 Java 中使用 redis 的消息队列服务

前言关于redis我们前面已经讨论过了缓存、分布式锁、分布式唯一标识、LBS服务的用法,这里我们来谈谈利用redis来实现一个消息服务。典型的消息服务是一个生产者和消费者模式的服务。一般是有生产者产生消息,将消息发送到队列中。而消息的消费者则监听消息,对消息进行处理。有很多非常优秀的消息队列服务的产品。例如RabbitMQ、RocketMQ、Kafka等。这些产品都具备非常高级的功能。可靠性、扩展性都非常的好。但是redis自身也能够很简单的实现消息队列的生产者和消费者模式。本文简单介绍一下在Java下是如何实现的。相关命令介绍参考redis官网redis和pubsub模式相关的命令如下。PU

java - 是否可以将外部枚举(外部消息定义)与 Protocol Buffer 一起使用?

我需要在PB消息定义之外存储枚举。有可能吗?怎么办? 最佳答案 这是可能的。看thisthread获取更多信息。我喜欢在单独的.proto文件中定义枚举的建议。喜欢枚举.protoenumA{FIRST=1;SECOND=2;}enumB{...}其他.protoimport"enums.proto";messageSOMEMESSAGE{requiredAmyenum=1;} 关于java-是否可以将外部枚举(外部消息定义)与ProtocolBuffer一起使用?,我们在StackOv

java - JMS 队列上多线程消息处理的最佳实践

我目前正在将JMS支持添加到类似应用程序服务器的框架中。JMS将由HornetQ(独立代理,服务器类路径上的hornetqjar)实现,但既没有JBoss,也没有spring,也没有其他任何可以提供MDB的东西。下一步是将消息监听器添加到xa队列,以允许并行处理传入消息。有些消息会启动长时间运行的任务,因此基本思想是从onMessage方法生成工作线程。在漫长的互联网旅程中,我遇到了thisdiscussion,其中一位参与者提到,他不会这样做,而是使用一个额外的内部队列来完成任务:然后(单线程)消息监听器将简单地从入站队列中获取消息并为内部队列创建新消息,其中在该内部队列的另一端,一

java - BigDecimal 在 soap 消息中有科学记数法

我的网络服务出现了奇怪的问题。我有对象OrderPosition,它有一个价格(xsd:decimalwithfractionDigits=9)。ApacheCXF为我生成代理类,这个字段是BigDecimal。当我想发送大于10000000.00000的值时,soap消息中的此字段已使用科学计数法(例如1.1423E+7)。我如何强制该值未以科学记数法发送。 最佳答案 这是可以做到的一种方法。BigDecimal有一个将输入数字作为字符串的构造函数。这在使用时会在调用其.toString()方法时保留输入格式。例如BigDecim

java - RabbitMQ - Apache Camel Reading Messages 如何处理失败的消息

我有以下PHP应用程序。将用户注册发布到消息队列。Java应用程序从该队列中读取并导入它。希望下图能够描述它。我只处理Java方面的事情。json消息已经存在于队列中。路由(Java消费端)。@ComponentpublicclassSignUpRouting{errorHandler(deadLetterChannel("rabbitmq://signUpDeadLetter.exchange?username=etc..").useOriginalMessage());from("rabbitmq://phpSignUp.exchange?username=etc....").ro

java - Apache Storm Bolt 任务在一段时间后未收到消息

我们有一个Storm拓扑,其中配置了一个spout和两个bolts。Spout不断地从数据库中查询数据并将元组发送到第一个bolt进行一些处理。第一个bolt进行一些处理并将元组发送到第二个bolt,第二个bolt调用第三方网络服务并发送数据。所以,一段时间后发生了什么,最后一个bolt没有得到任何元组,如果我们重新启动拓扑它工作正常。这里只有最后一个bolt有问题。其他spout和firstbolt运行良好,我没有使用acking框架。在这种情况下,我只配置了一个worker`。TopologyBuilderbuilder=newTopologyBuilder();builder.s

java - 如何使用 SAX XML Schema Validator 的验证消息进行内部化?

我正在使用此代码针对XSD验证XML:SchemaFactoryfactory=SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");Schemaschema=factory.newSchema(xmlSchema);Validatorvalidator=schema.newValidator();Sourcesource=newStreamSource(myXmlFile);try{validator.validate(source);returnnull;}catch(SAXExceptionex){String

java - 为什么 Kafka Direct Stream 会为每条消息创建一个新的解码器?

我有一个用Java编写并使用Spark2.1的Spark流应用程序。我正在使用KafkaUtils.createDirectStream来读取来自Kafka的消息。我正在为kafka消息使用kryo编码器/解码器。我在Kafkaproperties->key.deserializer,value.deserializer,key.serializer,value.deserializer中指定了这个当Spark在微批中拉取消息时,使用kryo解码器成功解码消息。但是我注意到Spark执行程序创建了一个新的kryo解码器实例,用于解码从kafka读取的每条消息。我通过将日志放入解码器构造

java - 使用 JAX-WS 构建大型 MTOM/XOP 消息

我对将MTOM/XOP与JAX-WS结合使用有疑问。我正在编写一个发送大量二进制数据的网络服务。客户端请求多个文件,服务器在响应中返回文件。我能够让它正确构建响应,从而正确实现XOP,但我遇到了与内存相关的问题,因为它在发送之前将整个响应存储在内存中。此Web服务发送的文件可能非常大(例如,千兆字节大),因此无法将响应存储在内存中。ThisOraclewebsite(以及thisone)似乎解决了这个问题,但我就是不明白。我认为他们使用DataHandler对象来流式传输请求/响应,但我不知道他们是如何实例化它的。我正在使用wsimport从现有的WSDL生成我的JAX-WS类文件。我

java - 使用 Spring 本地化异常消息

我想使用Spring本地化从POJO类抛出的异常消息。我有一个SpringMVC应用程序,我可以通过它添加书籍。如果添加的书名为空,则实现类将抛出异常。我想本地化这个。我知道我可以在JSP页面中使用localeResolvers,而且我已经这样做了。我可以利用它来获取POJO中的本地化错误消息吗?如果是这样,我如何将在Cookie/Session上设置的语言环境解析器(Cookie或Session)或语言环境注入(inject)POJO类?addBook方法抛出异常publicvoidaddBook(IBookbook)throwsException{if(book.getTitle(