自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 收藏
  • 关注

原创 dapr入门系列之前言

当从单体架构转换到微服务架构后,你会发现你的每个服务都有很多重叠的与业务无关的代码,比如状态存储,比如对接服务中心,再比如对接配置中心,再比如对接消息中间件,如果采用的直连sdk方式做服务治理,可能还会涉及到熔断、重试、限流等工作。还记得我们之前说过么,服务治理可以在api网关侧处理,还可以做serviceMesh通过边车来治理。那有没有什么方式可以让我们从这些繁琐的sdk对接中解放出来,就像服务治理一样,只让我们的项目关注与业务呢?有的,是dapr。

2022-11-14 23:50:18 378 1

原创 微服务架构设计模式

介绍微服务架构常用的设计模式,如事件驱动、CQRS、SAGA等,这是笔者通过学习和实践得出的方法论,让你微服务架构会面对的难题的解决方案有一个初步的了解

2022-11-12 01:13:16 1238

原创 为什么要用微服务架构

系列专栏文章前言,简单讲解了系统架构演变史,微服务架构带来的好处和挑战,让你对微服务架构有比较直观的了解

2022-11-10 23:19:53 523

原创 vue-cli3安装webpack-bundle-analyzer分析包文件

前言使用vue-cli3创建了一个工程目录,技术栈为vue-cli3+vue-router+vuex+element-ui+v-charts+axios。但是等到项目开发完后,发现生成的app.js特别大,接近10M。为了优化项目性能,需要使用webpack-bundle-analyzer分析包文件,找出最占用空间的插件有哪些,对应做出优化。安装cnpm install webpac...

2019-08-16 11:21:47 6431

原创 使用docker安装filebeat收集日志

前言本文主要是记录了使用docker-compose安装filebeat的过程,使用filebeat收集日志,直接发送到elasticsearch。kibana与elasticsearch已经提前安装,也是使用docker-compose安装,可参考我的文章https://blog.csdn.net/maquealone/article/details/89417257。本来刚开始是想使用...

2019-06-26 17:50:51 9409

转载 HTTP缓存机制

转载:https://www.cnblogs.com/ranyonsue/p/8918908.htmlWeb 缓存大致可以分为:数据库缓存、服务器端缓存(代理服务器缓存、CDN 缓存)、浏览器缓存。浏览器缓存也包含很多内容: HTTP 缓存、indexDB、cookie、localstorage 等等。这里我们只讨论 HTTP 缓存相关内容。在具体了解 HTTP 缓存之前先来明确...

2019-06-26 16:53:52 339

转载 filebeat常见问题

转:https://www.jianshu.com/p/2557bb606e221.Too many open file handlersFilebeat保持文件处理程序打开,直到文件到达文件末尾,以便它可以近乎实时地读取新的日志行。 如果Filebeat正在收集大量文件,则打开文件的数量可能会成为问题。 在大多数环境中,正在更新的文件数量很少。close_inactive配置选项应相应...

2019-06-21 16:58:01 4218 1

转载 使用Filebeat结合Ingest Node提取特定字段

转:https://blog.csdn.net/qq_39211866/article/details/85057686摄取节点 - Ingest Node使用Elasticsearch进行输出时,可以将Filebeat配置为使用 摄取节点在Elasticsearch中进行实际索引之前预处理文档。当您想对数据进行一些额外处理时,摄取节点是一个方便的处理选项,但您不需要Logstash的全部...

2019-06-21 15:56:05 1604

转载 ES6新特性

转:https://www.jianshu.com/p/87008f4f8513const 与 let 变量使用var带来的麻烦:function getClothing(isCold) { if (isCold) { var freezing = 'Grab a jacket!'; } else { var hot = 'It's a shorts k...

2019-06-21 11:19:35 212

转载 es6 export 和export default的区别

转:https://www.jianshu.com/p/c6fa63c746d2区别export每个文件中可使用多次export命令 import时需要知道所加载的变量名或函数名 import时需要使用{},或者整体加载方法export export default 每个文件中可使用多次export命令 每个文件中只能使用一次export default命令 ...

2019-06-21 11:17:13 199

转载 箭头函数的this

链接:https://www.jianshu.com/p/cf0861bf0707关于箭头函数中this值的问题,网上查查,会告诉你 “箭头函数的this固定化,箭头函数中的this绑定定义时所在的作用域......”,好绕!箭头函数中this倒底指向谁?一句话,箭头函数内的this就是箭头函数外的那个this! 为什么?因为箭头函数没有自己的this。如果你已明白这句话的意...

