1. 1 不可撤销
  2. 2 小年兽 程嘉敏
  3. 3 手放开 李圣杰
  4. 4 迷人的危险3(翻自 dance flow) FAFA
  5. 5 山楂树之恋 程佳佳
  6. 6 summertime cinnamons / evening cinema
  7. 7 不谓侠(Cover 萧忆情Alex) CRITTY
  8. 8 神武醉相思(翻自 优我女团) 双笙
  9. 9 空山新雨后 音阙诗听 / 锦零
  10. 10 Wonderful U (Demo Version) AGA
  11. 11 广寒宫 丸子呦
  12. 12 陪我看日出 回音哥
  13. 13 春夏秋冬的你 王宇良
  14. 14 世界が终わるまでは… WANDS
  15. 15 多想在平庸的生活拥抱你 隔壁老樊
  16. 16 千禧 徐秉龙
  17. 17 我的一个道姑朋友 双笙
  18. 18 大鱼  (Cover 周深) 双笙
  19. 19 霜雪千年(Cover 洛天依 / 乐正绫) 双笙 / 封茗囧菌
  20. 20 云烟成雨(翻自 房东的猫) 周玥
  21. 21 情深深雨濛濛 杨胖雨
  22. 22 Five Hundred Miles Justin Timberlake / Carey Mulligan / Stark Sands
  23. 23 斑马斑马 房东的猫
  24. 24 See You Again Wiz Khalifa / Charlie Puth
  25. 25 Faded Alan Walker / Iselin Solheim
  26. 26 Natural J.Fla
  27. 27 New Soul Vox Angeli
  28. 28 ハレハレヤ(朗朗晴天)(翻自 v flower) 猫瑾
  29. 29 像鱼 王贰浪
  30. 30 Bye Bye Bye Lovestoned
  31. 31 Blame You 眠 / Lopu$
  32. 32 Believer J.Fla
  33. 33 书信 戴羽彤
  34. 34 柴 鱼 の c a l l i n g【已售】 幸子小姐拜托了
  35. 35 夜空中最亮的星(翻自 逃跑计划) 戴羽彤
  36. 36 慢慢喜欢你 LIve版(翻自 莫文蔚) 戴羽彤
  37. 37 病变(翻自 cubi) 戴羽彤
  38. 38 那女孩对我说 (完整版) Uu
  39. 39 绿色 陈雪凝
  40. 40 月牙湾 LIve版(翻自 F.I.R.) 戴羽彤
夜空中最亮的星(翻自 逃跑计划) - 戴羽彤
00:00 / 04:10

夜空中最亮的星 能否听清

那仰望的人 心底的孤独和叹息

夜空中最亮的星 能否记起

那曾与我同行 消失在风里的身影

我祈祷拥有一颗透明的心灵

和会流泪的眼睛

给我再去相信的勇气

越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请指引我靠近你

夜空中最亮的星 是否知道

那曾与我同行的身影 如今在哪里

夜空中最亮的星 是否在意

是等太阳先升起 还是意外先来临

我宁愿所有痛苦都留在心底

也不愿忘记你的眼睛

哦 给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行 哒~

我祈祷拥有一颗透明的心灵

和会流泪的眼睛 哦

给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行

开始步入Elasticsearch的世界:初探elasticsearch

前言

最近我参与了一个重构项目,由于这个下项目并发量比较大,而且经常出现MQ丢数据的问题,所以工单特别多,为了解决这个历史遗留问题,我们开启了为期两个月的重构之旅。

目前,这个项目刚刚启动,现在的核心架构,主要依托于redis,总的来说就是,所有的数据交互均依托于redis,不管是新增、查询、更新、删除等,都在redis上操作,然后通过一个DAL组件完成数据库数据同步。就是这样的架构,让我们在开发的时候简直要抓狂了,为了一个在数据库层面带索引的查询,我们需要从redis中拿出所有数据,然后从list中拿出我们需要的数据,感觉操作太复杂了,但是没办法呀,架构师就是这么定的。

因为后期要把redis换成ES,所以我就提前把相关内容学起来,以备不时之需。

elasticsearch

简介

elasticsearch是什么?根据它的字面意思,我们知道它和搜索有关,官方给出的解释是:

Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 ElasticsearchLogstash Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

简单来说,elasticsearch可以用以下几个关键字概括:

  • 分布式
  • 开源
  • 搜索和分析引擎

做后端开发的小伙伴应该都清楚,在我们所有的系统中,基本上都是读多写少,所以真正制约一个系统性能是查询,是搜索,如果有一款组件可以解决数据搜索的问题,那系统的性能肯定会得到飞速提升,而elasticsearch就是这样一款组件。现阶段,很多企业都在用es,目前被提及最多的是携程,携程是大规模在使用,单日索引数据条数600亿,这就有点强了。

