zoukankan      html  css  js  c++  java
  • 3.高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建

    高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建

    如果大家看了我的上一篇《2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离》文章,如果能很好的利用,那么其实已经可以轻松日抗千万级别的访问量了,但是如果业务涉及查询比较多,查询条件比较丰富,又或者我就想要查询的响应更快点,那么在mysql上面去做优化,其实比较辛苦,有没有更好的解决方案呢?答案是肯定的!它就是我们今天的主角,分布式全文搜索引擎elasticsearch.

    技巧提示:mysql集群层主要提供核心业务逻辑的读写以及数据的冗余备份;elasticsearch负责前端的查询和展示。比如,用户的所有写操作都是在mysql的master服务器上面完成;然后通过主从机制,把数据同步至多个mysql从机,然后通过从机把数据同步至elasticsearch.因为有多个mysql从机,所有同步的时候划分合适数量的表分担至各个从机去同步,这样既可以减轻各个mysql服务器的压力,又可以更加高效同步。同步工具这里推荐logstash,大家自行搜索了解,如果遇到坑可以留言。

    一、架构图

    服务器准备:3台,ubuntu16.04系统+elasticsearch-6.2.4
    slave1:192.168.1.191 ES集群master
    slave2:192.168.1.192 ES集群slave
    slave3:192.168.1.193 ES集群slave
    [注意:nginx方向代理和mysql集群的配置这里不做说明,大家可以看我的之前的文章]

    二、elasticsearch配置(分别在三台服务器上面进行如下操作)

    1.java环境配置:

        *请自行前往java官方下载java,然后解压至合适目录
        vim /etc/profile加入如下内容:
        #java
        export JAVA_HOME=/home/qizexi/data/java #这个改为你java的解压目录
        export JAVA_CLASS=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        export PATH=$PATH:$JAVA_HOME/bin
        保存,退出
        source /etc/profile
        java -version看到如下内容即是java安装成功
        ---------------------------------------
        java version "1.8.0_141"
        ---------------------------------------
            

    2.账号准备:

        elasticsearch不允许以root账号运行,所以我们可以添加一个es用户来负责运行elasticsearch
        useradd es
        passwd es
    
        将elasticsearch-6.2.4的安装目录变更为es用户
        chown -R es:es elasticsearch-6.2.4
    
        改变ulimit的1024的限制
        vim /etc/security/limits.conf
        * hard nofile 100000
        * soft nofile 100000
        * hard nproc 100000
        * soft nproc 100000
        保存退出
        source /etc/security/limits.conf
        切换es用户(su es)之后运行
        ulimit -n可以看到
        100000
        说明成功,否则可以重启生效:)
    
        改变max_map_countd的限制:
        vim /etc/sysctl.conf修改如下配置:
        vm.max_map_count=262144
        保存退出
        运行:sysctl -p
            

    3.主服务器配置(191):

        cd 到elasticsearch-6.2.4的解压目录
        vim config/elasticsearch.yml修改如下内容:
        cluster.name: my-app
        node.name: master
        network.host: 192.168.1.191
        http.port: 9200
        discovery.zen.ping.unicast.hosts: ["192.168.1.191", "192.168.1.192", "192.168.1.193"]
        保存,然后使用es账号启动即可.
        su es
        bin/elasticsearch -d
        su root
        netstat -tlnp看到如下内容即是成功(有可能过几秒钟才能看到):
        ------------------------------------------------------
        192.168.1.191:9200
        192.168.1.191:9300
            

    4.配置从服务器(192,193):

        cd 到elasticsearch-6.2.4的解压目录
        vim config/elasticsearch.yml修改如下内容:
        cluster.name: my-app
        node.name: slave1 #193服务器改为slave2
        network.host: 192.168.1.192 #193服务器改为192.168.1.193
        http.port: 9200
        discovery.zen.ping.unicast.hosts: ["192.168.1.191", "192.168.1.192", "192.168.1.193"]
        保存,然后使用es账号启动即可.
        su es
        bin/elasticsearch -d
        su root
        netstat -tlnp看到如下内容即是成功(有可能过几秒钟才能看到):
        -------------------------------------------------------
        192.168.1.192:9200 #192上面看到是193
        192.168.1.192:9300 #192上面看到是193
            

    5.查看集群的状态:

        curl -XGET 'http://192.168.1.191:9200/_cat/nodes?v'
        看到三个节点即可成功:
        ip            heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
        192.168.1.191           25          55   0    0.00    0.01     0.00 mdi       *      master
        192.168.1.192           22          97   5    0.70    0.34     0.17 mdi       -      slave1
        192.168.1.193           20          75  30    0.54    0.14     0.05 mdi       -      slave2
            
  • 相关阅读:
    【python+selenium自动化】图像识别技术在UI自动化测试中的实际运用
    【python+selenium自动化】使用pytest+allure2完成自动化测试报告的输出
    【python+selenium自动化】设置Chrome启动参数
    迭代器 和 生成器
    Python 第三方包上传至 PyPI 服务器
    python 模块导入全局变量
    装饰器
    set 集合数据类型
    lambda 、 map 、filter 、reduce 及 reversed 常用函数
    AVA + Spectron + JavaScript 对 JS 编写的客户端进行自动化测试
  • 原文地址:https://www.cnblogs.com/qizexi/p/9048766.html
Copyright © 2011-2022 走看看