kylin集群反向代理(健康检查)

        前面一篇文章提到了使用nginx来对kylin集群进行反向代理,

kylin集群使用nginx反向代理-CSDN博客文章浏览阅读349次,点赞8次,收藏9次。由于是同一个集群的,元数据没有变化,所以,直接将原本的kylin使用scp的方式发送到其他节点即可。说明一下,192.168.200.12是我nginx的安装的节点,192.168.200.11、192.168.200.12、192.168.200.13是我3台kylin安装的节点,7070是kylin端口。对于多个节点的查询,我需要进行一下优化,所以我最终选用了nginx,对3台kylin进行了反向代理。分别运行这段代码3次,发现两次成功,成功访问到了kylin的数据,一次失败。https://blog.csdn.net/qq_40209679/article/details/135526638

        我3个节点,有一个是不能查询的,通过查阅资料,有两种处理方式。

  1. 健康检查
  2. 故障转移

        通过自己实际情况,我选择了节点健康检查的方式。通过查阅资料,网上说有现成的插件。所以,我直接在github上搜:nginx健康检查。出现了:

        这里,我选择了Star多的一个,来进行了下载。下载后,将包放在我得nginx节点上任意一个目录,怎么安装在那里面都写好了,只需要运行下面红色的部分

        要注意的是,红色部分里面要选择和自己nginx对应的版本的patch。

        下面进入nginx目录,运行:

./configure --prefix=/usr/local/nginx-1.16 --with-stream --with-http_stub_status_module --with-http_ssl_module --add-module=/usr/local/ngx_healthcheck_module-master

        接下来编译:

