分布式搜索引擎(Elastic Search)+消息队列(RabbitMQ)部署

news2024/11/25 16:37:12

在这里插入图片描述

一、分布式搜索引擎:Elastic Search

Elastic Search的目标就是实现搜索。是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。在数据量少的时候,我们可以通过索引去搜索关系型数据库中的数据,但是如果数据量很大,搜索的效率就会很低,这个时候我们就需要一种分布式的搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elastic search结合kibana、Logstash、Beats,也就是elastic stack(ELK),被广泛应用在日志数据分析、实时监控等领域。而elastic search是elastic stack的核心,负责存储、搜索、分析数据。
Elastic search是一个基于Lucene的搜索服务器。Elastic search底层是基于lucene来实现的。Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目。
ES中的存储是这样的:
一个索引(indeces)相当于一个数据库(database),每个索引中有多个类型types(相当于表结构),每个索引中有多个documents(相当于行),每个documents由多个fields组成(相当于字段)。
你可以把ES理解为他是一个面向文档的数据库。下面用一张图描述ES和关系型数据库之间的相似之处:

在企业中,往往是Elasticsearch和mysql两者结合使用:
1、对安全性要求较高的写操作,使用mysql实现
2、对查询性能要求较高的搜索需求,使用elasticsearch实现
3、两者再基于某种方式,实现数据的同步,保证一致性
Elastic Search与MySQL的特征:
MySQL:擅长事务类型操作,可以确保数据的安全和一致性
Elastic Search:擅长海量数据的搜索、分析、计算
在这里插入图片描述

二、RabbitMQ

RabbitMQ主要任务是处理海量的信息。主要用于分布式系统的内部各子系统之间的数据存储转发,这是系统解耦方面的一种运用。它是对AMQP协议的实现,支持多种客户端,可以对来自客户端的异步消息进行存储转发,在易用性、扩展性、高可用性等方面表现不俗。
RabbitMQ的特点:
1、基于ErLang语言开发具有高可用高并发的优点,适合集群服务器;
2、健壮、稳定、易用、跨平台、支持多种语言、文档齐全;
3、可靠性高,有消息确认机制和持久化机制,;
4、可靠性:RabbitMQ支持持久化,保证了消息的稳定性;
5、高并发高可用: RabbitMQ使用了Erlang作为开发语言,Erlang是为电话交换机开发的语言,天生自带高并发和高可用的光环;可用于高并发系统当中的流量削峰,将请求流量数据临时存放到RabbitMQ当中,从而避免大量的请求流量直接达到后台服务,把后台服务冲垮。
6、集群部署简单:正是因为Erlang使得RabbitMQ集群部署变的超级简单;
7、RabbitMQ是实现了AMQP标准的消息服务器。
RabbitMQ是一种基于erlang语言开发的流行的开源消息中间件,或者说是一个消息队列系统。消息的生产者把要发送的消息放入到消息队列中,消息的接收端可以根据RabbitMQ配置的转发机制接收服务端发来的消息。RabbitMQ依据指定的转发规则进行消息的转发、缓冲和持久化操作,主要用在多服务器间或单服务器的子系统间进行通信,RabbitMQ是分布式系统的标准配置。

三、安装部署:

(一)ES 安装Elastic Search

  1. 确保系统已经安装jdk1.8及以上版本

  2. 在这里插入图片描述

  3. 在这里插入图片描述

  4. 在这里插入图片描述

  5. 在这里插入图片描述

  6. 在这里插入图片描述

  7. 添加用户
    useradd admin

  8. 解压
    (1)tar xf elasticsearch-5.6.7.tar.gz -C /usr/local
    (2)cd /usr/local

  9. 设置软链
    ln -sv elasticsearch-5.6.7 elasticsearch
    5.创建文件夹
    mkdir -pv /usr/local/elasticsearch/{data,logs}
    mkdir -p /usr/local/elasticsearch/plugins
    mkdir -p /usr/local/elasticsearch/config/scripts

  10. 设置权限
    chown -R admin.admin /usr/local/elasticsearch-5.6.7

  11. 修改配置文件
    vi /usr/local/elasticsearch/config/elasticsearch.yml
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    cluster.name: my_application

换个节点名字

node.name: node-1
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs

修改一下ES的监听地址,这样别的机器也可以访问

