设为首页 加入收藏

TOP

Springboot 多实例负载均衡部署
2023-07-25 21:30:32 】 浏览:30
Tags:Springboot 衡部署

Springboot 多实例负载均衡部署

一、测试代码:

  1. 控制层测试代码:

    import java.net.Inet4Address;
    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    @Controller
    @RequestMapping("/test")
    public class TestController {
    
        @GetMapping("")
        @ResponseBody
        public String test() {
            InetAddress localHost = null;
            try {
                // 返回服务器地址
                localHost = Inet4Address.getLocalHost();
                return localHost.getHostAddress();
            } catch (UnknownHostException e) {
                return "未知ip";
            }
        }
    }
    
    

    本地方法测试:

image

  1. maven打好jar包,命名test.jar

二、单机多容器(docker + nginx)

  1. 打好的包放在一台linux服务器上: /opt/springboot/test.jar

  2. 新建dockerFile文件,也放在同一个目录下: /opt/springboot/dockerfile

    FROM openjdk:8-jdk-alpine
    
    MAINTAINER lzf
    COPY *.jar /jar/test.jar
    
    # 正常服务启动
    CMD ["java", "-Xms200m", "-Xmx200m", "-jar","/jar/test.jar"]
    
  3. 在服务器上部署两个springboot容器。

    • 切换到 /opt/springboot/ 目录下,制作docker镜像 docker build -t test .

    • # 部署的时候指定network,可以方便用容器名互相访问
      docker network create my_network
      
      # 我的nginx是用docker部署的,也是在my_network下
      docker run -d --name test_1 --network my_network test
      docker run -d --name test_2 --network my_network test
      
  4. 配置nginx负载均衡

    配置nginx.conf文件:

        server {
            listen 80;
            location / {
                proxy_pass http://balance;
            }
        }
    
        upstream balance{  
        	# weight 代表权重,可以不设置。注意:想要禁用这个server,不能设置为0,会报错,可以设置为backup: server 172.19.0.3:8080 backup;
            server 172.19.0.3:8080 weight=1;
            server 172.19.0.4:8080 weight=5;
        
        	# 如果nginx和test_1和test_2都是在同一个network下,就能使用容器名进行访问
        	#server test_1:8080;
            #server test_2:8080;
        }
    
    #  用以下命令可以查看容器的ip
    #  docker inspect test_1 | grep IPAddress
    #  docker inspect test_2 | grep IPAddress
    
    

    改nginx配置记得重新加载: nginx -s reload

  5. 效果:
    image
    image

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java学习(1) 下一篇boot-admin整合flowable官方edito..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目