Spring Integration TCP-在发送数据前与信息握手
我正在使用@messaginggateway将数据发送到服务器.我为我的出站网关配置了一个AbstractClientConnectionFactory和@serviceactivator. 为了将数据发送到我的服务器,我需要在启动连接时发送握手消息.如果服务器的响应是我期望握手的响应,则我发送有意义的数据.我的最初解决方案是 if (gateway.handshake(HANDSHAKE).equals(HANDSHAKE_RESPONSE)) gateway.sendData(data); 当我扩大规模时,这不是很好,因为我已经通过TCP加倍了电话,因为我只需要在连接启动时发送握手,而不是每次.另外,我计划保持连接的活力. 因此,在连接启动时,我该如何实现此自定义握手? @Bean public AbstractClientConnectionFactory clientCF() { TcpNetClientConnectionFactory t
16 2024-04-23
编程技术问答社区
如何使用 Spring 集成在 TCP 连接上实现保持连接状态?
我有一个使用Spring Integration TCP构建的TCP客户端,服务器支持Alive Alive消息(Ping/Pong样式).连接是使用CachingClientConnectionFactory配置的,我想利用此服务器功能.这是我的bean配置: private static final int SERIALIZER_HEADER_SIZE = 2; /** * Serializer used by connection factory to send and receive messages */ @Bean public ByteArrayLengthHeaderSerializer byteArrayLengthHeaderSerializer() { return new ByteArrayLengthHeaderSerializer(SERIALIZER_HEADER_SIZE); } @Bean public AbstractClient
30 2024-04-23
编程技术问答社区
使用 spring-integration 创建的 Socket 要设置哪些超时?
我有两个bean创建了与服务器的客户端套接字连接:AbstractClientConnectionFactory和TcpOutboundGateway. 服务器提供1分钟的超时. 问题:我必须在bean上设置哪个超时,以便Spring/Java不会在服务器超时之前终止连接? 可用以下属性: factory.setSoTimeout(); gateway.setRequestTimeout(); gateway.setRemoteTimeout(); 从客户的角度来看,哪个超时是正确的?还是我应该将它们全部设置为等于60000L? 我在问,因为我现在只是在使用factory.setSoTimeout(60000L),并且在10秒后获得套接字超时.所以也许我必须另外设置网关超时? 我还发现gateway.setRemoteTimeout(60000L)仅在设置时才能防止超时.因此,也设置此值可能是正确的(尽管我不明白为什么必须配置两次超时). 仍
22 2024-04-23
编程技术问答社区
在 Spring 集成中,如何捕捉不同的异常?
在春季集成中,我有一个简单的TCP客户端管道:网关,TCP出站网关服务激活器加上错误通道.在TCP - 连接基属性中,有一个简单的拦截器.错误的通道非常简单,我用此过滤器实现了TCP连接 - 事件输入通道 - 通道 - 渠道 - 渠道: org.springframework.integration.ip.tcp.connection.tcpconnectionexceptionevent. 所以我的错误处理程序非常简单,看起来像这样: public class TcpErrorHandler { public void onException(){ System.out.println("Exception!!! "); } } 它有效,因为当我有一个插座关闭异常(服务器端我关闭连接)时,应用程序写入"异常!!!"在控制台上,但是当我有连接超时的例外时,它行不通. 我的问题是:我如何为我获得所有最相关的例外: Runtime
56 2024-04-23
编程技术问答社区
SFTP 集成 如何让轮询器定期获取文件?
我想定期调用downloadfiles()方法,该方法从远程服务器的子目录中下载文件,并将其本地放在具有相同名称的文件夹中. 我认为这个民意调查员可以确定这一点,但我相信我不完全理解投票程序的概念. 这是我的完整代码: sftpoundboundgateway-context.xml
28 2024-04-22
编程技术问答社区
Spring Integration: 消除设置 Bean 的重复代码
对于我的SFTP客户端项目,我正在使用Spring Integration.我们有不同的客户端,必须连接到不同的SFTP服务器,但是,所有逻辑都是相同的,因此我将它们抽出为AbstractSftPendPoint.每个特定于客户端的类启动getClientId(),该clastsftpendpoint使用以获取特定于客户端的详细信息. 但是,所有客户端的整个逻辑都是相同的,但是我仍然必须为每个客户实现特定的类.这主要是因为我们需要每个客户的单独的" Messageource". 我如何摆脱此重复? public class SFTPEndPointForClientAAAA extends AbstractSFTPEndPoint { public String getClientId(){ return "clientAAAA"; } @Bean(name = "channelForClientAAAA") publi
12 2024-04-22
编程技术问答社区
带有多租户的Spring Batch
我们如何将春季批处理作业定义为与多个租户有关? 我已经设置了每晚针对一个数据库架构的顺序运行一系列作业.当前的所有作业目前从位置并插入到数据库中.批处理配置是非常基本的,我在其中定义了数据源,事务管理器和映射工作重新定位.我的工作将指向此存储库和交易管理器.另外,我目前正在数据库中持续存在批处理数据信息. 我的新要求是能够针对多个租户运行相同的作业(按顺序执行).每个租户数据都可以在同一数据库服务器中使用,但是不同的模式甚至不同的数据库服务器.我的问题是 1)我们是否将所有租户的特定元数据信息存储在一个通用数据库中或每个租户数据库中应该有自己的? 2)我的理解是,我们需要每个租户的数据源,以便该租户的特定作业可以访问数据库以存储从文件中读取的数据. Spring Batch存储库在执行该租户的作业时是否还应指向当前的数据源? 3)我们计划启动所有租户[工作]平行的意思,这意味着Job1可以同时为所有租户运行.目前,我仍然不确定如何管理这些租户与其他数据源相关
10 2024-03-29
编程技术问答社区
追查Spring Azure qPID JMS代码中的内存泄漏
我试图追踪和识别我们非常小而简单的春季启动应用中内存泄漏的根本原因. 它使用以下: - 春季靴2.2.4 - Azure-ServiceBus-JMS-Spring-boot-starter 2.2.1 -MSSQL 功能: 该应用仅派遣Azure ServiceBus队列并存储数据并将数据发送到其他目的地. 这是一个小应用程序,因此尽管我通过XMX选项将其最多可容纳256兆,但它可以轻松地从64兆内的内存开始.重要的一点是,队列是使用弹簧默认交易模式与专用JMSTRANSACTIONMANAGER一起派遣的,JMSTRANSACTIONMANAGER实际上是ChainedTransactionManager的内部TM,以及DBTM和其他出站JMS TM.两个JMS ConnectionFactory对象都是作为CachingConnectionFactory创建的. 行为: 启动应用程序后,似乎还可以.没有流量,因此我可以在日志中看到它正在打开交易并在选中队列时
12 2024-03-26
编程技术问答社区
如何在多个线程中执行Spring集成流程,以并行地消耗更多的Amazon SQS队列消息?
需要帮助 我需要创建并行执行的多个SQS队列消费者,但我不知道如何使用Sprint Integration 实现此目标 我有以下架构 带有200k消息的Amazon SQS队列 一个带有5个EC2实例的亚马逊堆栈,每个实例都使用tomcat服务器运行带有弹簧集成流的弹簧启动应用程序,该应用程序使用SQS-MESSAGE-MESSAGE-MESSAGE-MESSAGE-MESSAGE-CHANNEL-ADAPTER从Spring-Integration-Aws( 并将该消息发布给具有1秒钟的平均响应的休息服务(我无法修改REST服务是一个约束,但我可以并行发送消息) sqs队列 - > stack(5个tomcat实例) - > REST服务 约束 Amazon SQS允许客户端在批处理中读取消息,最多可以通过请求读取10条消息,但是我可以有多个客户端并行消费更多消息. 在Amazon SQS中,需要手动删除消息,这是使用Spring Inte
14 2024-03-22
编程技术问答社区
Spring Integration Java DSL | 动态设置RecepientListRouter接收者?
我有一种需要执行多个任务的方法. @Bean public IntegrationFlow startJobTask() { return IntegrationFlows.from("TaskRoutingChannel") .handle("jobService", "executeTasks") .routeToRecipients(r -> r .recipient("testTaskChannel") .recipient("test2TaskChannel")) .get(); } @Bean ExecutorChannel testTaskChannel(){ return new ExecutorChannel(this.getAsyncExecutor()); } @Bean ExecutorChannel tes
16 2024-03-18
编程技术问答社区
春天-整合。QueueChannel
简短摘要: 我想将消息发送到队列,然后使多个线程处理此消息.该应用程序应仅将消息异步发送到网关,但在队列已满时应被阻止.我也想将交付给队列多线程.我的问题是我的队列永远不会阻止并传达更多消息,而其实际大小为 解决方案 我不确定您的意思是"不阻止".这对我来说很好... @SpringBootApplication public class So46973604Application { private final Logger LOGGER = LoggerFactory.getLogger(So46973604Application.class); public static void main(String[] args) { SpringApplication.run(So46973604Application.class, args).close(); } @Bean ApplicationRunn
8 2024-03-18
编程技术问答社区
如何在spring integration中设置REQUEST HEADER
我们有一个ASP页面,该页面读取一些信息表格请求: varLogon = Request.ServerVariables("HTTP_logon") 如果我们想使用Spring Integration将某些内容发布到ASP页面,我们将无法将HTTP_logon传递给页面, 这不起作用 有什么想法,我们如何设置请求标题信息?
12 2024-03-09
编程技术问答社区
在spring integration中把json转换为对象数组
我们正在以JSON格式返回一个从服务(HTTP出站网关)返回一系列对象,我们需要将其序列化回到对象/Pojos的数组中.首先,我们尝试通过将XML配置设置为 来简单地将POJO序列化,而无需任何数组列表 并使变压器和HTTP出站网关都返回同一对象.但是,在将其转换为一系列" ApplicationTestDomain" Pojos之后,我们在堆栈跟踪中提到了错误 "No converter found capable of converting from type java.util.ArrayList to type com.
42 2024-03-04
编程技术问答社区
从Kafka消费失败 迭代器处于失败状态
我在消费卡夫卡的消息时会得到异常. org.springframework.messaging.MessagingException: Consuming from Kafka failed; nested exception is java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Iterator is in failed state 我在应用程序上下文中有一个消费者,带有一个出站适配器. 应用程序上下文中的消费者配置
应用程序的运行时异常没有被发送到errorChannel或ServiceActivator无法监听errorChannel。
使用@StreamListener聆听KAFKA主题后,在RuntimeException,全局ERRONANNEL或主题特定的ERRORCHANNEL(topic.group.errors)未收到任何错误消息. @serviceactivator没有收到任何东西. pom依赖性:greenwich.release org.springframework.cloud spring-cloud-stream org.springframework.cloud spring-cloud-stream-schema
我需要当前易于遵循的说明,以便从XML配置spring integration kafka。
Spring Integration Kafka模型已经进行了充分的变化,并简化了现有的演示,手册和说明不再起作用.当前的官方演示都是围绕注释构建的,这些注释很酷,但在很大程度上不可读,并且不适用于我的架构,在该体系结构中,在与Java代码分开部署和管理工作的架构. 是否有 当前 (2019)配置教程? 供参考,这是我的POM的摘录,详细介绍了我正在使用的版本: org.springframework.integration spring-integration-core 5.1.3.RELEASE org.
12 2024-02-28
编程技术问答社区