概述

Nginx能够实现HTTP、HTTPS协议的负载均衡,也能够实现TCP协议的负载均衡。那么,问题来了,可不可以通过Nginx实现Apache Doris数据库的负载均衡呢?答案是:可以。接下来,就让我们一起探讨下如何使用Nginx实现Apache Doris的负载均衡。

环境准备

注意:使用Nginx实现Apache Doris数据库的负载均衡,前提是要搭建Apache Doris的环境,Apache Doris FE的IP和端口分别如下所示, 这里我是用一个FE来做演示的,多个FE只需要在配置里添加多个FE的IP地址和端口即可

IP: 172.31.7.119

端口: 9030

通过Nginx访问MySQL的Apache Doris和端口如下所示。

IP : 172.31.7.119

端口:6030

安装依赖

sudo apt-get install build-essential

sudo apt-get install libpcre3 libpcre3-dev

sudo apt-get install zlib1g-dev

sudo apt-get install openssl libssl-dev

安装Nginx

sudo wget http://nginx.org/download/nginx-1.18.0.tar.gz

sudo tar zxvf nginx-1.18.0.tar.gz

cd nginx-1.18.0

sudo ./configure --prefix=/usr/local/nginx --with-stream --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module

sudo make && make install

配置反向代理

我这里是新建了一个配置文件

vim /usr/local/nginx/conf/default.conf

然后再里面加上下面的内容

events {

worker_connections 1024;

}

stream {

upstream mysqld {

hash $remote_addr consistent;

server 172.31.7.119:9030 weight=1 max_fails=2 fail_timeout=60s;

##注意这里如果是多个FE,加载这里就行了

}

###这里是配置代理的端口,超时时间等

server {

listen 6030;

proxy_connect_timeout 30s;

proxy_timeout 30s;

proxy_pass mysqld;

}

}

启动Nginx

指定配置文件启动

cd /usr/local/nginx

/usr/local/nginx/sbin/nginx -c conf.d/default.conf

验证

mysql -uroot -P6030 -h172.31.7.119

参数解释:

-u 指定Doris用户名

-p 指定Doris密码,我这里密码是空,所以没有

-h 指定Nginx代理服务器IP

-P 指定端口

mysql -uroot -P6030 -h172.31.7.119

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 13

Server version: 5.1.0 Doris version 0.15.1-rc09-Unknown

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| test |

+--------------------+

2 rows in set (0.00 sec)

mysql> use test;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;

+------------------+

| Tables_in_test |

+------------------+

| dwd_product_live |

+------------------+

1 row in set (0.00 sec)

mysql> desc dwd_product_live;

+-----------------+---------------+------+-------+---------+---------+

| Field | Type | Null | Key | Default | Extra |

+-----------------+---------------+------+-------+---------+---------+

| dt | DATE | Yes | true | NULL | |

| proId | BIGINT | Yes | true | NULL | |

| authorId | BIGINT | Yes | true | NULL | |

| roomId | BIGINT | Yes | true | NULL | |

| proTitle | VARCHAR(1024) | Yes | false | NULL | REPLACE |

| proLogo | VARCHAR(1024) | Yes | false | NULL | REPLACE |

| shopId | BIGINT | Yes | false | NULL | REPLACE |

| shopTitle | VARCHAR(1024) | Yes | false | NULL | REPLACE |

| profrom | INT | Yes | false | NULL | REPLACE |

| proCategory | BIGINT | Yes | false | NULL | REPLACE |

| proPrice | DECIMAL(18,2) | Yes | false | NULL | REPLACE |

| couponPrice | DECIMAL(18,2) | Yes | false | NULL | REPLACE |

| livePrice | DECIMAL(18,2) | Yes | false | NULL | REPLACE |

| volume | BIGINT | Yes | false | NULL | REPLACE |

| addedTime | BIGINT | Yes | false | NULL | REPLACE |

| offTimeUnix | BIGINT | Yes | false | NULL | REPLACE |

| offTime | BIGINT | Yes | false | NULL | REPLACE |

| createTime | BIGINT | Yes | false | NULL | REPLACE |

| createTimeUnix | BIGINT | Yes | false | NULL | REPLACE |

| amount | DECIMAL(18,2) | Yes | false | NULL | REPLACE |

| views | BIGINT | Yes | false | NULL | REPLACE |

| commissionPrice | DECIMAL(18,2) | Yes | false | NULL | REPLACE |

| proCostPrice | DECIMAL(18,2) | Yes | false | NULL | REPLACE |

| proCode | VARCHAR(1024) | Yes | false | NULL | REPLACE |

| proStatus | INT | Yes | false | NULL | REPLACE |

| status | INT | Yes | false | NULL | REPLACE |

| maxPrice | DECIMAL(18,2) | Yes | false | NULL | REPLACE |

| liveView | BIGINT | Yes | false | NULL | REPLACE |

| firstCategory | BIGINT | Yes | false | NULL | REPLACE |

| secondCategory | BIGINT | Yes | false | NULL | REPLACE |

| thirdCategory | BIGINT | Yes | false | NULL | REPLACE |

| fourCategory | BIGINT | Yes | false | NULL | REPLACE |

| minPrice | DECIMAL(18,2) | Yes | false | NULL | REPLACE |

| liveVolume | BIGINT | Yes | false | NULL | REPLACE |

| liveClick | BIGINT | Yes | false | NULL | REPLACE |

| extensionId | VARCHAR(128) | Yes | false | NULL | REPLACE |

| beginTime | BIGINT | Yes | false | NULL | REPLACE |

