Java远程连接本地开源分布式搜索引擎ElasticSearch

文章目录

    • 前言
    • 1. Windows 安装 Cpolar
    • 2. 创建Elasticsearch公网连接地址
    • 3. 远程连接Elasticsearch
    • 4. 设置固定二级子域名

前言

简单几步,结合Cpolar内网穿透工具实现Java远程连接操作本地Elasticsearch。

什么是elasticsearch?一个开源的分布式搜索引擎,具备非常多强大功能,可以用来实现搜索、日志统计、分析、系统监控等功能,可以帮助我们从海量数据中快速找到需要的内容。

Cpolar内网穿透提供了更高的安全性和隐私保护,通过使用加密通信通道,Cpolar技术可以确保数据传输的安全性,这为用户和团队提供了更可靠的保护,使他们能够放心地处理和存储敏感的工作内容。

1. Windows 安装 Cpolar

访问cpolar官网,注册一个账号,然后下载并安装客户端,具体安装教程可以参考官网文档教程。

Cpolar官网:https://www.cpolar.com/download

  • windows系统:在官网下载安装包后,双击安装包一路默认安装即可。
  • linux系统:支持一键自动安装脚本,详细请参考官网文档——入门指南

image-20231113140709326

注意! Cpolar安装成功后,默认Cpolar web 界面访问端口也是9200,和Elasticsearch 会有冲突,需要修改一下Cpolar 管理界面端口,如果Elasticsearch 的端口不是9200,可以不用修改.

找到cpolar配置文件:c:\Users\用户名\.cpolar\cpolar.yml,使用Notepad++编辑工具或者其他软件打开

image-20231113140858314

在配置文件中,增加一行:client_dashboard_addr: 127.0.0.1:9800,端口可以自定义,这边使用9800

image-20231113141453289

修改好后,记得保存配置文件,然后在控制面板–管理工具—服务—cpolar service,重启cpolar服务

image-20231113141414399

然后浏览器输入localhost:9800,即可访问到了Cpolar Web UI 管理界面,输入官网注册的账号即可登录操作了.

image-20231113141644952

2. 创建Elasticsearch公网连接地址

登录后,点击左侧仪表盘的隧道管理——创建隧道,创建一个9200的http隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:https://127.0.0.1:9200 (本地访问的方式是https就需要填写完整地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China

点击创建

image-20231123162335001

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https,由于本地是https,我们只需要使用https地址即可

image-20231123162509393

3. 远程连接Elasticsearch

导入相关的Maven 依赖,这里使用的Elasticsearch版本是最新版本8.11.0

<dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.11.1</version><!--改为自己的版本--></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.3</version></dependency><dependency><groupId>jakarta.json</groupId><artifactId>jakarta.json-api</artifactId><version>2.0.1</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>8.11.1</version><!--改为自己的版本--></dependency>

导入后,根据官方的demo,我们编写相关的连接代码,连接地址使用上面创建的Cpolar公网地址,如果是其他语言,连接方式也是一样,

image-20231123163454683

设置好后,测试写入数据,这里测试,写入一个对象

image-20231123164409227

执行没有报错且成功后,在控制台日志信息上我们可以看到通过浏览器查看写入的数据链接,该链接前缀可以看到,也是cpolar公网地址,任意浏览器都可以访问

image-20231123164549203

通过链接,我们打开浏览器访问,输入用户名密码登录,登录后可以看到我们写入的数据,表示成功,这样一个公网连接地址就设置好了

image-20231123164833381

小结

为了更好地演示,我们在前述过程中使用了cpolar生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆(例如:3ad5da5.r10.cpolar.top)。另外,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定二级子域名,原因是我希望将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:elasticsearch.cpolar.cn),这样更显正式,便于流交协作。

4. 设置固定二级子域名

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

登录cpolar官网后台,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20231113151721641

保留成功后复制保留的二级子域名地址

image-20231113151751358

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20231113152109057

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新

image-20231113152142969

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称

最后,使用固定的域名公网https地址进行连接,修改代码中hostname,替换成固定公网地址,然后执行image-20231123165603839

执行后,通过打印出来的地址,进行访问(新地址访问,需要重新登录), 登录后,同样 可以看到我们写入到elasticsearch的数据,连接成功,这样一个永久固定不变的公网地址就设置好了!

