ES(Elasticsearch)安装教程

3 篇文章 0 订阅
订阅专栏

1.1 为什么要学Elasticsearch?

为什么要学Elasticsearch(ES)?

我想这是一个存留于很多初学者内心比较困惑的问题。

但是在回答之前,我们还需要先大致了解下它是啥。

毕竟如果一个技术你都不了解它是啥,何谈为什么要学它?

那么, 什么是ES呢?

Elasticsearch 简称ES, 经常与Logstash 和Kibana 一起使用,江湖人称ELK.

  • 这E 自然指的就是Elasticsearch,简称ES, 具有分布式存储,搜索和分析的功能。
  • L 指的就是Logstash,分布式日志收集框架
  • K 指的就是Kibana,可视化分析框架。

接下来我们聊聊为什么我们要学传说中的ES。

这个问题的本质其实是ES 可以做啥?回答清楚这个问题,问题的答案自然就有了。

我翻开了官方文档,在网络中流浪,终于寻找到了 答案。

其中分享一些经典的使用案例如下:

  • 使用案例一:
    ELK 结合使用,用于微服务架构下不同机器上微服务的日志聚合,日志分析。
  • 使用案例二:
    当我们打开淘宝,京东,等电商网站的时候,尝试输入一些关键词,然后系统就会给我们提供一些搜索建议。
    这种场景其实也是ES 使用的一个经典案例。
  • 使用案例三:
    Github使用Elasticsearch检索1300亿行的代码
  • 使用案例四:
    维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type)和搜索纠错(did-you-mean)等搜索建议功能。
  • 使用案例五:
    StackOverflow结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案

1.2 如何下载安装使用ES?

ES 官网: https://www.elastic.co/cn/

1.2.1 ES 安装使用条件

ES 的安装需要JDK 8+

  • 下载地址一: Oracle JDK 英文官网下载
  • 下载地址二: JDK中文网下载
  • 下载地址三: Open JDK
    • 早期版本Linux 下载
    • 早期版本windows 版下载
      在这里插入图片描述

1.2.2 ES 下载须知

如果是企业需要注意的是ES 的下载安装包默认包含一个基础的免费许可证,它包含开源和免费的部分商业功能

如果想 30天试用一些完整的付费商业功能,可以去这里申请, 传送门

关于免费和付费版本的区别见:
在这里插入图片描述

点击了解更多

1.2.3 ES 官方下载

  • 我们可以从 Download Elasticsearch获取最新的ES 官方下载安装包。

旧版本下载地址 https://www.elastic.co/cn/downloads/past-releases

1.2.3.1 Windows 系统下载安装

Windows 系统可以直接点击下图中WINDOWS 超链接 即可下载安装包。
在这里插入图片描述

1.2.3.1 Mac OSX 系统下载安装

Mac OSX 自带了HomeBrew ,因此可以通过包管理器方式进行下载安装。

  • 首先输入命令:
brew tap elastic/tap
  • 然后输入命令:
brew install elastic/tap/elasticsearch-full
  • 当然Mac OSX 系统也可以通过输入如下命令进行下载安装
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-darwin-x86_64.tar.gz

解压命令如下:

tar -xzf elasticsearch-7.6.2-linux-x86_64.tar.gz
  • 或点击进行 直接下载
1.2.3.2 Docker方式下载安装

除了上面列举的方法之外,使用Docker 下载安装是一个更棒的选择。

  • 首先需要安装好Docker,如果没有安装可以查看 Docker 入门学习教程
  • 然后输入如下命令从远程Docker仓库下载ES
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.2

执行成功如下图所示:
在这里插入图片描述

1.2.4 使用Docker 启动ES单节点实例

上面通过Docker 安装好ES之后我们可以通过输入如下命令启动一个单节点的ES实例:

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.6.2

运行成功如下所示:
在这里插入图片描述

  • 输入如下命令调用接口测试
