程序人生
文章平均质量分 59
Taylor007
这个作者很懒,什么都没留下…
展开
-
Elasticsearch 集群状态恢复(RED 与 YELLOW)
分片未被分配原因有下列类型:INDEX_CREATED由于 create index api 创建索引导致,索引创建过程中,把索引的全部分片分配完毕需要一个过程,在全部分片分配完毕之前,该索引会处于短暂的 RED 或 YELLOW 状态。因此监控系统如果发现集群 RED,不一定代表出现了故障。CLUSTER_RECOVERED集群完全重启时,所有分片都被标记为未分配状态,因此在集群...原创 2019-10-26 18:40:52 · 2342 阅读 · 1 评论 -
Elasticsearch 测试数据的导入
数据地址:https://raw.githubusercontent.com/elastic/elasticsearch/master/docs/src/test/resources/accounts.json将数据拷贝成一个后缀json结束的文本文件,命名为accounts.jsoncurl -H "Content-Type: application/json" -XPOST "localh...原创 2019-10-23 23:06:50 · 2149 阅读 · 0 评论 -
Elasticsearch 之 Metrics Aggregations(数值度量聚合)
Metrics Aggregations(数值度量聚合)该系列中的聚合基于以某种方式从正在聚合的文档中提取的值来计算度量。这些值通常从文档的字段中提取(使用字段数据),但也可以使用脚本生成。数值度量聚合是一种输出数值的特殊类型的度量聚合。一些聚合输出单个数值度量(例如平均值),称为单值度量聚合,另一些输出多个度量值(例如统计数据),称为多值数值度量聚合。单值与多值数值度量聚合的区别是,他们充当...原创 2019-07-01 23:01:57 · 2184 阅读 · 0 评论 -
rabbitmqctl 使用
1.清除数据关闭应用rabbitmqctl stop_app清除rabbitmqctl reset再次启动rabbitmqctl start_app注: 该操作会清除所有的配置2. 为用户添加权限添加用户使用户 userA 具有‘/’这个virtual host中所有资源的配置、写、读权限rabbitmqctl set_permissions -p / userA '...原创 2019-06-11 23:39:13 · 2126 阅读 · 0 评论 -
RabbitMQ 之队列长度限制
队列长度限制概述队列的最大长度可以限制为一组消息数或一组字节数(忽略消息属性和其他开销的所有消息体长度总和),或者两者兼有。对于任何给定的队列,最大长度(任一类型)可以由客户端使用队列的参数来定义,也可以在服务器中使用配置策略(policies)来定义。在策略和参数都指定最大长度的情况下,将应用两个值中的较小值。对列长度可以使用 operator policies 强制设置。在所有情况下...翻译 2019-06-11 23:30:20 · 21723 阅读 · 4 评论 -
RabbitMQ Part5 (Topics)
Topics在上一节教学中,我们改善了日志系统。我们由只能使用虚拟广播的 fanout 交换机改为了 direct 类型,并且获得了选择性接收消息的可能性。尽管使用直连交换机改善了系统,但它依然有限制 – 它不能基于多标准路由。在我们的日志系统,可能不仅仅想要订阅基于日志严重性的消息,还希望基于日志的发出源订阅。你或许从 syslog unix 工具了解到这一概念,它基于日志的严重性和产生的...翻译 2019-06-17 10:20:20 · 259 阅读 · 0 评论 -
RabbitMQ Part4 (Routing)
路由在上一个教程中,我们构建了一个简单的日志记录系统。我们能够向许多接收者广播日志消息。在本教程中,我们将为它添加一个特性——我们将使只订阅消息子集成为可能。例如,我们仅将关键错误消息定向到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息。绑定在前面的例子中,我们已经创建了绑定。您可能还记得类似以下代码:$channel->queue_bind($queue_na...翻译 2019-06-16 19:42:06 · 132 阅读 · 0 评论 -
RabbitMQ Part3 (Publish/Subscribe)
发布/订阅在前几节教学中,我们创建了工作队列。工作队列之后的假设是每个任务都投递给一个特定的工作进程。在这一节中,我们做一些完全不同的事情。我们会分发一个消息给多个消费者。这个模式称为" publish/subscribe"。为了说明这种模式,我们将创建一个简单的日志系统。它包括两部分程序:第一部分会发出日志消息,第二部分接收并打印它们。在我们的日志系统中,接收器程序的每一个运行的副本都会收...翻译 2019-06-16 18:39:48 · 267 阅读 · 0 评论 -
RabbitMQ Part2 (Work queues)
工作队列(Work Queues)在第一节中介绍了将消息发送到指定队列并从该队列中接收消息。在这一节中我们将创建 Work Queue 来分发耗时的任务给多个 worker。工作队列(行话称为 Task Queues) 的主要思想是避免立即做一些资源密集型的任务,而必须等待其完成。相反,我们将任务安排在稍后完成。我们封装一个任务作为一个消息并将它发送到一个队列。一个在后台运行的工作进程将任务...翻译 2019-06-16 17:37:25 · 146 阅读 · 0 评论 -
RabbitMQ 鉴权、授权、权限访问
鉴权、授权、访问控制概览这部分描述了 RabbitMQ 中的鉴权和授权特性。以及操作着对系统的访问控制。不同的用户可以被授予特定的 vitual host 访问。在每个虚拟主机的具体许可也可以限制。RabbitMQ 支持两种主要的鉴权机制以及几个认证和授权后端。基于密码的鉴权有配套的指南。 关于支持 TLS 的内容也包含在专门的指南里。指南中讨论的其他话题包括:默认虚拟主机和用户对...翻译 2019-06-20 09:11:09 · 21510 阅读 · 0 评论 -
Elasticsearch 之 Mappings
映射(Mapping)映射是用来定义一个文档,和其包含的字段,是如何存储和索引的过程。举例来说,使用映射可以定义:哪一个字符串字段应该看作全文索引字段;哪一个字段包含数字,日期,或者地理定位;是否文档中所有字段的值都该被索引到 _all 字段中;日期字段值的格式;自定义的规则控制是否动态添加索引 (附1)映射类型(Mapping Type)每个索引都有一份映射类型决定了文档如何...翻译 2019-06-18 22:39:19 · 3067 阅读 · 0 评论 -
elasticsearch 之 percolator 类型
特殊查询(percolator)创建curl -X PUT "localhost:9200/my-index" -H 'Content-Type: application/json' -d'{ "mappings": { "_doc": { "properties": { "message": { ...翻译 2019-07-07 23:26:46 · 1647 阅读 · 0 评论 -
Elasticsearch 基本操作
Elasticsearch 基本操作集群查看集群健康度GET /_cat/health?vcurl -XGET "http://localhost:9200/_cat/health?v"响应:epoch timestamp cluster status node.total node.data shards pri relo init unassign pen...原创 2019-07-07 22:57:18 · 405 阅读 · 0 评论 -
CentOS 中守护进程使用
说明CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替原来的 service 命令与 systemctl 命令对比daemon命令systemctl命令说明service [服务] startsystemctl start [unit type]启动se...转载 2019-08-25 22:51:39 · 3867 阅读 · 0 评论 -
Elasticsearch 之别名类型
别名数据类型只能在具有单一映射类型的索引上指定别名数据类型。必须在 6.0 以后的版本,或者设置了 index.mapping.single_type: true 的更早版本才可以使用别名类型。参考 移除映射类型。一个别名映射为索引中的一个字段定义了一个备用名。别名可以用来代替搜索请求中的目标字段,以及用在 field capabilities。PUT trips{ "mappings...翻译 2019-07-30 09:42:02 · 1067 阅读 · 0 评论 -
elasticsearch 之时间类型
日期类型(Date datatype)JSON 没有日期类型,因此在 Elasticsearch 中可以表达成:日期格式化的字符串,比如: “2015-01-01” 或者 “2015/01/01 12:10:30”;毫秒级别的 long 类型秒级别的 integer 类型,比如: 1515150699465, 1515150699;实际上不管日期以何种格式写入,在 ES 内部都会...翻译 2019-07-07 21:54:47 · 18128 阅读 · 2 评论 -
redis 做队列
存入队列$redis->lPush('queue', $value);队列中取出,且会在备用队列中存入相同的值$value = $redis->brpoplpush('queue', 'queue-back', 0); //参数 3 阻塞时间处理完后移除备用队列中值$redis->lRem('queue-back', $value, 1); // 参数...原创 2019-07-06 12:47:45 · 407 阅读 · 0 评论 -
Elasticsearch alias 使用
索引别名一个索引可以接受多个别名,而一个别名也可以映射到多个索引,当指定别名时,别名将自动扩展到添加的索引。别名也可以关联到 filter,然后自动应用到检索,和 routing value。别名不能与索引同名。添加别名,移除别名示例:POST /_aliases{ "actions" : [ { "add" : { "index" : "test1", "alia...原创 2019-07-10 23:29:54 · 7235 阅读 · 0 评论 -
Elasticsearch 类似 Mysql distinct 功能实现
实现方式使用聚合方式实现按 floor distinct,并取出 num 最大的一条记录{ "size": 0, "aggregations": { "field1": { "terms": { "field": "floor", "size": 20 }, "aggs": { "num_to...原创 2019-07-10 22:20:15 · 4287 阅读 · 0 评论 -
RabbitMQ 之 Consumer Prefetch
概览消息者预取是消费者预取机制的扩展。AMQP 0-9-1 指定了 basic.qos 方法使得在一个 channel(一个连接)消费时能够限制未通知消息的数量。不幸的是,channel 并不是理想的范围 — 因为单个信道可以从多个队列中消费,频道和队列需要相互协调保证每条消息的发送都不会超过这个限制。在单个机器上这将会比较慢,而从一个集群上消费将会非常慢。此外,对于许多情况来说,指定适用于...翻译 2019-06-24 00:08:05 · 758 阅读 · 0 评论 -
RabbitMQ Part1 (hello Wrold!)
1 “hello Wrold!”先决条件:该教学认为你已经安装了 RabbitMQ,并且在本地运行在标准的端口(5672)。如果你使用了不同的主机,端口及账号,在连接设置部分需要适当调整。简介RabbitMQ 是一个消息代理:它接收并转发消息。你可以认为它是一个邮局:当你将想要发送的邮件放到邮箱里面以后,而且可以确信邮递员可以把你的邮件送到接受着手里。在这里类比中,RabbitMQ 就...翻译 2019-05-19 17:50:26 · 129 阅读 · 0 评论 -
es 批量更新字段值操作
官方文档curl -X POST "localhost:9200/twitter/_update_by_query" -H 'Content-Type: application/json' -d'{ "script": { "source": "ctx._source.likes++", "lang": "painless" }, "query": { "t...原创 2019-04-18 20:32:26 · 11102 阅读 · 0 评论 -
es 之常用query
索引相关列出所有的索引curl 'localhost:9200/_cat/indices?v'创建索引curl -XPUT 'localhost:9200/testabc?pretty'原创 2019-01-23 20:34:56 · 2228 阅读 · 0 评论 -
elasticsearch 查询之类似mysql in, not in 操作
es 当前使用版本 6.3.0es 中有字段 version,type 为 keyword "query": { "terms": { "version": [ "2", "3" ] } }es 中有字段 title, type 为 text &am原创 2018-12-25 16:51:20 · 22925 阅读 · 0 评论 -
吞吐量(Throughput)和延迟(Latency)
简介Latency,中文译作延迟。Throughput,中文译作吞吐量。它们是衡量软件系统的最常见的两个指标。延迟一般包括单向延迟(One-way Latency)和往返延迟(Round Trip Latency),实际测量时一般取往返延迟。它的单位一般是ms、s、min、h等。吞吐量一般指相当一段时间内测量出来的系统单位时间处理的任务数或事务数(TPS)。注意“相当一段时间”,不是几秒,...转载 2018-11-10 17:34:56 · 13081 阅读 · 1 评论 -
composer命令介绍
介绍composer是php的一个依赖管理工具。文档说明:https://docs.phpcomposer.com/01-basic-usage.html#composer.json-Project-Setup常用命令install和update区别项目中所有的依赖都定义在compser.json中,在指定版本的时候并不需要一定指明一个精确的版本。那么就有可能发生这样的情况,对于同一...原创 2018-10-10 21:22:54 · 845 阅读 · 0 评论 -
Kafka、RabbitMQ、RocketMQ等消息中间件的对比
一、简介分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业...转载 2018-09-28 18:46:42 · 811 阅读 · 0 评论 -
RabbitMQ使用
安装原创 2018-09-28 18:45:52 · 130 阅读 · 0 评论 -
git 多账号解决
生成多个ssh key命令:ssh-keygen -t rsa -C "one@gmail.com"在~/.ssh运行该命令并指定路径及文件,创建多个ssh key默认创建id_rsa,id_rsa.pub到当前文件下(此处为id_rsa_home, id_rsa_home.pub)创建config文件在当前文件下创建config,并添加以下配置# one(one@gmail....原创 2018-10-04 22:57:09 · 230 阅读 · 0 评论 -
正则表达式入门
在线匹配工具http://rubular.com开源中国正则语法1.限定词默认斜杠,理论上任何成对的字符都可以作为限定符2.元字符(用来表示内容的语法)字符本身,就是自身模式字符组[xyz] 匹配若干字符之一字符组元字符[0-9],[a-z] 在集合中 -(连字符)表示一个范围[^abc] 排除型字符组 不等于abc的任意字符. 表示任意(...原创 2018-09-21 23:19:55 · 134 阅读 · 0 评论 -
es 之 批量处理 bulk api
简介说明:The bulk API makes it possible to perform many index/delete operations in a single API call. This can greatly increase the indexing speed。使用以下结构action_and_meta_data\noptional_source\na...原创 2019-01-29 19:47:03 · 2293 阅读 · 0 评论 -
浏览器与 nginx 缓存
简介一种是浏览器访问 nginx,浏览器 Cache另一种是 nginx 访问后端,nginx 自己 Cache响应头字段说明Cache-Control: public, max-age=51600Connection: keep-aliveContent-Type: text/html; charset=UTF-8Date: Tue, 05 Feb 2019 14:28:26 ...原创 2019-02-06 22:46:06 · 794 阅读 · 2 评论 -
es 错误:EsRejectedExecutionException
错误详情{ "index": { "status": 429, "error": { "type": "es_rejected_execution_exception", "reason": "rejected execution of org.elasticsearch.transport.TransportService$7@637a429f on转载 2019-02-15 23:43:15 · 15436 阅读 · 1 评论 -
Elasticsearch 数据类型
父子文档 本文通过一个例子将Nested类型适合解决的问题、应用场景、使用方法串起来, 1、Elasticsearch 数据类型全景概览 例如,我们可以通过传递一系列评论来存储博客文章及其所有评论。15 "name": "John", 在内部,嵌套对象将数组中的每个对象索引为单独的隐藏文档,这意味着可以独立于其他对象查询每个嵌套对象。认知前提:nested聚合隶属于聚合分类中的Bucket聚合分类。原创 2019-03-23 16:54:32 · 641 阅读 · 0 评论 -
特殊空白字符无法过滤
问题说明通过正则(\s)匹配空白字符并分隔字符串,发现一个貌似空格的特殊空白字符无法匹配到。解决开启编辑器show whitespaces 时并没有任何改变(正常空格为一个小点)将该字符 url encode 后为 %C2%A0non-breaking space不可中断空白连同前面一个、后面一个字符都在同一行,不会换行。多个不可中断空白不会被视为一个字符不可中断字符,在...原创 2019-02-26 20:08:27 · 2660 阅读 · 0 评论 -
es 6 报错 FORBIDDEN/12/index read-only / allow delete (api)
具体错误 ElasticSearch6 报错blocked by:[FORBIDDEN/12/index read-only / allow delete (api)];导入数据导致某个节点数据占用100%,删除索引后无法增加数据。提示该错误解决官方解决方法:curl -XPUT -H "Content-Type: application/json" http://127.0.0.1:9...转载 2019-03-02 16:25:30 · 1403 阅读 · 0 评论 -
es 通用操作
集群健康检查curl http://localhost:9200/_cluster/health?pretty{ "cluster_name" : "xxxxx", "status" : "red", "timed_out" : false, "number_of_nodes" : 3, "number_of_data_nodes" : 3,原创 2019-03-02 16:13:05 · 297 阅读 · 0 评论 -
es 子文档查询
使用方法Nested inner hitsedit创建索引及映射PUT test{ "mappings": { "_doc": { "properties": { "comments": { "type": "nested" } } } }}创建文档PUT test/_d原创 2019-02-28 20:52:06 · 1393 阅读 · 0 评论 -
vim 命令之删除特定行
主要使用全局替换的操作删除空行:g/^$/d删除空行以及只有空格的行:g/^\s*$/d删除以 # 开头或 空格# 或 tab#开头的行:g/^\s*#/d删除以 ; 开头或 空格; 或 tab;开头的行:g/^\s*;/d使用正则表达式删除行如果当前行包含 bbs ,则删除当前行:/bbs/d删除从第二行到包含 bbs 的区间行:2,/bbs...转载 2019-02-17 23:26:31 · 4384 阅读 · 0 评论 -
brew 切换 go 版本
安装brew install go查看所有版本方式一brew info go方式二brew ls --versions | grep go切换brew switch go 1.11清理旧版本brew cleanup go参考:https://jpuyy.com/2019/01/brew-切换-go-版本.html...转载 2019-02-17 23:15:08 · 4699 阅读 · 0 评论