1.nginx或者haproxy做的负载均衡,用nginx做的负载均衡可以添加ip_hash这个配置;用haproxy做的负载均衡可以用balance source这个配置,从而使用一个IP的请求发到同一个服务器;

  2.利用数据库同步session;

  3.利用cookie同步session数据,但是安全性差,http请求都需要带参增加了带宽消耗;

  4.Tomcat配置session共享;

  5利用session集群存放Redis;

  

 

 

 

  

 

 

  1. package com.zn.servlet;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.annotation.WebServlet;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import java.io.IOException;
  8. @WebServlet("/SessionIPServlet")
  9. public class SessionIPServlet extends HttpServlet {
  10. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  11. System.out.println("当前请求端口:"+request.getLocalPort());
  12. String action=request.getParameter("action");
  13. //向Session中存放一个数据
  14. if(action.equals("setSession")){
  15. request.getSession().setAttribute("username","zhangsan");
  16. }else if(action.equals("getSession")){
  17. response.getWriter().write((String)request.getSession().getAttribute("username"));
  18. }
  19. }
  20. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  21. doPost(request,response);
  22. }
  23. }

  分别访问8080和8081

  

 

 

   

 

 

  

 

 

  

 

 

  访问:http://www.znzn.com/SessionIPServlet?action=setSession 

  获取:http://www.znzn.com/SessionIPServlet?action=getSession

  

 

 

     

 

 

   

 

 

  

  

  

  1. <dependency>
  2. <!-- spring-boot-starter-web是为我们提供了包括mvc,aop等需要的一些jar -->
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. <!-- 因为我们已经配置了 parent 中的version 所以这里不需要指定version了 -->
  6. </dependency>
  7.  
  8. <!--spring boot 与redis应用基本环境配置 -->
  9. <dependency>
  10. <groupId>org.springframework.boot</groupId>
  11. <artifactId>spring-boot-starter-redis</artifactId>
  12. </dependency> <!--spring session 与redis应用基本环境配置,需要开启redis后才可以使用,不然启动Spring boot会报错 -->
  13. <dependency>
  14. <groupId>org.springframework.session</groupId>
  15. <artifactId>spring-session-data-redis</artifactId>
  16. </dependency>
  1. package com.zn.controller;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;

    import javax.servlet.http.HttpServletRequest;

    @RestController
    public class MyController {
    //存放Session值
    @RequestMapping("/setSession")
    public String setSession(HttpServletRequest request){
    request.getSession().setAttribute("username","zhangsan");
    return "success";
    }

    //获取Session值
    @RequestMapping("/getSession")
    public String getSession(HttpServletRequest request){
    return (String)request.getSession().getAttribute("username");
    }
    }

  

  1. package com.zn;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;

    /**
    * Hello world!
    *
    */
    @SpringBootApplication
    public class App
    {
    public static void main( String[] args )
    {
    SpringApplication.run(App.class,args);
    }
    }

  存入数据是已将数据存放到redis缓存中

  

 

 

   

 

 

   

 

 

  

 

 

 

 

 

   

 

  

posted on
2020-02-12 15:49 
关耳er 
阅读(
评论(
编辑 
收藏

版权声明:本文为Zzzzn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Zzzzn/p/12299333.html