1. 程式人生 > >Springboot實現Session共享及負載均衡

Springboot實現Session共享及負載均衡

1.準備工作

Redis用來實現Session共享,選擇3.x版本Redis下載點這裡

2.Session共享

pom.xml加入

        <dependency>  
           	<groupId>org.springframework.boot</groupId>  
           	<artifactId>spring-boot-starter-redis</artifactId>
          <version>1.4.6.RELEASE</version>  
        </dependency>
         <dependency>
    	 	<groupId>org.springframework.session</groupId>
    		<artifactId>spring-session-data-redis</artifactId>
	</dependency>
application.properties加入redis配置
########################################################
### Redis+Session
########################################################
spring.redis.database=0
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.timeout=0
spring.session.store-type=redis
建立RedisConfig類
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
@Configuration  
@EnableCaching
@EnableRedisHttpSession
public class RedisConfig{
}
啟動沒報錯的話,redis實現session共享就完成了。

如果報錯的話,可能是你redis伺服器版本太低,所以建議下載3.x以上。

3.Nginx負載均衡

解壓完開啟conf資料夾,更改nginx.conf配置。注意upstream後的名稱要和proxy_pass配置一樣

   upstream test {
        server localhost:8080;
        server localhost:8081;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #location / {
        #    root   html;
        #    index  index.html index.htm;
        #}
        location / {
            proxy_pass http://test;    
            proxy_set_header Host $host:$server_port;
        }
4. 執行

在8080埠執行專案,在8081埠執行專案

開啟Nginx.exe

輸入http://localhost,看兩個專案的後臺資訊,可以發現專案被輪詢訪問。