PAcee Hub

学习 笔记


  • 首页

  • 标签

  • 分类

RabbitMQ简介与安装

发表于 2019-12-26 | 分类于 rabbitmq

一、AMQP协议

简介

AMQP是一种高级消息队列的二进制协议,提供了统一的消息服务标准,是应用层协议的一种标准,为面向消息的中间件设计。

就是说,AMQP只是一种协议或是规范,它其中有着很多关于消息的概念,比如当我想开发一个消息中间件,PaceMQ时,就可以根据这些概念走。

协议模型

1576824329382

阅读全文 »

消息中间件介绍

发表于 2019-12-26 | 分类于 rabbitmq

消息中间件介绍

什么是MQ

消息队列(Messages Queue),从字面意思是,本质是一个队列,先进先出规则,只不过队列中存放的是messages消息而已。

主要用途是不同进程/线程间通信,比如服务A调用服务B就可以通过MQ。

为什么会产生消息队列

有几个原因:

  • 不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;
  • 不同进程(process)之间传递消息时,为了实现标准化,将消息的格式规范化了,并且,某一个进程接受的消息太多,一下子无法处理完,并且也有先后顺序,必须对收到的消息进行排队,因此诞生了事实上的消息队列
  • 《Java帝国之消息队列》,《一个故事告诉你什么是消息队列》
    阅读全文 »

ElasticSearch性能优化

发表于 2019-12-25 | 分类于 elasticsearch

ES对于其他的一些应用来说,能够优化的地方非常少,其实最大的优化就是给予它足够大的内存,我们说下其他一些优化。

一、慢查询日志

ES会自动开启慢查询日志,来查看插入搜索哪些性能比较慢,然后再考虑如何优化写入或搜索的性能。

在elasticsearch.yml中配置快慢的阈值,即多少秒算慢,需要写到日志里

1
2
3
4
5
6
7
8
9
index.search.slowlog.threshold.query.warn: 10s
index.search.slowlog.threshold.query.info: 5s
index.search.slowlog.threshold.query.debug: 2s
index.search.slowlog.threshold.query.trace: 500ms

index.search.slowlog.threshold.fetch.warn: 1s
index.search.slowlog.threshold.fetch.info: 800ms
index.search.slowlog.threshold.fetch.debug: 500ms
index.search.slowlog.threshold.fetch.trace: 200ms

对于慢查询日志的日志格式,是在log4j2.properties中配置,es默认会给出一些配置,可以根据自己的需要修改。

阅读全文 »

ElasticSearch集群配置

发表于 2019-12-25 | 分类于 elasticsearch

一、背景知识

当我们想要搭建集群时,要先了解下ES的集群发现机制zen discovery

在默认情况下,es进程会绑定在自己的回环地址上,会去寻找9300-9305端口是否有es node,如果有并且启动,会主动与其通信,组成集群。这样的话如果本地启动多个节点,其搭建集群是非常方便的。但是生产环境不是这样,因为是在不同服务器上进行集群的搭建,需要绑定到非回环的ip地址上,并使用集群发现机制进行通信。

集群发现机制常用的有两种:

  • unicast:es默认的集群发现机制,通过特殊节点的配置,使之组成一个集群,主要使用网络通信协议,而不是随便什么节点就可以进入集群。
  • multicast:这个机制非常简单,所有在启动的节点接收到multicast ping后就自动加入集群,但是非常脆弱,如果有点网络波动,可能会导致集群的不稳定,一般不使用。
    阅读全文 »

ElasticSearch集群搭建

发表于 2019-12-25 | 分类于 elasticsearch

我们开始学习搭建集群,这里搭建4节点的虚拟机集群,每个虚拟机1核2G,因为我笔记本只有16G,需要留8G。

一、在虚拟机中安装centos7

软件:VMware10,centos7

1.1.安装centos7

这里正常安装即可,主要配置下内存为2G,名称为elasticsearch01即可

1.2.配置网络

安装完毕需要配置网络,因为是centos7与之前的6.x不同,6.x的百度一下

1)设置IP与DNS

vi /etc/sysconfig/network-scripts/ifcfg-ene33,然后按照如下配置,其IPADDR和GATEWAY的前三位可以根据自己虚拟机默认配置的配,使用ip addr查看

阅读全文 »

ElasticSearch集群硬件配置