make && make install

        成功后,我的nginx配置如下(我只截取修改部分):

	server {listen       81;server_name  localhost;location /status {healthcheck_status json;}location / {proxy_pass http://192.168.200.12;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}upstream 192.168.200.12 {server 192.168.200.11:7070;server 192.168.200.12:7070;server 192.168.200.13:7070;check interval=3000 rise=2 fall=5 timeout=5000 type=tcp;}

打开网页,输入

http://192.168.200.12:81/status?format=html

发现了:

健康状态检成功。下面进行测试,我去关闭那台设置为job的kylin(第一台)。

再次刷新网页,发现了:

那么再次回答上一章的问题,使用相同命令进行测试呢:

curl -X POST -H "Content-Type: application/json" -u admin:KYLIN -d '{"project": "test1","sql": "select * from ods.KKTEST2;"}' http://192.168.200.12:81/kylin/api/query

结果如下:

可以看到无论测试几次都成功。任务完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/617158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++学习笔记——类继承

目录 一、一个简单的基类 1.1封装性 1.2继承性 1.3虚函数 1.4多态性 二、基类 2.1一个简单的C基类的示例 2.2 Animal是一个基类。 三、继承 3.1概念 3.2is-a关系 3.3多态公有继承 3.4静态联编和动态联编 3.5访问控制 3.6ABC理念 一、一个简单的基类 C中的基类是一…

02. 坦克大战项目-准备工作和绘制坦克

02. 坦克大战项目-准备工作和绘制坦克 01. 准备工作 1. 首先我们要创建四个类 1. Tank类 介绍:Tank 类主要用来表示坦克的基本属性和行为 public class Tank {private int x;//坦克的横坐标private int y;//坦克的纵坐标public int getX() {return x;}public v…

【ACL 2023】 The Art of Prompting Event Detection based on Type Specific Prompts

【ACL 2023】 The Art of Prompting: Event Detection based on Type Specific Prompts 论文:https://aclanthology.org/2023.acl-short.111/ 代码:https://github.com/VT-NLP/Event_APEX Abstract 我们比较了各种形式的提示来表示事件类型&#xff0…

生成式AI,发展可持续吗?

最近有消息透露,OpenAI预计在2024年实现16亿美元的年化收入。相较于去年10月预测的13亿美元,这一数字增长了3亿美元,增长部分主要来源于ChatGPT订阅、API接入以及其他业务。 与此同时,其竞争对手Anthropic预计年化收入至少为8.5亿…

google drive api

1.创建oauth2 json 文件 https://developers.google.com/drive/api/quickstart/pythoncchttps://developers.google.com/drive/api/quickstart/python这里要注意quickstart的code会经常更新,有可能之前的版本不能用了 比方说下面这个包 from google.oauth2.crede…

Goby 漏洞发布|用友 NC registerServlet 反序列化远程代码执行漏洞

漏洞名称:用友 NC registerServlet 反序列化远程代码执行漏洞 English Name:Yonyou NC registerServlet Deserialize Remote Code Execute Vulnerability CVSS core: 9.8 影响资产数: 21320 漏洞描述: 用友 NC Cloud 是一种商…

grep常用命令

1. grep常用参数 -i忽略大小写-w精准匹配整词-v结果取反(匹配指定的字符串以外的内容)-A关键字所在行的后几行也一起显示-B关键字所在行的前几行也一起显示-C关键字所在行的前后几行行一起显示 2. 常用命令 2.1 从文件中查找关键词 # 精准匹配 grep linux test.txt# 从多个…

UVa1308/LA2572 Viva Confetti

题目链接 本题是2002年ICPC亚洲区域赛金沢(日本)赛区的H题 题意 我已经把n个圆盘依次放到了桌面上。现按照放置顺序依次给出各个圆盘的圆心位置和半径,问最后有多少圆盘可见?如下图所示。 分析 《训练指南》的题解: 题目说“保证在对输入数据…

Kafka配置Kerberos安全认证及与Java程序集成

Background 本文主要介绍在 Kafka 中如何配置 Kerberos 认证,以及 java 使用 JAAS 来进行 Kerberos 认证连接。本文演示为单机版。 所用软件版本 查看 Kerberos 版本命令:klist -V 软件名称版本jdk1.8.0_202kafka2.12-2.2.1kerberos1.15.1 1、Kerberos …

备用电源开发总结

逆变器供电 SPI 主板与LED板之前采用SPI通讯(595驱动 30 个LED),某个LED无缘无故调动一下; 主板与采集板之间SPI通讯,采集的数据无缘无故大数据往外冒; 模拟量采集 采集NTC热敏电阻,NTC线长…

vivado 使用项目摘要、配置项目设置、仿真设置

使用项目摘要 Vivado IDE包括一个交互式项目摘要,可根据设计动态更新命令被运行,并且随着设计在设计流程中的进展。项目摘要包括概览选项卡和用户可配置的仪表板,如下图所示。有关信息,请参阅《Vivado Design Suite用户指南&…

多线程面试题目(1)

多线程基础 什么是多线程?多线程的优点与缺点? 多线程:多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务。 优点:可以提高 CPU 的利用率。在多线程程序中,一个…

Python基础知识:整理11 模块的导入、自定义模块和安装第三方包

1 模块的导入 1.1 使用import 导入time模块,使用sleep功能(函数) import time print("start") time.sleep(3) print("end")1.2 使用from 导入time的sleep功能 from time import sleep print("start") slee…

高级分布式系统-第6讲 分布式系统的容错性--可靠的组通信

可靠的组通信 组内通信最好是每个进程之间都建立点到点的通信, 但实际中这样的组织结构不是有效的, 因为会浪费很大的通信带宽。 在平等组中, 多播是主要的组织结构。 但多播是具有同步性质的容错结构, 并不适用拜占庭模型。 多…

每日算法打卡:饮料换购 day 12

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例:输出样例: 题目分析示例代码 原题链接 1216. 饮料换购 题目难度:简单 题目来源:第六届蓝桥杯省赛C A/C组,第六届蓝桥杯省赛Java B组 题目描述 乐羊羊饮料厂正在举…

LeetCode刷题笔记

面试经典150题 1. 数组/字符串 1.1 合并两个有序数组 题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺…

kotlin-运算符

区间运算符 闭区间运算符 a不能大于b var rang 1..9for(num in rang){print("${num}") //输出123456789}半开区间运算符 半开区间运算符a until b 用于定义一个从a~b(包括a边界值,但不包含b边界值)的所有值的区间,a不能大于b var rang 1 …

spring Data Elasticsearch入门

1.Elasticsearch Elasticsearch提供了两种连接方式: transport:通过TCP方式访问ES。(已废弃) rest:通过HTTP API 方式访问ES。 描述: Spring Data Elasticsearch 项目提供了与Elasticsearch 搜索引擎的集成…

17. 电话号码的字母组合(回溯)

从第一个数字开始遍历其对应的字母&#xff0c;将其加入StringBuffer中&#xff0c;继续深度优先搜索&#xff0c;当访问到最后一个数字的时候&#xff0c;将StringBuffer存储到ans中&#xff0c;然后回溯到下一个对应字母。 class Solution {public List<String> lette…

instanceof、对象类型转化、static关键字

instanceof 与 对象类型转换 instanceof是判断一个对象是否与一个类有关系的关键字 先看引用类型&#xff0c;再看实际类型 *例子&#xff1a;obj instanceof A 先看obj的类型是否与A有关联&#xff0c;无关联则报错&#xff0c;有关联则判断obj的实际类型 因为obj的实际类…