• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Java集群单体架构升级到集群架构一使用NGINX建立集群

武飞扬头像
DXD6789
帮助1

Java集群实战:单体架构升级到集群架构(二)实现session共享

Java集群实战:单体架构升级到集群架构(三)上传文件的共享

Java集群实战:单体架构升级到集群架构(四)使用REDIS分布式锁

Java集群实战:单体架构升级到集群架构(五)定时任务

Java集群实战:单体架构升级到集群架构(六)分布式缓存REDIS

对于大厂的IT技术人员来说,微服务架构是天天都在使用,滚瓜烂熟了。而对小厂的菜鸟程序员来说,我们天天做的都是CRUD,对我们来说集群、分布式、微服务也只是头脑中一个模糊的概念。我们写的大多是单体架构的系统,运行在一台服务器上,如果用户量增加了,服务器撑不住了,我们就加配置吧,反正阿里云腾讯云现在加配置也很容易。但是如果有一天(希望所有菜鸟都有这么一天),我们的用户数增加太快太多,使用最高配置的服务器还是撑不住,对我们来说这算不算是幸福的烦恼?――幸福的是老板,烦恼的却是我们。

这种情况下,我们想到了使用微服务,于我们开始学习spring cloud alibaba,就是不知道在我们学会之前,我们的服务器要崩溃多少次,就怕老板一生气把我们杀了祭天。所以说临时抱佛脚是不行的,学习要趁早!那么这时候,什么才是比较快的解决方法呢?我想可能就是使用集群架构。集群架构学起来相对容易,代码修改量也会少一些。

今天我们首先来建一个简单的集群,如下图所示:

学新通

总共三台电脑,一台安装NGINX,两台安装TOMCAT。这两个TOMCAT运行我们的单体应用程序,NGINX接受浏览器发来的请求,再把请求轮流转发给其中一台TOMCAT处理。如果您不理解这段话,也没关系,咱们开始动手操作,做完之后,你就明白了。没有三台电脑的同学,可以用虚拟机。要么就在一台电脑上操作也行,这时两个IP都要改成127.0.0.1

GitHub:  GitHub - Dengxd/JavaCluster  所有源码都在这里,GitHub经常连不上,要多刷新几次

安装NGINX

因为所有程序员都会用WINDOWS,而有部分程序员不会用LINUX,所以我选择了WINDOWS7来安装。

NGINX下载地址:nginx: download

学新通

Stable version是稳定版,选择这个版本。下载下来是一个文件nginx-1.22.1.zip,解压之后,如下图所示:

学新通

打开文件夹conf里面的nginx.conf文件,找到这几行:

  1.  
    server {
  2.  
    listen 80;
  3.  
    server_name localhost;
  4.  
     
  5.  
    #charset koi8-r;
  6.  
     
  7.  
    #access_log logs/host.access.log main;
  8.  
     
  9.  
    location / {
  10.  
    root html;
  11.  
    index index.html index.htm;
  12.  
    }

改成这样:

  1.  
    upstream mytomcat {
  2.  
    server 192.168.1.200:8000;
  3.  
    server 192.168.1.201:8001;
  4.  
    }
  5.  
    server {
  6.  
    listen 80;
  7.  
    server_name localhost;
  8.  
     
  9.  
    #charset koi8-r;
  10.  
     
  11.  
    #access_log logs/host.access.log main;
  12.  
     
  13.  
    location / {
  14.  
    proxy_pass http://mytomcat;
  15.  
    }
学新通

保存一下,NGINX就配置好了。

在这几行代码里

server 192.168.1.200:8000;

server 192.168.1.201:8001;

这两行就是我们两个TOMCAT的IP和端口,如果你要多加几个TOMCAT,直接多加几行就可以了。如果你没有三台电脑,只在一台电脑上操作,就把两个IP地址都改成127.0.0.1

注意事项:在生产环境,server_name  localhost; 这一行要把localhost改成您的域名

mytomcat其实就是给集群起个名字,可以按自己的习惯取名,这个名字会用在这一行:proxy_pass http://mytomcat;

改完之后要测试配置文件nginx.conf是否正确

使用nginx –t 命令进行测试:

学新通

如上图,出现“syntax is ok”,“test is successful”就说明测试成功,如果没出现这两行,就说明nginx.conf有错误,要修改错误直至测试成功。

写个简单的单体程序

这个程序使用Spring boot框架,这货自带了TOMCAT,省了不少麻烦。程序的功能是在网页上显示端口号,要么显示8000,要么显示8001

主要代码如下:

  1.  
    static String port;
  2.  
    public static void main(String[] args) throws Exception{
  3.  
    SpringApplication app = new SpringApplication(MainApplication.class);
  4.  
    Environment env = app.run(args).getEnvironment();
  5.  
    port=env.getProperty("server.port");//获取端口号
  6.  
    System.out.println(port);
  7.  
    }
  8.  
     
  9.  
    @RequestMapping("/")
  10.  
    @ResponseBody
  11.  
    public String test(HttpServletRequest request, HttpServletResponse response){
  12.  
    return port;//返回端口号
  13.  
    }

main方法在启动程序的时候获取端口号,test方法在用户访问时返回端口号

在两台业务服务器上运行程序

我们把程序打包,复制到两台Tomcat业务服务器上。

IP为182.168.1.200那台服务器用命令:java -jar ShowPort-1.0-SNAPSHOT.jar  --server.port=8000 启动程序。然后在服务器上用浏览器访问:http://localhost:8000/  ,如果网页显示8000,就说明程序正常:

学新通

IP为182.168.1.201那台服务器用命令:java -jar ShowPort-1.0-SNAPSHOT.jar  --server.port=8001 启动程序。然后在服务器上用浏览器访问:http://localhost:8001/  ,如果网页显示8001,就说明程序正常。

在NGINX服务器上启动NGINX

使用命令nginx启动服务:

学新通

注意:如果您想停止NGINX,不能直接关掉这个CMD窗口。您得再开一个CMD窗口,然后用命令nginx -s stop才能能关闭NGINX:

学新通

在NGINX服务器上测试集群

现在我们在NGINX那台服务器上启动浏览器,输入网址:http://localhost/   ,

可以看到网页显示8001 :

学新通

我们在浏览器里多开几个标签页,就会看到有的显示8000,有的显示8001

学新通

这样,我们的集群就配置成功了。下回我们来实现session共享。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgckicf
系列文章
更多 icon
同类精品
更多 icon
继续加载