2019-06-21 10:51:56 234

转载 彻底理解js中this的指向,不必硬背

转:https://www.cnblogs.com/pssp/p/5216085.html首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然网上大部分的文章都是这样说的,虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解是不准确的,所...

2019-06-21 10:18:41 212 1

转载 JavaScript 中 call()、apply()、bind() 的用法

其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解!先看明白下面:例 1obj.objAge; // 17obj.myFun() // 小张年龄 undefined例 2shows() // 盲僧 比较一下这两者 this 的差别,第一个打印里面的 this 指向 obj,第二个全局声明的 shows() 函数 this 是 window ;...

2019-06-21 10:03:57 163

转载 开始使用Filebeat

认识BeatsBeats是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到Logstash或Elasticsearch。(画外音:通俗地理解,就是采集数据,并上报到Logstash或Elasticsearch)Beats对于收集数据非常有用。它们位于你的服务器上,将数据集中在Elasticsearch中,Beats也可以发送到Logstash来...

2019-06-19 10:35:49 578

转载 filebeat工作原理

转载:https://www.jianshu.com/p/6282b04fe06aFilebeat是本地文件的日志数据采集器。 作为服务器上的代理安装,Filebeat监视日志目录或特定日志文件,tail file,并将它们转发给Elasticsearch或Logstash进行索引、kafka 等。工作原理:Filebeat由两个主要组件组成:prospector 和harvester...

2019-06-19 10:17:10 471 1

转载 chai.js中文文档

BDD风格包含expect和should。它们以相同的链式结构进行断言,它们的不同之处在于初始的断言构造。可以查看风格指南来进行比较。译注:风格指南中相关的翻译如下:(鉴于有代码所以没有放入引用格式而是用分割线与正文区分)BDD风格有两种风格:expect和should。两者都使用相同的可链接语言来构造断言,但它们在最初构造断言的方式上有所不同。在使用should的情况下将可能会产生一些问...

2019-06-14 14:19:25 2980

原创 mocha.js实战代码