发表于 2019-12-25 | 分类于 elasticsearch

本章主要介绍生产环境中ES集群其硬件配置需求,需要根据我们的需求来决定部署的机器的内存,cpu,磁盘,jvm等等的资源配置。这里简单介绍一下

一、内存

ES对于内存来说,占用量很大,他不仅是占用JVM的内存,还有机器的内存。

因为ES底层是Lucene,Lucene是基于磁盘文件来读写索引数据的,倒排索引正排索引,Lucene会大量使用 os cache,频繁访问磁盘数据再内存中进行缓存,所以如果内存大,其性能便会高,因为os cache能缓存更多的数据,而不用去对磁盘进行操作,磁盘操作减少性能便提高。

如果生成环境中,es上千万数据搜索需要10s来完成,那么大概率是内存不够用了,需要分配更多的内存才行,进行了大量的磁盘读写操作。

关于内存相关知识,这里只是简单介绍一下,后面再细说。

阅读全文 »

ElasticSearch搜索引擎

发表于 2019-12-25 | 分类于 elasticsearch

本笔记分析研究对于ES的search功能的原理

一、查询分页

通过之前的学习,我们可以知道搜索时可以通过from和size字段来配置分页信息

1
2
3
4
5
6
7
8
POST /ecommerce/product/_search
{
"query": {
"match_all": {}
},
"from": 0,
"size": 2
}

1571034663141

阅读全文 »

ElasticSearch进阶

发表于 2019-12-25 | 分类于 elasticsearch

一、ElasticSearch的基础分布式架构

1.1.ES对复杂分布式机制的透明隐藏特性

ES是一个分布式系统,为了对应大数据量,ES对于复杂的分布式机制隐藏了很多特性

  • 分片机制:我们使用时,es自动的就将创建的document存入集群中了,这时就要思考ES是如何分片的?数据存放到哪个shard中了?
  • 集群发现机制:当配置分布式节点时,启动第二个节点会发现直接就加入到集群了,ES是怎么做到自动发现集群的?不仅加入集群,还将部分数据存储到自己上
  • shard负载均衡:当有3个节点时,9个shard会自动均匀的分配到节点上
  • shard副本:副本是如何创建且自动冗余的
  • 请求路由
  • 集群扩容
  • shard重分配:当有新节点加入,shard会重新分配
    阅读全文 »

ElasticSearch与Java

发表于 2019-12-25 | 分类于 elasticsearch

ES对于Java客户端提供了两种连接方式

  • Transport连接:基于TCP的连接方式,即使用9300端口,即执行Java请求
  • REST client:高级客户端,使用REST请求,基于9200端口,执行Http请求

对于ES来说 es8以上便没有transport客户端了,即弃用,所以更推荐使用High level rest client,简称高级客户端。

对于学习阶段,准备将两种方式都简单学习一下。

一、Transport客户端

Java对ES进行操作,首先需要一个客户端。

阅读全文 »

ElasticSearch入门

发表于 2019-12-25 | 分类于 elasticsearch

一、ElasticSearch介绍

1.1.什么是ES

ElasticSearch简称es,是基于Lucene的一款分布式全文检索服务器,实时存储,检索数据,分布式处理PB级别数据,自动分片并维护冗余副本,数据安全,扩展性好是它的几大特点。es也使用Java开发,底层为Lucene来实现索引搜索功能,但是它使用RESTful风格API来简化Lucene复杂的操作,从而使得全文检索更简单。

1.2.ES的使用场景

所有用到搜索的地方都有ES的影子,如:

github的搜索功能,github自2013年起使用ES来作为搜索引擎,来处理PB级别的数据。

维基百科:启动以elasticsearch为基础的核心搜索架构

SoundCloud:“SoundCloud使用ElasticSearch为1.8亿用户提供即时而精准的音乐搜索服务”

百度:百度目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标数据及用户自
定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或业务层面异常。目前覆盖百度内部
20多个业务线(包括casio、云分析、网盟、预测、文库、直达号、钱包、风控等),单集群最大100台机
器,200个ES节点,每天导入30TB+数据

新浪使用ES 分析处理32亿条实时日志

阿里使用ES 构建挖财自己的日志采集和分析体系

阅读全文 »
< 1…456…8 >
PAcee

PAcee

学习 笔记

76 日志
6 分类
7 标签
© 2020 PAcee