network.host: 0.0.0.0
http.port: 9200

增加新的参数,这样head插件可以访问es

http.cors.enabled: true
http.cors.allow-origin: “*”

  1. 编辑limit.conf文件
    vi /etc/security/limits.conf
    在这里插入图片描述
  2. 编辑sysctl.conf文件 /etc/sysctl.conf
    在这里插入图片描述

vm.max_map_count= 262144
sysctl -p
14. 启动es服务,切换至上面添加的admin用户
(1)指令如下
cd /usr/local
chown -R admin.admin /usr/local/elasticsearch-5.6.7
su admin
(2)启动es
cd elasticsearch/bin
./elasticsearch
16. 可能遇到的问题
在这里插入图片描述
在这里插入图片描述

  1. 安装ik分词器 解压后文件名称改为ik-analysis
    放入 /usr/local/elasticsearch/plugins
    切换root 执行这个命令
    chown -R admin.admin /usr/local/elasticsearch-5.6.7
    在这里插入图片描述
    在这里插入图片描述

  2. 后台启动es
    cd /usr/local/elasticsearch/bin
    su admin
    ./elasticsearch -d
    在这里插入图片描述

(二)RabbitMQ安装

  1. 上传安装包
    在这里插入图片描述

2 解压
tar -zxvf otp_src_22.0.tar.gz
3. 移走
mv otp_src_22.0 /usr/local/
4. 切换目录
cd /usr/local/otp_src_22.0/
5. 安装依赖
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 创建即将安装的目录
    mkdir …/erlang
  2. 配置安装路径
    chmod +7 /usr/local/erlang
    ./configure --prefix=/usr/local/erlang
    在这里插入图片描述
    在这里插入图片描述

提示权限不够时,以下路径给root配置+7权限
chmod +7 /usr/local/opt_src_22.0/Erts/configure
chmod +7 /usr/local/opt_src_22.0/Make/configure
chmod +7 /usr/local/opt_src_22.0/Lib/common-test/configure
chmod +7 /usr/local/opt_src_22.0/Lib/crypto/configure
chmod +7 /usr/local/opt_src_22.0/Lib/erl-interface/configure
chmod +7 /usr/local/opt_src_22.0/Lib/megaco/configure
chmod +7 /usr/local/opt_src_22.0/Lib/odbc/configure
chmod +7 /usr/local/opt_src_22.0/Lib/snmp/configure
chmod +7 /usr/local/opt_src_22.0/Lib/wx/configure
在这里插入图片描述

  1. 安装
    make install
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 查看一下是否安装成功
    ll /usr/local/erlang/bin

  3. 添加环境变量
    echo ‘export PATH=$PATH:/usr/local/erlang/bin’ >> /etc/profile
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 刷新环境变量
    source /etc/profile

  5. 执行erl (在安装目录下执行)

  6. 在这里插入图片描述

通过生效的环境变量执行(相当于有了DOS系统搜索路径后,再执行.exe或.com .bat)
在这里插入图片描述
14. halt().命令退出来
在这里插入图片描述

  1. 由于是tar.xz格式的所以需要用到xz,没有的话就先安装
    yum install -y xz
    在这里插入图片描述

  2. 解压rabbitmq-server-generic-unix 第一次解压
    tar /bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz

  3. 第二次解压
    tar -xvf rabbitmq-server-generic-unix-3.7.15.tar

  4. 移走
    mv rabbitmq_server-3.7.15/ /usr/local/
    cd /usr/local/

  5. 改名
    mv /usr/local/rabbitmq_server-3.7.15 rabbitmq

  6. 配置环境变量
    echo ‘export PATH=$PATH:/usr/local/rabbitmq/sbin’ >> /etc/profile

  7. 刷新环境变量
    source /etc/profile
    在这里插入图片描述
    在这里插入图片描述

  8. 启动 停止 状态
    rabbitmq-server –detached
    在这里插入图片描述

rabbitmqctl stop

rabbitmqctl status
在这里插入图片描述

  1. 开启web插件
    rabbitmq-plugins enable rabbitmq_management
    在这里插入图片描述

  2. 添加一个用户
    rabbitmqctl add_user admin yuanfeng021
    在这里插入图片描述

  3. 配置权限
    rabbitmqctl set_permissions -p “/” admin “." ".” “.*”
    在这里插入图片描述

    rabbitmqctl set_user_tags admin administrator
    在这里插入图片描述
    在这里插入图片描述
    26、在CentOS8本机上访问:http://XXX.XXX.XXX:15672/ admin yuanfeng021
    在这里插入图片描述
    在这里插入图片描述