curl -X GET "localhost:9200/_cat/nodes?v&pretty"

执行成功后输出内容如下:
在这里插入图片描述

Mac OSX 自带了curl命令,Windows用户如果也想用可以 点击下载并配置环境变量

1.2.5 使用Docker启动ES多节点实例

  • 为了方便文件管理,我们首先在/Users/zhaoqingfeng/documents/app目录下创建一个叫做es 的文件夹
    Mac OSX 可以通过输入mkdir es 命令进行创建,Windows 可以图形用户界面创建即可。
  • 创建一个docker-compose.yml 配置文件内容如下:
version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge
  • 输入如下命令启动集群
docker-compose up

这里科普下docker-compose 的用法

  • 格式为docker-compose up [options] [SERVICE...]
  • 该命令可以自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作
    • docker-compose up 启动的容器都在前台,方便调试和查看
    • 如果想后台启动它,可以通过输入如下命令 bash docker-compose up -d
  • 执行一个Restful API 请求测
curl -X GET "localhost:9200/_cat/nodes?v&pretty"
  • 执行成功如下
    在这里插入图片描述

1.2.6 ES 在生产环境配置

1.2.6.1 vm.max_map_count 必须至少设置262144
  • Linux 服务器

首先需要编辑这个/etc/sysctl.conf文件

grep vm.max_map_count /etc/sysctl.conf
vm.max_map_count=262144

vm.max_map_count至少要设置26214

然后如果想要配置立即生效,需要输入如下命令

sysctl -w vm.max_map_count=262144
1.2.6.2 elasticsearch 用户必须拥有读取配置文件权限

默认情况下,Elasticsearch使用uid:gid 1000:0作为elasticsearch用户在容器内运行。

如果您要绑定安装本地目录或文件,则elasticsearch用户必须可以读取它。 此外,该用户必须对数据和日志目录具有写权限。 一个好的策略是授予组对本地目录的gid 0的访问权限。

例如,要准备一个本地目录以通过绑定安装存储数据:

mkdir esdatadir
chmod g+rwx esdatadir
chgrp 0 esdatadir

作为最后的选择,您可以通过环境变量TAKE_FILE_OWNERSHIP强制容器更改用于数据和日志目录的任何绑定安装的所有权。 执行此操作时,它们将由uid:gid 1000:0拥有,它提供对Elasticsearch进程的必需读/写访问权限。

1.2.6.3 增加nofile和nprocedit的ulimit

nofile和nproc的增加的ulimit必须对Elasticsearch容器可用。

验证Docker守护程序的初始化系统是否将它们设置为可接受的值。

要检查Docker守护程序默认值是否为ulimits,请运行:

docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn && ulimit -Hu && ulimit -Su'

如果需要,请在守护程序中调整它们,或对每个容器覆盖它们。 例如,当使用docker run时,设置:

--ulimit nofile=65535:65535
1.2.6.4 禁用交换

为了性能和节点稳定性,需要禁用交换。 有关执行此操作的方法的信息,请参阅禁用交换。

如果您选择bootstrap.memory_lock:true方法,则还需要在Docker Daemon中定义memlock:true ulimit,或为示例组成文件中所示的容器显式设置。 使用docker run时,您可以指定:

-e "bootstrap.memory_lock=true" --ulimit memlock=-1:-1
1.2.6.5 随机发布已发布的端口

该映像公开了TCP端口9200和9300。对于生产集群,建议使用–publish-all将发布的端口随机化,除非您要为每个主机固定一个容器。

1.2.6.6 设置堆大小

使用ES_JAVA_OPTS环境变量来设置堆大小。

例如,要使用16GB,请在运行docker run时指定-e ES_JAVA_OPTS="-Xms16g -Xmx16g。 请注意,尽管默认配置文件jvm.options设置了1GB的默认堆,但是您在ES_JAVA_OPTS中设置的任何值都将覆盖它。

