当前位置:   article > 正文

微服务:匹配系统

微服务:匹配系统

1.匹配逻辑


2.Websocket
是一种全双工通信方式,不仅客户端可以给服务器端发送请求,服务器端也可以给客户端发送消息。


3.ConcurrentHashMap
在Java中,ConcurrentHashMap 是一个线程安全的哈希表实现,它可以在多线程环境中提供高性能的并发访问。它使用分段锁(segmentation)技术来允许对映射表的多个部分进行并发更新,从而提高了并发性能。
好处是,多个线程可以并发地读取和更新这个映射表,而不需要额外的同步措施。这对于处理WebSocket连接非常有用,因为WebSocket连接通常是并发的,并且需要在多个线程之间共享状态信息。

未来会在WebSocketServer.java中,接收到输入的时候,调用这两个函数
也就是在蓝色的线程里面修改nextStepA和nextStepB的值,而在红色的线程里面,会读取这两个线程的值


在Java中,ReentrantLock 是 java.util.concurrent.locks 包下的一个类,它提供了一个可重入的互斥锁(即同一个线程可以多次获得同一个锁),是 java.util.concurrent 并发包中提供的一种锁机制。
4.SpringSecurity的ip白名单设置
bug缘由:由于springboot和springsecurity版本过高导致的WebSecurityConfigurerAdapter已弃用 而其中包含了hasIpAddress这个方法
询问了一下gpt给出了替代方案access表达式来对ip进行筛选,但是无效
最终找到了一套通过过滤器来对ip进行过滤筛选的方案

  1. import jakarta.servlet.*;
  2. import jakarta.servlet.http.HttpServletRequest;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.springframework.context.annotation.Configuration;
  5. import java.io.IOException;
  6. import java.util.Set;
  7. @Configuration
  8. @Slf4j
  9. public class IpAddressFilter implements Filter {
  10. private final static Set<String> ipWhiteList = Set.of(
  11. "127.0.0.1",
  12. "0:0:0:0:0:0:0:1"
  13. );
  14. @Override
  15. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
  16. HttpServletRequest req = (HttpServletRequest) request;
  17. if (!ipWhiteList.contains(req.getRemoteAddr())) {
  18. return;
  19. }
  20. chain.doFilter(request, response);
  21. }
  22. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/273999
推荐阅读
相关标签
  

闽ICP备14008679号