27、此时发现在局域网上不能访问,所以
(1)查看CentOS上开启的端口号
在这里插入图片描述

可以看出,并没有15672端口未被开启
(2)通过命令firewall-cmd –add-port=xxx/tcp命令开启5672、15671、15672三个端口
在这里插入图片描述
若永久开启15672端口时,使用命令firewall-cmd --permanet --add-port=15672/tcp
(3)修改rabbitmq的配置文件,rabbitmq-env
在这里插入图片描述

增加一行内容如下:(大写)
NODE_IP_ADDRESS=192.168.0.132(你安装rabbitmq server的CentOS的网卡ip地址)
在这里插入图片描述

(4)从局域网的电脑telnet测试rabbitmq-server的15672端口号
在这里插入图片描述

测试结果如下:说明15672端口开启正常(左上方的光标一闪一闪,未提示连接端口失败)
在这里插入图片描述

28、从局域网访问rabbitmq-server正常,如下图:
在这里插入图片描述

访问成功,至此分布式搜索引擎(Elastic Search)+消息队列(RabbitMQ)部署结束,不足之处敬请批评指正。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux下基本指令 —— 2】

Linux下基本指令 —— 2 十.more 指令语法:功能:常用选项:举例:Xshell7展示十一.less 指令语法:功能:选项:Xshell7展示 十二.head 指令语法:功能:选项:Xshell…

安卓1.0明显是基于linux内核开发的,安卓1.0是不是linux套壳?

安卓1.0明显是基于linux内核开发的,安卓1.0是不是linux套壳? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「安卓开发资料从专业入门到高级教程工具包」,点个关注&…

MyBatis下载

官网 MyBatis官网:https://mybatis.org/mybatis-3/ 介绍 MyBatis是一个持久化框架。 支持定制化SQL、存储过程、和高级映射。 MyBatis几乎省掉了所有的JDBC代码、手工参数设置、和结果取回。 MyBatis可以使用简单的XML或者注解进行配置、映射简单类型/接口/Java…

移动距离

//偶数行需要反转,判断行数时,最后一个需要特判,可以用向上取整 //也可以把传入的值减一,下标从0开始 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main{static int w,m,n;static BufferedReader i…

(04730)电路分析基础之叠加原理

前言 在看今天的内容前,我建议大家先看一下这个列题,想一想这个I1电流为什么可以这样用! 当然想不通也没关系(当我学完基尔霍夫定律看这一题也很懵逼,不清楚i1为什么能够这样用),但是学完今天的…

DSGN:用于 3D 目标检测的深度立体几何网络

论文地址:https://www.jianshu.com/go-wild?ac2&urlhttps%3A%2F%2Farxiv.org%2Fpdf%2F2001.03398v3.pdf 论文代码:https://github.com/chenyilun95/DSGN 论文背景 大多数最先进的 3D 物体检测器严重依赖 LiDAR 传感器,因为基于图像的方…

C/C++,优化算法——双离子推销员问题(Bitonic Travelling Salesman Problem)的计算方法与源代码

1 文本格式 // C program for the above approach #include <bits/stdc.h> using namespace std; // Size of the array a[] const int mxN 1005; // Structure to store the x and // y coordinates of a point struct Coordinates { double x, y; } a[mxN]; //…

近似同态加密的 IND/SIM-CPA+ 安全性:对于 CKKS 实际有效的攻击

参考文献&#xff1a; [LM21] Li B, Micciancio D. On the security of homomorphic encryption on approximate numbers[C]//Advances in Cryptology–EUROCRYPT 2021: 40th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Z…

初识 pytest 及断言使用

章节目录&#xff1a; 一、pytest 相关概述二、环境搭建三、使用前提四、断言4.1 常用断言4.2 异常断言4.3 断言装饰器 五、结束语 一、pytest 相关概述 pytest 是一个基于 Python 编写的测试框架&#xff0c;用于编写和运行各种类型的软件测试。它提供了丰富的功能和灵活的语法…