即使要限制对容器的内存访问,也必须配置堆大小。

虽然建议通过环境变量设置堆大小,但也可以通过将自己的jvm.options文件绑定安装在/usr/share/elasticsearch/config/下来进行配置。

Elasticsearch提供的文件包含一些重要的设置,因此您应该首先从Elasticsearch容器中获取jvm.options的副本,然后根据需要对其进行编辑。

1.2.6.7 将部署固定到特定的映像版本

将您的部署固定到Elasticsearch Docker映像的特定版本。

例如docker.elastic.co/elasticsearch/elasticsearch:7.6.2

1.2.6.8 始终绑定数据卷

出于以下原因,您应该使用/ usr / share / elasticsearch / data上绑定的卷:

如果容器被杀死,您的Elasticsearch节点的数据将不会丢失
Elasticsearch对I / O敏感,而Docker存储驱动程序对于快速I / O而言并不理想
它允许使用高级Docker卷插件

1.2.6.9 避免使用loop-lvm模式

如果使用devicemapper存储驱动程序,请不要使用默认的loop-lvm模式。 将docker-engine配置为使用direct-lvm。

1.2.6.10 集中您的日志

考虑使用其他日志记录驱动程序集中化日志。 还要注意,默认的json文件日志记录驱动程序不适合用于生产环境。

1.2.7 在Docker中配置ES

在Docker中运行时,Elasticsearch配置文件从/usr/share/elasticsearch/config/加载。

要使用自定义配置文件,请将文件绑定安装在映像中的配置文件上。

您可以使用Docker环境变量来设置各个Elasticsearch配置参数。 样本撰写文件和单节点示例都使用此方法。

要使用文件的内容设置环境变量,请在环境变量名后加上_FILE。 这对于将密码之类的机密传递给Elasticsearch而无需直接指定它们很有用。

例如,要从文件设置Elasticsearch引导程序密码,您可以绑定安装文件并将ELASTIC_PASSWORD_FILE环境变量设置为安装位置。 如果将密码文件安装到/run/secrets/password.txt,请指定

-e ELASTIC_PASSWORD_FILE=/run/secrets/bootstrapPassword.txt

您还可以覆盖图像的默认命令,以将Elasticsearch配置参数作为命令行选项传递。 例如:

docker run <various parameters> bin/elasticsearch -Ecluster.name=mynewclustername

虽然绑定安装配置文件通常是生产中的首选方法,但您也可以创建一个包含配置的自定义Docker映像。

1.2.7.1 挂载Elasticsearch配置文件

创建自定义配置文件,并将其绑定安装在Docker映像中的相应文件上。 例如,要将docker run绑定到custom_elasticsearch.yml,请指定:

-v full_path_to/custom_elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

容器使用uid:gid 1000:0作为elasticsearch用户运行Elasticsearch。 该用户必须可以访问绑定的已挂载主机目录和文件,并且该用户必须可以写数据和日志目录。

1.2.7.2 使用自定义Docker镜像

在某些环境中,准备包含您的配置的自定义映像可能更有意义。

一个用于实现此目的的Dockerfile可能很简单:

FROM docker.elastic.co/elasticsearch/elasticsearch:7.6.2
COPY --chown=elasticsearch:elasticsearch elasticsearch.yml /usr/share/elasticsearch/config/

然后,您可以使用以下命令构建映像:

docker build --tag=elasticsearch-custom .

运行镜像

docker run -ti -v /usr/share/elasticsearch/data elasticsearch-custom

一些插件需要其他安全权限。 您必须通过以下方式明确接受它们:

  • 运行Docker映像时附加tty,并在出现提示时允许权限。
  • 通过在插件安装命令中添加--batch标志,检查安全权限并接受(如果适用)。

0x02 参考链接

  • ES 官网首页
  • ES 文档
  • Getting Stared Guide
  • Install Elasticsearch with Dockeredit
  • docker-compose up命令
  • Elasticsearch权威指南(中文版)
  • 滴滴ElasticSearch平台跨版本升级以及平台重构之路