| roomTitle | TEXT | Yes | false | NULL | REPLACE |

| beginTimeUnix | BIGINT | Yes | false | NULL | REPLACE |

| nickname | TEXT | Yes | false | NULL | REPLACE |

+-----------------+---------------+------+-------+---------+---------+

40 rows in set (0.06 sec)

通过Nginx TCP反向代理实现Apache Doris负载均衡的更多相关文章

  1. linux下nginx【反向代理】配置【负载均衡】配置

    nginx 可以配置多个端口: 1.10088端口 配置反向代理,消除跨域问题. 2.10087端口 配置ip_hash模式的负载均衡,ip_hash可以绕开解决session共享的问题. nginx ...

  2. 简易nginx TCP反向代理设置

    nginx从1.9.0开始支持TCP反向代理,之前只支持HTTP.这是我的系统示意图: 为何需要? 为什么需要反向代理?主要是: 负载均衡 方便管控 比如我现在要更新后端服务器,如果不用负载均衡的话, ...

  3. .net core 跨平台开发 微服务架构 基于Nginx反向代理 服务集群负载均衡

    1.概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客 ...

  4. nginx之TCP反向代理

    实现Nginx tcp负载均衡 Nginx在1.9.0版本开始支持tcp模式的负载均衡,在1.9.13版本开始支持udp协议的负载,udp主要用于DNS的域名解析,其配置方式和指令和http 代理类似 ...

  5. Nginx (二) Nginx的反向代理负载均衡以及日志切割

    Nginx是一个高并发,高性能的服务器,可以进行反向代理以及网站的负载均衡.这些功能的运用都在配置文件中,也就是Nginx安装目录下的conf/nginx.conf. nginx.conf 1. 先来 ...

  6. nginx 反向代理 与 Apache backend的配置联合配置

    nginx 反向代理 与 Apache backend的配置联合配置: 说明: nginx 将http映射到Apache上的特定子目录. 配置方法步骤: 1.  设置域名, 子域名映射到指定服务器ip ...

  7. Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)

    在 nginx 中,proxy 用来实现反向代理,upstream 用来实现负载均衡. 例如有两台服务器,nginx 服务器作为代理服务器,执行 .html 文件,apache 服务器上执行 .php ...

  8. 【nginx网站性能优化篇(2)】反向代理实现Apache与Nginx的动静分离(LNMPA)

    为什么要使用反向代理 具体请参考这篇博文:[Linux常识篇(1)]所谓的正向代理与反向代理 在虚拟机上配置反向代理的步骤 首先假设你已经假设好了LNMP架构了,这时我们还要安装Apache和php, ...

  9. nginx启用TCP反向代理日志配置

    Nginx使用TCP反向代理日志配置不同于http 修改nginx配置文档/usr/local/nginx/conf/nginx.conf 设置日志格式 stream { log_format pro ...

随机推荐

  1. python的内存回收机制

          变量相当于门牌号,当门牌没有了,即函数的引用都没有调用了,内存的数据就会被清除掉. python内有个定时器,定期的会刷新,如果发现内存中数据被引用了,就会被回收,这个就是内存的回收机制 ...

  2. java concurrent 并发多线程

    Concurrent 包结构 ■ Concurrent 包整体类图 ■ Concurrent包实现机制 综述: 在整个并发包设计上,Doug Lea大师采用了3.1 Concurrent包整体架构的三 ...

  3. SpringAOP 失效解决方案、Spring事务失效

    SpringAOP 失效解决方案 SpringAOP是基于代理来对目标方法进行增强,但是有的时候又会出现"增强无效"的情况,比如在@Transactional下的某类中的方法内调用 ...

  4. 如何在 Spring Boot 中禁用 Actuator 端点安全性?

    默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR 角色的用户才能访问它们.安全性是使用标准的 HttpServletRequest.isUserInRole 方法实施的. ...

  5. Java 中的编译期常量是什么?使用它又什么风险?

    公共静态不可变(public static final )变量也就是我们所说的编译期常量,这里 的 public 可选的.实际上这些变量在编译时会被替换掉,因为编译器知道这些 变量的值,并且知道这些变 ...

  6. Qt的.pro文件格式解析

    Qt的.pro文件格式解析 在Qt中用qmake生成makefile文件,它是由.pro文件生成而来的,.pro文件的具体格式语法如下: 1.注释 .pro文件中注释采用#号,从"#&quo ...

  7. swagger的作用和配置使用

    纯API项目中 引入swagger可以生成可视化的API接口页面     引入包 nuget包: Swashbuckle.AspNetCore(最新稳定版) 配置 1.配置Startup类Config ...

  8. C语言对源程序处理的四个步骤:预处理、编译、汇编、链接——预处理篇

    预处理 1)预处理的基本概念 C语言对源程序处理的四个步骤:预处理.编译.汇编.链接. 预处理是在程序源代码被编译之前,由预处理器(Preprocessor)对程序源代码进行的处理.这个过程并不对程序 ...

  9. (stm32f103学习总结)—ADC模数转换实验

    一.STM32F1 ADC介绍 TM32F103 系列一般都有 3 个 ADC,这些 ADC 可以独立使用,也可 以使用双重(提高采样率).STM32F1 的 ADC 是 12 位逐次 逼近型的模拟数 ...

  10. 线性二次型控制器(LQR)——轨迹跟踪器

    1 概念 2 线性时变系统的跟踪问题 3 线性定常系统的跟踪问题 公式18--22为求解的关键     根据20.21分别求出P.g的值则通过18可求得期望的输出u 4 实例分析 5 仿真实验 先将上 ...