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

在这里插入图片描述

一、分布式搜索引擎: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.mzph.cn/news/200775.shtml

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

相关文章

python爬虫混肴DES案例:某影视大数据平台

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关 一、找出需要加密的参数 js运行atob(‘aHR0cHM6Ly93d3cuZW5kYXRhLmNvbS5jbi9Cb3hPZmZpY2UvQk8vTW9udGgvb25lTW9udGguaHRtbA’…

【Vue】将官方路由管理器 vue-router 库引入 Vue 项目的三种方法

前言 Vue Router 是 Vue.js 的官方路由管理器。它可以帮助我们在 Vue 应用中实现页面之间的跳转和导航,并且提供了一些高级功能,如路由参数、路由嵌套、路由守卫等。 Vue Router 的主要作用是将不同的组件映射到不同的 URL,并根据 URL 的变化…

人、机不同在于变与多

人擅长变,如变模态、变尺度,而机器侧重多,如多模态、多尺度。 人类擅长变化的能力是由于我们的大脑和思维能力的灵活性所决定的。我们可以通过学习和适应,改变我们的态度、行为方式和观点,以适应不同的情境和环境。例如…

图像识别经典轻量级网络模型总结梳理、原理解析与优劣对比分析

在前面的很多博文中,我们不止一次提到过,在实际业务项目开发过程中,我们会经常使用到轻量级的网络模型,本文主要是总结梳理前面经常使用到的一些轻量级的图像识别模型。 【MobileNetv1】 MobileNetv1 是一种轻量级的卷积神经网络&…

PYthon数据分析学前导语

文章目录 1.学习计划1.1 第一阶段:数据分析阶段1.2 第二阶段:可视化阶段1.3 第三阶段:项目实战阶段 2. 相关工具库的安装2.1.Pandas与Numpy的安装2.2 matplotlib, seaborn, Pyecharts的安装 1.学习计划 欢迎开始Python数据分析系列博客的学习…

删除误提交的 git commit

背景描述 某次的意外 commit 中误将密码写到代码中并且 push 到了 remote repo 里面, 本文将围绕这个场景讨论如何弥补. 模拟误提交操作 在 Gitee 创建一个新的 Repo, clone 到本地 git clone https://gitee.com/lpwm/myrepo.git创建两个文件, commit 后 push 到 remote 作…

docker 手工redis7.x cluster

IP端口192.168.0.816379/6380192.168.0.826379/6380192.168.0.1146379/6380 mdkir /data/{6379,6380}cat <<END> /data/6379.conf # 端口号 port 6379# 设置客户端连接后进行任何其他指定前需要使用的密码 #requirepass 123456 ## 当master服务设置了密码保护时(用re…

个人作品集

个人作品集 封面设计 排版设计 3D建模 Pr剪辑 个人剪辑作品 场景搭建

Azure Machine Learning - 使用 Azure OpenAI 服务生成文本

使用 Azure OpenAI 服务生成文本 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&#xff0c;项目管理专业人士&…

金蝶云星空单据编辑界面,不允许批量填充操作

文章目录 金蝶云星空单据编辑界面&#xff0c;不允许批量填充操作案例演示开发设计测试 金蝶云星空单据编辑界面&#xff0c;不允许批量填充操作 案例演示 售后单&#xff0c;明细信息单据体&#xff0c;物料编码字段禁止批量填充。 开发设计 编写表单插件&#xff0c;在Be…

案例052:用于日语词汇学习的微信小程序

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

iOS不越狱自动挂机

自动挂机在电脑上或者安卓手机上都相对容易&#xff0c;而在不越狱的iOS设备上还是有点难度的。 此方法不是我原创&#xff0c;详情见&#xff1a; 【苹果党福音&#xff0c;ios也能用的挂机脚本】 https://www.bilibili.com/video/BV1sv4y1P7TL/?share_sourcecopy_web&v…

菜鸟学习日记(python)——条件控制

Python 中的条件语句是通过一条或多条语句的执行结果&#xff08;True 或者 False&#xff09;来决定执行的代码块。 它的一般格式为&#xff1a;if...elif...else if condition1: #条件1CodeBlock1 #代码块1 elif condition2:CodeBlock2 else:CodeBlock3 如果con…

利大于弊:物联网技术对电子商务渠道的影响

For Better or For Worse: Impacts of IoT Technology in e-Commerce Channel 物联网技术使用传感器和其他联网设备来手机和共享数据&#xff0c;并且被视为一种可以为供应链成员带来巨大的机会的突破性技术。本文的研究背景是&#xff1a;一个提供物联网基础设备的电子商务平…

CentOS最小化安装后怎么转图形界面/可视化桌面?

文章目录 1、命令行和图形界面切换方式一方式二 2、最小化安装转桌面1-设置网络2-测试网络3-更新文件4-安装图形5-查看默认6-设置默认 界面效果参考视频 1、命令行和图形界面切换 如果安装的是最小化&#xff0c;那么init 5 (进入图像化桌面)命令是无效的 方式一 1.如果在命…

初学Python基础后,如何制定学习计划?

如果你是Python小白&#xff0c;学完基础语法是个了不起的成就&#xff0c;但是接下来应该干嘛呢&#xff1f;你应该学习哪些内容&#xff1f;你应该如何规划你的Python学习路线&#xff1f; 其实这些问题的答案都取决于你的个人目标和兴趣。你想要用Python做什么&#xff1f;…

1.vue学习笔记(vue简介+API风格+开发前的准备)

1.介绍 1.一款用于构建用户页面的JavaScript框架 2.基于HTML、CSS、JavaScript 3.官方文档&#xff1a;cn.vuejs.org2.渐进式框架 1.注重灵活性/可被逐步集成 根据需求场景&#xff1a;1.无需构建步骤&#xff0c;渐进式增强静态的HTML2.在任何页面中作为Web Components嵌入&…

全息图着色器插件:Hologram Shaders Pro for URP, HDRP Built-in

8个新的Unity全息图着色器,具有故障效果,扫描线,网格线,和更多其他效果!与所有渲染管线兼容。 软件包添加了一系列的全息图着色器到Unity。从基本的全息图与菲涅耳亮点,先进的全息图与两种故障效应,扫描线,文体点阵和网格线全息图! 特色全息效果 Basic-支持菲涅耳发光照…

Hadoop学习笔记(HDP)-Part.11 安装Kerberos

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

Netty核心知识总结

Netty是一个高性能、异步事件驱动的NIO框架&#xff0c;它提供了对TCP、UDP和文件传输的支持&#xff0c;作为一个异步NIO框架&#xff0c;Netty的所有IO操作都是异步非阻塞的&#xff0c;通过Future-Listener机制&#xff0c;用户可以方便的主动获取或者通过通知机制获得IO操作…