首页 > 编程语言 >Java 远程调用连接本地ElasticSearch服务并进行操作

Java 远程调用连接本地ElasticSearch服务并进行操作

时间:2023-11-24 10:59:11浏览次数:39  
标签:Cpolar 调用 Java 公网 域名 地址 ElasticSearch cpolar 隧道

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

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

 

1. Windows 安装 Cpolar

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

Cpolar官网:https://i.cpolar.com/m/56Ju

  • 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小时内会发生随机变化,更适合于临时使用。

我一般会使用固定二级子域名,原因是我希望将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:crm.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

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

image-20231113152233962

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

 

 

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

image-20231123170126622

 

标签:Cpolar,调用,Java,公网,域名,地址,ElasticSearch,cpolar,隧道
From: https://www.cnblogs.com/flzidea/p/17853241.html

相关文章

  • 远程服务调用(上):从本地方法到远程方法的桥梁
    在原始分布式时代的初期确实是奔着这个目标去做的,但这种透明的调用形式反而让程序员们误以为通信是无成本的,从而被滥用,以至于显著降低了分布式系统的性能。当“透明的RPC调用”一度成为主流范式的时候,安德鲁 · 塔能鲍姆(Andrew Tanenbaum)教授曾发表了一篇论文“A Critique o......
  • 【JAVA】native2ascii命令详解
    参考:<https://blog.csdn.net/sinat_27933301/article/details/60358760><https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/127223542>1、native2ascii简介:native2ascii是sunjavasdk提供的一个工具。用来将别的文本类文件(比如.txt,.ini,.properties,.java等等)编码......
  • Spring Boot 3.2发布:大量Java 21的支持上线,改进可观测性
    就在今天凌晨,SpringBoot3.2正式发布了!该版本是在Java21正式发布之后的重要支持版本,所以在该版本中包含大量对Java21支持的优化。下面,我们分别通过Spring官方发布的博文和JoshLong长达80+分钟的介绍视频,一起认识一下SpringBoot3.2最新版本所带来的全新内容。官方博文:http......
  • java-EasyExcel模板导出
    前言: 需求:根据自定义模板导出Excel,包含图片、表格,采用EasyExcel 提示:EasyExcel请使用3.0以上版本,对图片操作最重要的类就是WriteCellData<Void>如果你的easyexcel没有这个类,说明你的版本太低,请升级到3.0以上<dependency><groupId>com.alibaba</groupId><ar......
  • eclipse查看一个方法被谁引用(调用)的快捷键四种方式
    1.(首推)双击选中该方法,Ctrl+Alt+H如果你想知道一个类的方法到底被那些其他的类调用,那么请选中这个方法名,然后按“Ctrl+Alt+H”,Eclipse就会显示出这个方法被哪些方法调用,最终产生一个调用关系树。2.(次推)选中该方法,Ctrl+Shift+G就显示这个方法被谁引用了,查询在整个工作区中被谁......
  • java 实现断点续传的上传功能
    下面是一个简单的实现Java断点续传上传功能的代码示例,其中使用了HttpURLConnection和RandomAccessFile类:publicclassResumableUploader{privatestaticfinalintBUFFER_SIZE=4096;privatestaticfinalStringFILE_PATH="yourFilePath";privatestaticfi......
  • 基于html5+javascript技术开发的房贷利率计算器,买房的码农们戳进来
    房贷计算器是一款专为购房者设计的实用工具应用,其主要功能是帮助用户详细计算房贷的还款金额、利息以及还款计划等。通过这款软件,用户可以更加便捷地了解到自己的还款情况和计划,从而更好地规划自己的财务。下面将对房贷计算器进行详细的介绍。体验地址房贷计算器体验地址关键代码<t......
  • Java中如何比较两个日期的大小
    日期比较1.自定义时间与当前时间比较代码展示 运行结果 2.两个自定义时间比较代码展示 运行结果 ......
  • java实现大文件的分片上传与下载(springboot+vue3)
    1.1项目背景对于超大文件上传我们可能遇到以下问题•大文件直接上传,占用过多内存,可能导致内存溢出甚至系统崩溃•受网络环境影响,可能导致传输中断,只能重新传输•传输时间长,用户无法知道传输进度,用户体验不佳1.2项目目标对于上述问题,我们需要对文件做分片传输。分片传输就是......
  • java中ArrayList和LinkedList的区别
    Java中ArrayList和LinkedList都是List集合的实现类,它们都可以用来存储一组有序的元素,但是它们的内部实现方式不同,在使用时也有不同的适用场景。ArrayList是一个基于动态数组的实现,它可以容纳任何类型的对象,并且允许对元素进行随机访问。当添加或者删除元素时,ArrayList需要移动内......