好了,关于简介就先到这里,更多信息各位小伙伴可以自己检索,下面我们看下如何安装使用es

下载

访问官方网站,选择对应版本,然后下载。官方地址如下:

https://www.elastic.co/cn/downloads/elasticsearch

这里我直接选择windows,各位小伙伴根据自己的操作系统进行选择。

安装

下载过程还是很快的,下载完成后直接解压压缩文件即可:

下面我们简单介绍下,elasticsearch的文件结构:

  • bin:存放可执行文件,包括脚本等,一般我们用的第三方组件都是这样的结构,比如zknacos

  • configelasticsearch的配置文件

  • jdk:这个各位小伙伴应该很熟悉,目前elasticsearch-7.14.0下的jdk版本比较高是16.0.1

  • ``libelasticsearch本身应该是基于java开发的,所以lib就是elasticsearch`要用到的包,其中也包括它自身应用的包

  • logs:存放运行日志,目前是空的

  • modules:这个应该是elasticsearch可以扩展的模块,默认情况下好多模块是不启用的

  • plugins:这个应该是存放第三方扩展组件的,目前该文件夹是空的。

好了,elasticsearch的目录结构我们暂时就说这么多,下面看下如何启动elasticsearch

启动

启动elasticsearch也很简单,只需要执行bin文件夹下的脚本即可:

elasticsearch.bat

如果启动报错,检查下本地jdk版本,最好选择16及以上版本,因为我本地安装的就是16,所以启动没有报错,但是在控制台有如下提示:

按照提示信息,elasticsearchJAVA_HOME需要设置未ES_JAVA_HOMEJAVA_HOME不推荐使用,应该是怕和jdk冲突吧。

从启动日志我们看出以下几点:

  • 启动的时候会加载modules的文件,具体各个模块的用途,我们暂时先不研究

  • elasticsearch服务默认情况下会用到93009200,其中9300的端口协议未知,但是肯定不是http协议,9200是可以直接访问的:

  • 访问127.0.0.1:9200,如果返回值结果如上,则表明elasticsearch启动成功。

测试

安装启动完成后,127.0.0.1:9200访问也ok,说明es已经部署ok,下面我们对它进行一些简单测试。

在前面的简介中,我们知道es对外提供了 REST 风格 API,所以我们下面的测试都是基于REST接口进行的,为了方便我们后面就直接用curl工具( 或者你也可以用postman)进行操作了。

REST

下面是rest协议的几种常用请求类别以及他们表示的含义,我们对es的操作也就是基于他们进行的:

  • PUT请求:表示更新
  • POST请求:表示写
  • DELETE请求:表示删除
  • GET请求:表示查询
  • HEAD请求:与GET类似,但是不返回消息体
  • OPTIONS请求:获取服务器支持的HTTP请求方法
  • TRACE请求:用来调试web服务器连接的HTTP方式
  • CONNECT 请求:把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户

关于Rest协议我们暂时先说这么多,明天我们再详细说明。

以上这些请求中,es只支持GET, PUT, DELETE, HEAD,其他的是不支持的:

创建索引
curl -X PUT 127.0.0.1:9200/syske

返回结果:

{
    "acknowledged":true,
    "shards_acknowledged":true,
    "index":"syske"
}
访问索引
curl -X GET 127.0.0.1:9200/syske

返回结果:

  {
	"syske": {
		"aliases": {},
		"mappings": {},
		"settings": {
			"index": {
				"routing": {
					"allocation": {
						"include": {
							"_tier_preference": "data_content"
						}
					}
				},
				"number_of_shards": "1",
				"provided_name": "syske",
				"creation_date": "1629869376742",
				"number_of_replicas": "1",
				"uuid": "cFI0E1VxQrKyxNiH1qZBfA",
				"version": {
					"created": "7140099"
				}
			}
		}
	}
}
删除索引
curl -X DELETE 127.0.0.1:9200/syske

返回结果

{
    "acknowledged":true
}

说明:索引就类似于我们传统数据库中的库,一个索引就对应一个数据库。

总结

今天我们主要分享了es的下载、安装和测试,整体内容很简单,也不需要任何复杂的配置,只要确保es可以在本地正常启动即可。好了,es的简单入门我们今天就先到这里,我们从明天开始学习es的其他基本术语和用法。

posted @ 2021-08-27 19:50  云中志  阅读(76)  评论(0编辑  收藏  举报