Springboot 多实例负载均衡部署
一、测试代码:
-
控制层测试代码:
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"; } } }
本地方法测试:
- maven打好jar包,命名test.jar
二、单机多容器(docker + nginx)
-
打好的包放在一台linux服务器上:
/opt/springboot/test.jar
-
新建dockerFile文件,也放在同一个目录下:
/opt/springboot/dockerfile
FROM openjdk:8-jdk-alpine MAINTAINER lzf COPY *.jar /jar/test.jar # 正常服务启动 CMD ["java", "-Xms200m", "-Xmx200m", "-jar","/jar/test.jar"]
-
在服务器上部署两个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
-
-
配置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文章来源:https://www.toymoban.com/news/detail-421841.html
-
效果:
文章来源地址https://www.toymoban.com/news/detail-421841.html
到了这里,关于Springboot 多实例负载均衡部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!