let assert = require('assert');describe('Array', () => { describe('#indexOf', () => { it('should return -1 when the value is not present', () => { assert.equal(-1, [1, 2...

2019-06-13 20:46:56 276

转载 Mocha中文文档

mocha中文文档这个是对mocha文档的翻译,都是我一个字一个字敲出来的。水平有限,激情无限,欢迎大家批评指正。文档我也放在了我的github上,后续,我会添加一些例子进去,欢迎大家关注和贡献。安装使用npm全局安装:$ npm install --global mocha也可以作为项目的依赖进行安装:$ npm install --save-dev mocha...

2019-06-13 20:45:50 1476

转载 Node.js使用MySQL连接池

Nodejs如何使用MySQLNodejs要连接MySQL,可以使用Nodejs的MysQL驱动来实现。比如,我们这里使用"node-mysql"连接数据库。我们使用下面的方式来连接数据库:首先,我们需要使用nodejs的包管理工具(npm)安装mysql的驱动。命令行如下:npm install mysql现在,要在js文件中使用mysql,添加下面的代码到你的文件中:v...

2019-06-12 17:34:27 563 1

转载 node.js async/await 继发执行与并发执行

async/await 继发执行与并发执行,看如何控制两个异步函数 foo barfunction foo() { return new Promise((resolve, reject) => { setTimeout(() => { console.log('foo:' + new Date().toLocaleString...

2019-06-12 16:53:04 873

转载 异步Promise及Async/Await可能最完整入门攻略

此文只介绍Async/Await与Promise基础知识与实际用到注意的问题,将通过很多代码实例进行说明,两个实例代码是setDelay和setDelaySecond。tips:本文系原创转自我的博客异步Promise及Async/Await最完整入门攻略,欢迎前端大神交流,指出问题一、为什么有Async/Await?我们都知道已经有了Promise的解决方案了,为什么还要ES7提出新...

2019-06-12 16:13:00 602 1

转载 ES7前端异步玩法:async/await理解

在最新的ES7(ES2017)中提出的前端异步特性:async、await。什么是async、await?async顾名思义是“异步”的意思,async用于声明一个函数是异步的。而await从字面意思上是“等待”的意思,就是用于等待异步完成。并且await只能在async函数中使用通常async、await都是跟随Promise一起使用的。为什么这么说呢?因为async返回的都是一个P...

2019-06-05 09:38:01 336

原创 node.js解析word文档

最近接触了了一个简历管理的项目,需要将简历上传之后解析出里面的字段内容(如姓名、性别、教育经历、工作经历等),存入数据库中。简历的格式都是标准的格式,可参考猎聘下载下来的格式。毫无疑问,第一个难点就是如何解析word的内容。到npm去搜了一下相关的包,都不满足我的需求,直到发现了adm-zip这个包,这个包可以解压缩文件。其实word就是一个压缩包,把word解压后,有一个document...

2019-05-27 14:09:16 7202 2

转载 async/await

ES6中的async/await让Promise变得更加简便,通常await处理的链式Promise会包裹在函数中,返回结果仍然是一个Promise对象。但是当await直接处理链式Promise时,编译器是会返回一个Promise对象等待下次await,还是继续执行Promise对象直到返回结果不再是Promise?测试环境NodeJS v8.7.0测试代码 1 const...

2019-05-23 17:25:10 97

原创 Promise解决回调嵌套问题

前言node.js最大的特色就是利用回调函数的方式来异步执行,但是回调函数的出现引发了回调过度嵌套的问题(回调金字塔),例如a嵌套b,b再嵌套c,c再嵌套D。例如,我们模拟一个页面元素移动的功能,点A移动到B后,B再移动到C,C再移动到D,D再移动到E,使用函数嵌套的方式如下:function movea() { console.log('我是A,我已经移动到B的位置了哦');...

2019-05-23 16:50:42 2022

原创 Promise实现sleep功能

async function test() { for (var i = 0; i < 10; i++) { await sleep(1000); console.log(i); }}function sleep(delay) { return new Promise((resolve, reject) => { ...

2019-05-23 15:37:27 2443

转载 Elasticsearch调优实践

背景Elasticsearch(ES)作为NOSQL+搜索引擎的有机结合体,不仅有近实时的查询能力,还具有强大的聚合分析能力。因此在全文检索、日志分析、监控系统、数据分析等领域ES均有广泛应用。而完整的Elastic Stack体系(Elasticsearch、Logstash、Kibana、Beats),更是提供了数据采集、清洗、存储、可视化的整套解决方案。本文基于ES 5.6.4,...

2019-05-23 15:35:29 517

转载 慢查询日志配置

1、通过修改elasticsearch.yml来启用慢查询:vimelasticsearch.yml###Search Slow Log :查询慢日志配置,日志记录在以“_index_isearch_slowlog.log”结尾的文件中#注:配置不一定都需要,自己选择需要那种级别(warn、info、debug、trace)日志,关闭的话配置成-1 就可以了,注释掉重启也可以...

2019-05-16 16:13:06 491

转载 Mapping设置

Mapping类似于数据库中的表结构定义,主要作用如下:定义Index下字段名(Field Name) 定义字段的类型,比如数值型,字符串型、布尔型等 定义倒排索引的相关配置,比如是否索引、记录postion等需要注意的是,在索引中定义太多字段可能会导致索引膨胀,出现内存不足和难以恢复的情况,下面有几个设置:index.mapping.total_fields.limit:一个索...

2019-05-16 15:45:47 1602

转载 分析器执行顺序与Mapping自定义分析器配置

默认分析器虽然我们可以在字段层级指定分析器,但是如果该层级没有指定任何的分析器,那么我们如何能确定这个字段使用的是哪个分析器呢?分析器可以从三个层面进行定义:按字段(per-field)、按索引(per-index)或全局缺省(global default)。Elasticsearch 会按照以下顺序依次处理,直到它找到能够使用的分析器。索引时的顺序如下:字段映射里定义的analyz...

2019-05-16 15:02:18 212

转载 相关性评分计算原理简介

我们前面已经发现搜索后,每条匹配结果都会有一个_score字段,以以下结果为例:搜索条件为:{ "query": { "match": { "title": "马鲁斯" } }}得到一条结果集为{ "took": 1, "timed_out": false, "_shards": { "total": 1, "s...

2019-05-16 11:34:24 2231

转载 Elasticsearch之四种查询类型和搜索原理

Elasticsearch Client发送搜索请求,某个索引库,一般默认是5个分片(shard)。它返回的时候,由各个分片汇总结果回来。es 在查询时, 可以指定搜索类型为下面四种:  QUERY_THEN_FETCH   QUERY_AND_FEATCH   DFS_QUERY_THEN_FEATCH   DFS_QUERY_AND_FEATCH那么这 4 种搜索类型有什么...

2019-05-16 10:59:53 801

转载 elasticsearch并发问题与锁机制

并发冲突举个例子,比如在电商的场景下,假设我们有个程序,其工作流程为:1.读取商品信息(包含库存,以牙膏为例);2.用户下单购买;3.更新商品库存(库存减一);如果该程序是多线程的,那么总有一个线程是先得到的,假设我们牙膏库存一开始有100件,此时线程A先得到线程将牙膏的库存设置为99件,然后线程B再将牙膏设置为99件,这个时候就已经错了。上面所述问题就是ES中的并发冲突问...

2019-05-16 10:47:33 1193 2

转载 elastic分片交互过程

一、Elasticseach如何将数据存储到分片中问题:当我们要在ES中存储数据的时候,数据应该存储在主分片和复制分片中的哪一个中去;当我们在ES中检索数据的时候,又是怎么判断要查询的数据是属于哪一个分片。 数据存储到分片的过程是一定规则的,并不是随机发生的。 规则:shard=hash(routing)%number_of_primary_shards Ro...

2019-05-16 10:36:31 197

转载 ElasticSearch内部分片处理机制

逆向索引:与传统的数据库不同,在es中,每个字段里面的每个单词都是可以被搜索的。如hobby:”dance,sing,swim,run”,我们在搜索关键字swim时,所有包含swim的文档都会被匹配到,es的这个特性也叫做全文搜索。为了支持这个特性,es中会维护一个叫做“invertedindex”(也叫逆向索引)的表,表内包含了所有文档中出现的所有单词,同时记录了这个单词在哪个文档中出现...

2019-05-16 10:24:50 145

转载 elasticsearch使用7大原则,让你玩转ES

一、 硬件环境选择  如果有条件,尽可能使用SSD硬盘, 不错的CPU。ES的厉害之处在于ES本身的分布式架构以及lucene的特性;IO的提升,会极大改进ES的速度和性能;内存配置方面,一般来说,64G内存的机器节点较佳。  二、系统拓朴设计  ES集群在架构拓朴时,一般都会采用Hot-Warm的架构模式,即设置3种不同类型的节点:Master节点、Hot节点和Warm节点。  ...

2019-05-16 10:02:13 3274

转载 大白话ElasticSearch是什么以及应用场景

ElasticSearch是一个分布式,高性能、高可用、可伸缩的搜索和分析系统看了上面这段话,估计很多人都懵了,这个是啥。我们先从搜索说起,先介绍下面几点1、什么是搜索百度、Google:我们想寻找一个我们喜欢的电影或者书籍就会去百度或者Google搜索一下。互联网搜索:电商搜索商品,招聘网站搜索简历或者岗位IT系统的搜索:员工管理搜索,会议管理搜索2、如果用数据库做搜索会...

2019-05-16 09:48:28 580

原创 docker-compose安装elasticsearch集群+kibana

公司需要用到elasticsearch做垂直搜索,下面记录下搭建elasticsearch集群环境的步骤。服务器使用的是阿里云服务器,操作系统是centos7。一、安装dockerYum install docker-ce安装成功后运行docker -v查看docker版本。运行docker run hello-world查看docker是否可用。注意:一定要提前运行下do...

2019-04-20 15:09:24 7307

原创 thinkphp5集成phpunit6.5

前言tp5自带了phpunit,但是,其phpunit版本很老,有时候集成还会出错,反正我是集成之后没法用的,并且我又习惯了phpunit6.5的语法,所以在项目中想使用tp5集成phpunit 6.5,而不是用用tp默认的单元测试工具。问题tp5集成了phpunit后,最大的问题是类的自动加载问题。通常我们会在项目的extend目录下写一些自己的类库,但是在单元测试的时候会报类找不到...

2019-03-06 12:12:21 971

原创 nginx-http-concat合并静态资源优化网站响应速度

前言浏览器向服务器端发起请求时,同时发起请求的数量是有限制的。如下:也就是说,如果页面上有大量的请求,请求会排队。那么对于一些比较复杂的网站,可能会有很多的css和js静态文件,如果按照默认的方式,会导致页面打开速度很慢,时间都浪费在了请求静态资源上了。针对这种现象,阿里团队基于nginx开发了nginx-http-concat模块,可以在服务器端将多个静态文件合并,然后再一起返回给前...

2019-03-01 12:22:17 576

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除