本篇完~

Elasticsearch入门教程
qq_34139393的博客
06-18 939
Elasticsearch入门教程
ES(Elasticsearch)的docker安装部署教程
热门推荐
qq_33034733的博客
05-24 1万+
需要手动将docker中的es四个目录同步到宿主机上。1.1 拉取docker镜像。1.2 创建es挂载目录。1.4 桥接网络节点配置。3、logstash部署。1.3 开放防火墙端口。1.5 容器实例启动。2、Kibana部署。
ES快速入门
LIUHUA121的博客
10-12 3431
1 ES的基本信息 1基本概念: Relational DB Elasticsearch 数据库(database) 索引(indices) 表(tables) types 行(rows) documents 字段(columns) fields 2 ES的适用和不适用场景 2.1 ES适合
一文解决Elasticsearch下载安装以及使用配置
最新发布
weixin_44777347的博客
08-09 1333
文章介绍elasticsearch下载安装配置以及分词器类型区别,以及分词器配置,集成到spring boot项目的具体操作流程
Elasticsearch 教程--入门
weixin_30670925的博客
10-21 354
1.1 初识 Elasticsearch 是一个建立在全文搜索引擎Apache Lucene(TM)基础上的搜索引擎,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架。 但是 Lucene 只是一个框架,要充分利用它的功能,你需要使用 JAVA,并且在你的程序中集成 Lucene。更糟的是,你需要做很多的学习了解,才能明白它是如何运行的,Lucene 确实非常复杂。 E...
ElasticSearch入门教程
沈洋的博客
04-29 302
文章目录概述ElasticSearch是什么?Elasticsearch与Solr的比较安装教程基本概念元数据基础增删改查新增使用自定义id使用自动生成的id基本检索根据id查询查询所有分页查询轻量查询(字符串查询)判断是否存在更新删除多索引多类型查询分布式副本与分片主分片和副本分片如何交互数据查询过程数据新增和更新集群中的分页数据写入并发控制倒排索引分词器使用es的标准分词器使用ik分词器之ik_max_word使用ik分词器之ik_smartik_max_word和ik_smart的区别映射简单域类型t
ElasticSearch 入门教程
wangchewen的博客
11-04 609
ElasticSearch 是一个高可用开源全文检索和分析组件。提供存储服务,搜索服务,大数据准实时分析等。一般用于提供一些提供复杂搜索的应用。 ElasticSearch 提供了一套基于restful风格的全文检索服务组件。前身是compass,直到2010被一家公司接管进行维护,开始商业化,并提供了ElasticSearch 一些相关的产品,包括大家比较熟悉的 kibana、logstash 以及 ElasticSearch 的一些组件,比如 安全组件shield 。当前最新的ElasticSea
ElasticSearch的完整安装教程
08-26
ElasticSearch安装教程 ElasticSearch是一款基于Lucene搜索引擎的搜索和数据分析工具,能够提供实时搜索、数据分析和报表等功能。以下是ElasticSearch的完整安装教程ElasticSearch安装步骤 1. 下载Elastic...
elasticsearch安装教程.docx
07-24
以下是Elasticsearch的详细安装教程: 一、环境准备 操作系统:Elasticsearch可以运行在多种操作系统上,包括Linux、macOS和Windows。但出于性能和稳定性的考虑,推荐在Linux系统上运行。 Java环境:Elasticsearch...
linux环境下Elasticsearch安装教程
qq_45036013的博客
03-10 3741
Linux云服务器下安装es详细步骤
linux系统安装elasticsearch教程_linux 安装es
2401_84182318的博客
04-12 1213
课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**
全文搜索引擎 ElasticSearch 入门教程
一介那个书生的博客
08-18 2493
全文搜索属于最常见的需求,开源的 ElasticSearch (以下简称 Elastic)是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。
Elasticsearch 教程 - 奇客谷
05-25 206
Elasticsearch 教程 Elasticsearch是一个高度可伸缩的开源全文搜索引擎。Elasticsearch让你可以快速、实时地存储、搜索和分析大量数据,它通常作为互联网应用的内部搜索引擎,为需要复杂搜索功能的应用提供支持。 下面是Elasticsearch的常用场景: 电商搜索引擎,使用Elasticsearch存储商品与品类信息,提供搜索和搜索建议功能。 日志系统,收集、...
ElasticSearch教程
baiofchao
01-15 845
ElasticSearch教程
Elasticsearch教程
随风而逝的博客
10-05 333
Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架。 Elasticsearch是基于Apache Lucene的搜索服务器。它由Shay Banon开发并于2010年发布。现在是由Elasticsearch BV负责维护。其最新版本是:5.2.0。 Elasticsearch是一个实时分布式和开源的全文搜索和分析引擎。 它可以从RESTful Web服务接口访问,并使用模式少JSON(Ja
Elasticsearch 教程
weixin_68651384的博客
07-03 3430
POST /索引库名/类型/id值...
Elasticsearch 入门教程
编程牧马人
06-04 432
Elasticsearch 入门教程 本文根据官方文档指南,基于docker 容器快速搭建 Elasticsearch 环境,并结合阮一峰博客全文搜索引擎 Elasticsearch 入门教程Elasticsearch 快速入门进行总结。 强烈建议阅读本文前先学习阮一峰博客,链接如下:全文搜索引擎 Elasticsearch 入门教程 安装 官网安装教程地址: https://www.elastic.co/guide/en/elasticsearch/reference/current/getting
写文章

热门文章

  • 真正解决方案:Cannot resolve symbol 'xxx' (Android Studio 3.1.4) 197968
  • 解决方案之‘Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception is java.lang.NullPoi 142498
  • 真正解决方案:java.lang.ClassNotFoundException: javax.xml.bind.JAXBException 141295
  • org.springframework.http.converter.HttpMessageNotReadableException异常解决 85879
  • 真正解决方案:Cannot resolve class or package 'mysql’ 77403

分类专栏

  • Spring Boot 2.x最佳实践 付费 36篇
  • 企业微服务开发实战 付费 6篇
  • 爱上读书 1篇
  • 学会思考 1篇
  • 爱上读书,学会思考
  • 极客技术宅 1篇
  • 极客守则 1篇
  • 极客软件环境搭建手册 37篇
  • 极客运维操作手册 8篇
  • 极客百科-十万个是什么? 3篇
  • 极客百科-十万个为什么? 2篇
  • 极客百科-十万个怎么办? 1篇
  • 极客技术雷达 1篇
  • 极客必备神兵利器 10篇
  • 极客星云的研发秘术
  • 极客读书雷达 1篇
  • 极客技术宅周刊
  • 研发踩坑录 59篇
  • Java基础技术 6篇
  • Java 基础之 I/O 操作 2篇
  • Java中的数据结构和算法 19篇
  • Java JVM详解 4篇
  • Java并发编程之道 12篇
  • Java反射和注解之道 3篇
  • Java设计模式之道 5篇
  • Java网络开源库Netty 1篇
  • 编译构建术之Maven学习手册 2篇
  • 编译构建术之Gradle学习手册 1篇
  • 版本控制术之Git学习手册 2篇
  • 盘点那些好用强大的开源库 1篇
  • Spring Framework 基础知识 21篇
  • 好用的Java工具类封装 1篇
  • Java后端企业级应用开发框架 2篇
  • Web容器之Tomcat 4篇
  • Web容器之JBoss 2篇
  • Web容器之IBM WebSphere 1篇
  • Spring Boot 3之路系列教程 3篇
  • Java数据密集型应用系统设计指南 4篇
  • Spring Cloud Gateway 系列教程 1篇
  • Spring Security 10篇
  • Spring Cloud Netflix 1篇
  • Java中的测试秘术 2篇
  • Java中的文档处理术 2篇
  • Java中的视频处理术 2篇
  • Spring Data JPA 5篇
  • MyBatis3 5篇
  • Grails 2篇
  • Java中的日志处理术 2篇
  • Java数据密集型数据处理技术 1篇
  • ELK Stack核心秘术 3篇
  • Zookeeper
  • ClickHouse 1篇
  • Apache HBase中文学习手册 5篇
  • Apache Flink 2篇
  • Java版gRPC基础知识教程
  • 云原生技术栈
  • DevOps神器Jenkins
  • 监控神器Prometheus
  • 负载均衡与反向代理之Nginx 3篇
  • sh脚本学习手册 2篇
  • Docker 容器基础知识 4篇
  • K8S技术揭秘 1篇
  • 消息中间件修炼手册 1篇
  • JMS 1篇
  • IBM MQ 1篇
  • Spring for Apache Kafka 4篇
  • RabbitMQ 3篇
  • 云平台应用开发实践 1篇
  • 华为云服务实践手册
  • 阿里云
  • SQL技术栈 3篇
  • NoSQL-Redis学习手册 1篇
  • 关系型数据库之MySQL 14篇
  • 关系型数据库之Oracle 3篇
  • BDB XML Edition 7篇
  • BDB Java Edition 17篇
  • 大前端时代技术栈 4篇
  • 微信小程序开发指南 4篇
  • 钉钉小程序入门学习教程
  • 微信公众号开发指南
  • Android 36篇
  • Flutter 3篇
  • Vue入门实战 7篇
  • C语言 6篇
  • Python修炼手册 2篇
  • 写点好玩的东西 4篇
  • 网络漫谈 2篇
  • 星云的CSDN相册 2篇
  • 财富自由探索之路
  • 投资理财
  • 创业之路
  • 译文 54篇

最新评论

  • 实战Android读取USB数据到手机自带存储中

    笙歌*: 有android传给 mtp相机的程序吗。importfile只能相机到android

  • 关于JVM 你该了解的一切

    CSDN-Ada助手: 在 JVM 中如何实现线程同步和多线程并发执行?

  • 如何在windows上搭建DZ(Discuz!)论坛?

    极客星云: 端口被占用了或者mysql服务没启动

  • 如何在windows上搭建DZ(Discuz!)论坛?

    2401_87169911: mysql打不开,是怎么回事

  • Centos7 安装ELK/EFK 7.x 集群搭建实战攻略

    极客星云: 版本不一样导致的可能,我没遇见你说的这个问题

最新文章

  • fixed【because the URL contained a potentially malicious String “//“】
  • zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue
  • JDK 17 微服务启动JVM参数调优实战
2024年9篇
2023年45篇
2022年14篇
2021年46篇
2020年69篇
2019年153篇
2018年40篇
2017年4篇
2016年14篇
2015年26篇
2014年6篇

目录

目录

分类专栏

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客星云

谢谢认可,希望对你的学习有帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司忻州网站优化外包公司优化网站下载安装网站优化软件免费咨询如何优化网站里择火星赞优化网站里联火27星金华网站优化及推广公司宜兴网站关键词优化台州网站建设优化制作公司网站优化有哪些重点青岛网站优化南京厂商广州关键词优化网站西安网站seo优化黄南网站优化推广经济开发区网站seo优化排名壹起航怎么做网站优化关于网站优化的攻略网站优化怎样更快被收录恩施网站优化开发嘉兴专业的seo网站优化报价山西世创未来网站优化东城网站推广优化厦门思明区网站首页优化公司门窗网站优化建议揭阳网站优化工具网站建设优化一流火4星新会区网站优化上海网站优化排名推广网站优化哪个好随州市网站关键词优化服务商业网站推广胤偈云速捷优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化