gpt4 book ai didi

java - 将 JAX-WS CXF Web 服务请求方法调用限制为每个客户端 IP 一个请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:01 25 4
gpt4 key购买 nike

我有一个基于 CXF 的网络服务,使用单向方法说:服务.report()

在处理来自客户端的 report() 时,我想让来自同一客户端 IP 的另一个传入 report() 等待第一个请求被处理。从客户端来看,report() 是一个原子操作,对 report() 的连续调用应该按顺序处理。

我怎样才能最好地实现这个锁定机制?我是否需要实现每个客户端队列,或者是否有一种简单的方法可以实现这一点?

最佳答案

为此您不需要完整的队列。一个简单的对象同步应该可以工作

static ConcurrentMap syncMap = new ConcurrentHashMap();

public void report()
{
String clientIp = ...
syncMap.putIfAbsent(clientIp, new Object()); // just new Object is good enough to sync on
synchronized(syncMap.get(clientIp))
{
//do synchronized stuff.
}
}

关于java - 将 JAX-WS CXF Web 服务请求方法调用限制为每个客户端 IP 一个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11202424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com