【数据结构 — 排序 — 插入排序】

数据结构 — 排序 — 插入排序 一.排序1.1.排序的概念及其运用1.1.1排序的概念1.1.2排序运用1.1.3 常见的排序算法 二.插入排序2.1.直接插入排序2.1.1.算法讲解2.1.2.代码实现2.1.2.1.函数定义2.1.2.2.算法接口实现2.1.2.3.测试代码实现2.1.2.4.测试展示 2.2.希尔排序2.2.1.算法…

消费升级:无人零售的崛起与优势

消费升级&#xff1a;无人零售的崛起与优势 随着人们生活水平的提高&#xff0c;消费内容正在从生存型消费转向以精神体验和享乐为主的发展型消费。社会居民的消费结构不断变迁&#xff0c;明显呈现消费升级趋势。个性化和多元化消费势头正在崛起&#xff0c;特别是无人零售的自…

【WPF.NET开发】WPF中的对话框

目录 1、消息框 2、通用对话框 3、自定义对话框 实现对话框 4、打开对话框的 UI 元素 4.1 菜单项 4.2 按钮 5、返回结果 5.1 模式对话框 5.2 处理响应 5.3 非模式对话框 Windows Presentation Foundation (WPF) 为你提供了自行设计对话框的方法。 对话框是窗口&…

算法:常见的哈希表算法

文章目录 两数之和判断是否互为字符重排存在重复元素存在重复元素字母异位词分组 本文总结的是关于哈希表常见的算法 哈希表其实就是一个存储数据的容器&#xff0c;所以其实它本身的算法难度并不高&#xff0c;只是利用哈希表可以对于一些场景进行优化 两数之和 class Solut…

wordpressCPS推广插件-wordpress原淘宝客插件

淘宝客插件改名为CPS推广插件&#xff0c;老版本将不再提供下载。CPS推广插件顾名思义&#xff0c;即购买返利。主要是方便站长添加淘宝、京东的推广商品信息。插件通过大淘客的接口&#xff0c;实现一键添加&#xff0c;支持WordPress经典编辑器&#xff08;Tinymce&#xff0…

机器学习中的特征工程

1 特征工程概述 特征工程是机器学习中的一个关键步骤&#xff0c;在机器学习领域中占有非常重要的地位&#xff0c;是机器学习中不可或缺的一部分&#xff0c;下图展示了一个常规的机器学习流程&#xff1a; 特征工程涉及从原始数据中提取、选择和转换特征&#xff0c;以改善模…

ELK(六)—Filebeat安装部署

目录 一、介绍1.1特点1.2使用原因1.3结构图1.4工作流程 二、安装部署2.1下载2.2启动2.3监控日志文件2.4自定义字段 三、连接Elasticsearch四、工作原理 一、介绍 Filebeat是一个轻量级的日志和文件数据收集器&#xff0c;属于Elastic Stack&#xff08;ELK Stack&#xff09;中…

智能优化算法应用:基于侏儒猫鼬算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于侏儒猫鼬算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于侏儒猫鼬算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.侏儒猫鼬算法4.实验参数设定5.算法结果6.参考…

vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)

目录 一、什么是Vue路由导航守卫&#xff1f; 二、全局守卫 1、beforeEach 下面是一个beforeEach的示例代码&#xff1a; 2、beforeResolve 下面是一个beforeResolve的示例代码&#xff1a; 3、afterEach 下面是一个afterEach的示例代码&#xff1a; 三、路由独享守卫…

基于stm32ESP8266控制并显示速度的小车

这篇博客是为了实现stm32与ESP8266通讯控制的小车&#xff0c;同时可以实现在网络助手和OLED显示屏上显示速度的功能。 一、硬件部分 名称图片功能32单片机--小车-oled显示屏显示当当前的速度&#xff0c;有需要了解如何使用的可以看看我的文章&#xff0c;http://t.csdnimg.…

C++:vector增删查改模拟实现

C:vector增删查改模拟实现 前言一、迭代器1.1 非const迭代器&#xff1a;begin()、end()1.2 const迭代器&#xff1a;begin()、end() 二、构造函数、拷贝构造函数、赋值重载、析构函数模拟实现2.1 构造函数2.1.1 无参构造2.1.2 迭代器区间构造2.1.3 n个值构造 2.2 拷贝构造2.3 …