0


dubbo:dubbo+zookeeper整合nginx实现网关(四)

文章目录

0. 引言

我们之前讲解过dubbo+zookeeper实现服务调用和注册中心,但是还缺乏一个统一的入口,即网关服务。dubbo+zookeeper的模式更加适合的网关组件为nginx,所以今天我们也专门讲解使用nginx来作为dubbo的网关

1. nginx简介

首先针对nginx的学习我们早在nginx专栏就已经从零说明过,如果对于该组件的基础使用还未掌握的,建议大家可以先学习下nginx专栏
Nginx快速上手专栏

在本期文章中重点涉及其中如下几篇内容
Nginx应用场景、安装、部署及设置开机自启(一)

负载均衡upstream配置详解(四)

nginx各类转发、代理配置详解|location、proxy_pass参数详解(五)

2. 集成nginx

2.1 负载均衡实现

1、首先我们演示的项目还是基于前几篇文章的项目,我们在order-server增加一个接口

@Value("${server.port}")privateInteger port;@GetMapping("getUser")publicStringgetUser(){String userName = userService.getUserById(port);return userName +" getUser success";}

2、我们准备两个order-server,用于演示nginx的负载均衡转发

复制一份配置文件,文件名修改为application-8083.yaml,修改其中的端口为8083
在这里插入图片描述
3、idea中复制一份order-server的启动配置,重命名,然后在

active profiles

中书写8083(即application-xxx.yaml中的xxx)
在这里插入图片描述

在这里插入图片描述
4、启动两个order-server节点

5、在服务器上安装nginx服务,这里安装过程不再累述,参考上述nginx专栏文章

6、修改配置文件

vim /etc/nginx/conf.d/default.conf 

配置内容如下,可以看到定义了一个

upstream

,转发至两个order-server节点,如果要设置不同的负载均衡算法可以参考《负载均衡upstream配置详解(四》一文

注意定义的转发路径

proxy_pass http://order_server/;

,默认是有

/

的,表示绝对路径,匹配路径location中

order-server

会被消除

upstream order_server{
   server 192.168.244.1:8082;
   server 192.168.244.1:8083;
}

server {
    listen       80;
    server_name  localhost;
    charset utf-8;

    location / {
        root   /data/dist;
        index  index.html index.htm;
    }

    location /order-server/ {
       proxy_pass http://order_server/; # 通过别名实现负载均衡转发
       proxy_set_header HOST $host; # 代理过程中添加host头部信息,防止通过ip访问时域名解析不到,不能被server_name解析到
       proxy_http_version 1.1; # 指定http协议版本
       proxy_connect_timeout 3s; # 连接后台服务器的超时时间
       proxy_read_timeout 3s; # 从后台服务器读取数据的超时时间
       proxy_send_timeout 3s; # 向后台服务器发送数据的超时时间
    }
}

7、保存后,我们重启nginx

nginx -t
nginx -s reload

8、访问接口

http://[nginx ip]/order-server/getUser

在这里插入图片描述
在这里插入图片描述
多次访问可以发现8082,8083端口依次出现,这是因为nginx默认轮询算法,证明我们的配置生效了。

3. 源码

文中源码,可在https://gitee.com/wuhanxue/dubbo_wu_demo下载

4. 总结

如上我们即完成了一个基础版的nginx网关,如果要实现更多的网关功能,就是基于nginx自带功能或者插件进行拓展,这个就留给大家根据各自的业务需求进行探索了。

标签: dubbo zookeeper nginx

本文转载自: https://blog.csdn.net/qq_24950043/article/details/141425985
版权归原作者 wu@55555 所有, 如有侵权,请联系我们删除。

“dubbo:dubbo+zookeeper整合nginx实现网关(四)”的评论:

还没有评论