首页 > 其他分享 >Springboot 多实例负载均衡部署

Springboot 多实例负载均衡部署

时间:2023-04-22 18:22:57浏览次数:39  
标签:负载 Springboot jar server nginx 实例 test docker network

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

标签:负载,Springboot,jar,server,nginx,实例,test,docker,network
From: https://www.cnblogs.com/Aeons/p/17343653.html

相关文章

  • SpringBoot+Mybatis这个bug估计连作为神仙的您也无法解决--》Invalid bound statement
    最近开发一个调查单的应用系统,加班加点为了解决几个bug,但是最近两天卡在一个bug上。作为一头牛,不能轻易放弃,向困难挑战是牛的精神。1、Invalidbound问题展示首先,我针对题型QuestionType功能,写了五个子功能:增加题型,删除题型,修改题型,查询单条题型,模糊查询多条记录;还写了问题、调查......
  • SpringBoot文件上传
    application.yml配置spring:#文件上传配置servlet:multipart:max-file-size:10MBmax-request-size:10MBweb:resources:static-locations:/upload/代码packagecom.haoyang.Controller;importorg.springframework.web.bind.a......
  • SpringBoot+Mybatis-Plus+EasyExcel
    首先建立一个springboot项目,导入依赖<!--MyBatisPlus依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version......
  • 阿里云1+X云计算开发与运维实战—— 使用负载均衡实现https与http的混合访问
    实验概述    互联网巨头雅虎官方对外发布消息,承认在2014年的一次黑客袭击中,至少5亿用户的数据信息遭窃。此次事件让我们再次意识到网站安全的重要性,网站加密防护的必要性。我们可以使用HTTPS协议对网站进行全站加密,但是,大部分用户已经习惯直接输入域名(即使用 HTTP 协议)访问网......
  • 阿里云1+X云计算开发与运维实战——负载均衡使用初体验
    本实验通过使用阿里云负载均衡SLB以及对负载均衡SLB后端服务器ECS的权重进行修改,可以快速解决上述的问题。实验目标 完成此实验后,可以掌握的能力有:配置负载均衡SLB的监听规则,并将ECS实例部署到SLB后端;通过设置负载均衡SLB后端服务器ECS的权重值,分配用户访问后端ECS实例的比例。背景......
  • [tarjan强连通分量算法] 目的,图解,思路,伪代码,实例
    强连通分量算法(Tarjan'sStronglyConnectedComponentAlgorithm)利用深度优先算法找到一个非强连通的有向图中的所有强连通子图。无向图可以被认为是同时具备u->v和v->u的图。一些概念强连通:在有向图中,任意点u与v之间存在有来回两个方向的通路,类似存在一个环;强连通图:图......
  • c++在嵌入类中定义上层类的实例
    问题是这样的,嵌入类挺好的,可以有效表明类之间的从属关系,我们常常这样classA{public:classAttr{private:A&mA;};};这样是没有问题的,因为A此时还没有完全定义,使用引用或指针都是可以的。但是有些时候,如果A对象是一个临时对象,但我们想让Attr对象可以独......
  • 为什么匿名内部类可以实例化并实现抽象方法?lambda表达式是简化了匿名内部类的实现过程
    为什么匿名内部类可以实例化并实现抽象方法?在Java中,接口是一种特殊的抽象类型,它只定义了一个或多个抽象方法。接口不能被实例化,但是我们可以使用匿名内部类来实现接口并创建一个具体的对象。匿名内部类是一种没有名字的局部内部类,它可以在定义的同时创建一个实例对象。因此,当我......
  • springboot+bootstraptable
    springboot+bootstraptable项目采用的是springboot+bootstraptable搭建的demo  https://blog.csdn.net/weixin_43373818/article/details/114714016基础的增删改查已经实现html页面<!DOCTYPEhtml><htmllang="zh-CN"xmlns:th="http://www.thymeleaf.org"><......
  • Springboot 使用nacos鉴权的简单步骤
    Springboot使用nacos鉴权的简单步骤背景前端时间nacos爆出了漏洞.因为他的默认token固定,容易被利用.具体的问题为:QVD-2023-6271漏洞描述:开源服务管理平台Nacos中存在身份认证绕过漏洞,在默认配置下未token.secret.key进行修改,导致远程攻击者可以绕过密钥认证进入......