image-20231123170126622

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

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

相关文章

[C++]六大默认成员函数详解

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C和Linux &#x1f33c;博客专栏&#xff1a;C入门 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4aa;&#x1f3fb; …

Python实现艺术设计?提取图片中颜色并绘制成可视化图表,从大师作品中提取配色方案

文章目录 导入模块并加载图片提取颜色并整合成表格绘制图表实战环节关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠…

1.ORB-SLAM3中如何保存多地图、关键帧、地图点到二进制文件中

1 保存多地图 1.1 为什么保存(视觉)地图 因为我们要去做导航&#xff0c;导航需要先验地图。因此需要保存地图供导航使用&#xff0c;下面来为大家讲解如何保存多地图。 1.2 保存多地图的主函数SaveAtlas /*** brief 保存地图* param type 保存类型*/ void System::SaveAtlas(…

Java - Stream Filter 多条件筛选过滤

Java Stream流中Filter用于通过设置的条件过滤出元素 &#xff0c;示例如下&#xff1a; List strings Arrays.asList(“abc”, “”, “bc”, “efg”, “abcd”,"", “jkl”);List filtered strings.stream().filter(string -> !string.isEmpty()).collect(C…

生物神经系统的基本原理 神经元Neuron

生物神经系统的基本原理涉及一系列复杂的生物学和生理学机制&#xff0c;主要可以分为以下几个方面&#xff1a; 神经元与突触&#xff1a;神经系统的基本单位是神经元&#xff0c;它们通过突触连接彼此。神经元接收并处理来自身体其他部分或环境的信息&#xff0c;然后通过电信…

用函数初始化数组

将数组全部初始化为相同值 对于一般情况 一般是用函数&#xff0c;传什么数就初始化为什么数 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> void init(int arr[], int len, int num) {int i;for (i 0; i < len; i){arr[i] num;} } int main() {int arr[…

快速开发出一个公司网站

问题描述&#xff1a;参加一个创业活动&#xff0c;小组要求做一个公司网站&#xff0c;简单介绍一下自己公司的业务。需要快速完成。 问题解决&#xff1a;从网上找一个网站模板&#xff0c;类似于做PPT&#xff0c;搭建一个网站即可。 这里推荐的是京美建站、wordpress、he…

第1章 爬虫基础

目录 1. HTTP 基本原理1.1 URI 和 URL1.2 HTTP 和 HTTPS1.3 请求1.3.1 请求方法1.3.2 请求的网址1.3.3 请求头1.3.4 请求体 1.4 响应1.4.1 响应状态码1.4.2 响应头1.4.3 响应体 2. Web 网页基础2.1 网页的组成2.1.1 HTML2.1.2 CSS2.1.3 JavaScript 2.2 网页的结构2.3 节点树及节…

PT里如何针对某个模块设置false path

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 如题&#xff0c;这个问题实际上讲的是get_cells的用法&#xff0c;我们要抓取某个模块内的全部cell&#xff0c;在ICC2里可以get_flat_cells xx/xx/module_name*&#xff0c;但…

DBeaver连接MySQL提示“Public Key Retrieval is not allowed“问题解决方式

更新时间&#xff1a;2023年10月31日 11:37:53 作者&#xff1a;产品人小柒 dbeaver数据库连接工具,可以支持几乎所有的主流数据库.mysql,oracle.sqlserver,db2 等等,这篇文章主要给大家介绍了关于DBeaver连接MySQL提示"Public Key Retrieval is not allowed"问…

计算机毕业设计|基于SpringBoot+MyBatis框架的仿天猫商城购物系统设计与实现

计算机毕业设计|基于SpringBootMyBatis框架的仿天猫商城购物系统设计与实现 迷你仿天猫商城是一个基于SSM框架的综合性B2C电商平台&#xff0c;需求设计主要参考天猫商城的购物流程&#xff1a;用户从注册开始&#xff0c;到完成登录&#xff0c;浏览商品&#xff0c;加入购物…

Java自定义一个线程池

线程池图解 线程池与主线程之间通过一个阻塞队列来平衡任务分配&#xff0c;阻塞队列中既可以满足线程等待&#xff0c;又要接收主线程的任务。 线程池实现 使用一个双向链表实现任务队列 创建任务队列 //阻塞队列 public class BlockingQueue<T> {//双线链表private …