我已经在 java spring 框架中实现了 REST Web 服务。我使用 spring security OAuth2 来验证客户端。
我已将默认令牌存储AuthorizationServerTokenServices配置为。DefaultTokenServicesInMemoryTokenStore
现在我几乎没有疑问,例如内存中的令牌存储是否能够处理数千个访问令牌?对于大量客户端使用内存令牌是否更好?内存存储会影响服务器的性能吗?
正如这里提到的-
默认的 InMemoryTokenStore 对于单个服务器来说非常合适。
但我将在同一台服务器上运行多个这样的 REST Web 服务应用程序。
java spring spring-mvc spring-security spring-security-oauth2
我有超过 3 个 java 进程访问同一文件进行读写。每个进程都有多个线程,对文件的读写非常频繁(1秒10次左右)。
我用于java.nio.channels.FileLock进程间文件锁定。以及commonObj.wait() commonObj.notify()线程间同步。
我在此实施中面临的问题是 -
java.io.IOException: Resource deadlock avoided其中一个进程发生异常。我的问题是,
我已经为所有 java 进程编写了通用的读写器类。附上一样的。
package json_file_handler;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.nio.channels.OverlappingFileLockException;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.log4j.Logger;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JsonReader {
final static Logger logger = Logger.getLogger(JsonReader.class);
static final ReentrantLock relock = new ReentrantLock();
/**
* Read given file …Run Code Online (Sandbox Code Playgroud)java multithreading synchronization file-locking interprocess