小编cod*_*try的帖子

Spring Security OAuth 2 内存令牌存储限制

我已经在 java spring 框架中实现了 REST Web 服务。我使用 spring security OAuth2 来验证客户端。

我已将默认令牌存储AuthorizationServerTokenServices配置为。DefaultTokenServicesInMemoryTokenStore

现在我几乎没有疑问,例如内存中的令牌存储是否能够处理数千个访问令牌?对于大量客户端使用内存令牌是否更好?内存存储会影响服务器的性能吗?

正如这里提到的-

默认的 InMemoryTokenStore 对于单个服务器来说非常合适。

但我将在同一台服务器上运行多个这样的 REST Web 服务应用程序。

java spring spring-mvc spring-security spring-security-oauth2

5
推荐指数
0
解决办法
3498
查看次数

Java文件多线程多进程加锁方式

我有超过 3 个 java 进程访问同一文件进行读写。每个进程都有多个线程,对文件的读写非常频繁(1秒10次左右)。

我用于java.nio.channels.FileLock进程间文件锁定。以及commonObj.wait() commonObj.notify()线程间同步。

我在此实施中面临的问题是 -

  1. java.io.IOException: Resource deadlock avoided其中一个进程发生异常。
  2. 进程的文件读取器线程之一获取空文件可能是因为其他某个线程或进程正在写入文件。

我的问题是,

  1. 如果线程在读取或写入完成后立即释放文件锁,那么为什么会出现问题 1?
  2. 如果文件在读取或写入之前被所有进程的每个线程锁定,那么为什么会出现 2 个问题?

我已经为所有 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

5
推荐指数
1
解决办法
2570
查看次数