自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yshir

技术总结收集

  • 博客(501)
  • 收藏
  • 关注

原创 QPS、TPS、PV、UV、GMV、IP、RPS的概念解释

时间段越短,数据也越接近于瞬间并发如果用整日的数据来计算总请求数,需要按照日流量分布来估算一个峰值数据,日常APP可考虑使用 峰值=4 * 日均【当然还是要看你具体的访问量】没什么人用的服务 tps 20,返回有300ms就行了十万到百万级的服务,响应能达到tps50 /200ms就可以了后台服务,能达到tps 20 / 200ms即可(通常后台同时使用也没多少人)秒杀类的短时间高并发……TPS100或200 在 100ms内响应 应该也能撑一段时间(具体情况还是要看业务量)

2022-09-27 11:49:38 743

原创 使用Supervisor守护进程

Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的多个进程。Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。

2022-09-23 12:01:15 177

转载 nginx配置详解

nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器。同时也是一个IMAP、POP3、SMTP代理服务器,Nginx作为一个HTTP服务器进行网络的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。二、Nginx相关地址及。

2022-09-22 15:40:14 31

转载 ElasticSearch最佳入门实践(二十一)partial update实现原理

partial update不需要应用程序查询document数据,可以直接修改field并传递到es进行更新。(1)应用程序先发起一个get请求,获取到document,展示到前台界面,供用户查看和修改。(5)es将老的document标记为deleted,然后重新创建一个新的document。(3)后台代码,会将用户修改的数据在内存中进行执行,然后封装好修改后的全量数据。PUT /index/type/id,创建文档&替换文档,就是一样的语法。(4)然后发送PUT请求,到es中,进行全量替换。

2022-09-07 14:31:36 23

转载 ElasticSearch最佳入门实践(二十)基于external version进行乐观锁并发控制

es提供了一个feature,就是说,你可以不用它提供的内部_version版本号来进行并发控制,可以基于你自己维护的一个版本号来进行并发控制。举个列子,假如你的数据在mysql里也有一份,然后你的应用系统本身就维护了一个版本号,无论是什么自己生成的,还是程序控制的。这个时候,你进行乐观锁并发控制的时候,可能并不是想要用es内部的_version来进行控制,而是用你自己维护的那个version来进行控制。es内部?version=1自定?

2022-09-07 10:03:34 27

转载 ElasticSearch最佳入门实践(十九)基于_version进行乐观锁并发控制

4、另外一个客户端,尝试基于version=1的数据去进行修改,同样带上version版本号,进行。同时带上数据的版本号,确保说,es中的数据的版本号,跟客户端中的数据的版本号是相同的,才能修改。问题之后,重新获取并尝试正确的完成更新。5、在乐观锁成功阻止。

2022-09-07 10:03:22 14

转载 ElasticSearch最佳入门实践(十八)Elasticsearch内部如何基于_version进行乐观锁并发控制

version_type=external,唯一的区别在于,_version,只有当你提供的version与es中的_version一模一样的时候,才可以进行修改,只要不一样,就报错;version=1,才能更新成功 es,_version=1,?在es后台,很多的这种类似的replica同步请求,都是多线程异步的,也就是说多个修改请求之间,是乱序的,没有顺序,可能先改的后到,后修改的先到。如果真的发生了后修改的数据先到,先修改的数据后到,es内部的机制是会先把后修改先到的数据保存,并且把版本号+1。

2022-09-07 10:03:11 73

转载 ElasticSearch最佳入门实践(十七)剖析Elasticsearch并发冲突问题以及控制方案

乐观锁状态下,用户B会去校验 ES 中的的这条数据版本号和自身的是否一致,如果不一致,则不会提交,会重新去 ES 中获取最新的数据 99 件,再次减一,变为 98。然后两个用户同时提交订单,但是总有一个线程是先到的,如果线程A先到,就会先将库存 -1 设置为99件。此时用户B突然就可以动弹了,这个时候获取到的商品库存为 99 件,当用户B购买商品后,库存变为 98。当用户A读取该商品数据的时候,会同时给数据库这一行加锁,而当用户B也读取该商品数据的时候,这个时候会被卡出处于等待状态。

2022-09-07 10:03:03 37

转载 ElasticSearch最佳入门实践(十六)_document的全量替换、强制创建以及 lazy delete 机制

(3)es会将老的document标记为deleted,然后新增我们给定的一个document,当我们创建越来越多的document的时候,es会在适当的时机在后台自动删除标记为deleted的document。(2)document是不可变的,如果要修改document的内容,第一种方式就是全量替换,直接对document重新建立索引,替换里面所有的内容。(1)创建文档与全量替换的语法是一样的,有时我们只是想新建文档,不想替换文档,如果强制进行创建呢?

2022-09-07 10:02:53 14

转载 ElasticSearch最佳入门实践(十五)_document的_source元数据以及定制返回结果解析

index元数据_type元数据_id元数据。

2022-09-06 11:26:14 19

转载 ElasticSearch最佳入门实践(十四)_document id 的手动指定与自动生成两种方式解析

1、手动指定document id根据应用情况来说,是否满足手动指定document id的前提:一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id。举个例子,比如说,我们现在在开发一个电商网站,做搜索功能,或者是OA系统,做员工检索功能。这个时候,数据首先会在网站系统或者IT系统内部的数据库中,会先有一份,此时就肯定会有一个数据库的primary key(自增长,UUID,或者是业务编号)。

2022-09-06 10:32:33 114

转载 ElasticSearch最佳入门实践(十二)Elasticsearch容错机制:master选举,replica容错,数据恢复

Elasticsearch容错机制:master选举,replica容错,数据恢复

2022-09-06 10:27:58 33

转载 ElasticSearch最佳入门实践(十一)分布式原理 横向扩容过程,如何超出扩容极限,以及如何提升容错性

(5)3台机器下,9个shard(3 primary,6 replica),资源更少,但是容错性更好,最多容纳2台机器宕机,6个shard只能容纳1台机器宕机。(4)超出扩容极限,动态修改replica数量,9个shard(3primary,6 replica),扩容到9台机器,比3台机器时,拥有3倍的读吞吐量。(3)扩容的极限,6个shard(3 primary,3 replica),最多扩容到6台机器,每个shard可以占用单台服务器的所有资源,性能最好。(1)假设 9 shard,3 node。

2022-09-06 10:01:32 30

转载 IOC的概念和原理:什么是IOC?、IOC的底层原理、图示、IOC接口介绍

什么是IOC?、IOC的底层原理、图示、IOC接口介绍

2022-09-06 09:18:25 155

转载 微信小程序 获取用户的昵称和头像

微信小程序 获取用户的昵称和头像

2022-09-06 09:16:11 2251

转载 ElasticSearch最佳入门实践(十三)初步解析document的核心元数据以及剖析index创建反例

如果我们把很多数据都放到一个索引:product index(包含了所有的商品),sales index(包含了所有的商品销售数据),inventory index(包含了所有库存相关的数据)。(2)一个索引通常会划分为多个type,逻辑上对index中有些许不同的几类数据进行分类:因为一批相同的数据,可能有很多相同的fields,但是还是可能会有一些轻微的不同,可能会有少数fields是不一样的,举个例子,就比如说,商品,可能划分为电子商品,生鲜商品,日化商品,等等。1、_index元数据。

2022-09-06 09:10:20 8

转载 Centos7上部署安裝Redis集群(单机多节点)

安装环境Centos7redis4.0.11这里将安装官网的要求,部署6个节点,三个主节点,三个从节点。复制配置通过复制六份redis.conf配置文件,修改各个配置文件端口号来启动多个实例。规定六个实例的端口号分别为:7000,7001,7002,7003,7004,7005;1. 首先在redis的安装目录下创建一个文件夹cluster用于存放六份配置文件mkdir clustercd clustermkdir 7000 7001 7002 7003 7004 7.

2022-09-06 09:09:56 90

转载 windows环境 安装es (ElasticSearch)搜索引擎

在 es 目录中的 \plugins 目录下新建 ik 目录,然后将下载完成的 elasticsearch-analysis-ik 解压至此目录下。2.2 双击bin目录下的【elasticsearch.bat】即可启动es,默认启动后占用9200端口。在bin目录下,双击【kibana.bat】,启动Kibana。安装es之前确保系统已安装JDK(需要JDK1.8以上版本)2.1 下载es后,完成解压。启动后,通过浏览器访问 【完成后重启es,即可应用ik分词器。】即可访问kibana。

2022-09-06 09:08:37 517 1

原创 windows php7.3安装rabbitmq扩展

我本地的是phpstudy ,在D:\phpstudy_pro\Extensions\php\php7.3.4nts\ext,rabbitmq.4.dll 放到该目录下,即和php.exe在一个目录,选择和php版本匹配的文件下载,下载后php_amqp.dll 放到php的扩展目录,我本地的是php7.3nts 64位,因此对应这里下载php7.3。我的目录是D:\phpstudy_pro\Extensions\php\php7.3.4nts。1,查看php -v。php.ini 添加扩展。

2022-09-06 09:07:57 390

转载 ElasticSearch最佳入门实践(十)2个 node 环境下 replica shard 是如何分配的

ElasticSearch最佳入门实践(十)2个 node 环境下 replica shard 是如何分配的

2022-09-05 13:41:10 13

转载 ElasticSearch最佳入门实践(九)shard & replica 机制梳理以及单 node 环境中创建 index

(8)primary shard 不能和自己的 replica shard 放在同一个节点上(否则节点宕机,primary shard和副本都丢失,起不到容错的作用),但是可以和其他 primary shard 的 replica shard 放在同一个节点上。(7)primary shard 的默认数量是5,replica 默认是1,默认有10个shard,5个primary shard,5个replica shard。(3)增减节点时,shard会自动在nodes中负载均衡。

2022-09-05 13:40:35 34

转载 ElasticSearch最佳入门实践(八)ElasticSearch基础分布式架构基础

垂直扩容:采购更强大的服务器,成本非常高昂,而且会有瓶颈,假设世界上最强大的服务器容量就是10T,但是当你的总数据量达到5000T的时候,你要采购多少台最强大的服务器啊。shard负载均衡(举例,假设现在有3个节点,总共有25个shard要分配到3个节点上去,es会自动进行均匀分配,以保持每个节点的均衡的读写负载请求)水平扩容:业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力。(1)节点对等,每个节点都能接收所有的请求。

2022-09-05 13:40:01 15

转载 ElasticSearch最佳入门实践(七)案例实战之电商网站商品管理:嵌套聚合,下钻分析,聚合分析

新增一个商品便于分析{]}

2022-09-05 13:39:42 20

转载 ElasticSearch最佳入门实践(六)案例实战之电商网站商品管理:多种搜索方式

跟全文检索相对应,相反,全文检索会将输入的搜索串拆解开来,去倒排索引里面去一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回。hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高。phrase search,要求输入的搜索串,必须在指定的字段文本中,完全包含一模一样的,才可以算匹配,才能作为结果返回。分页查询商品,总共3条商品,假设每页就显示1条商品,现在显示第2页,所以就查出来第2个商品。

2022-09-05 13:39:17 60

转载 ElasticSearch最佳入门实践(五)案例实战之电商网站商品管理:集群健康检查,文档CRUD

1、document数据格式2、电商网站商品管理案例:背景介绍3、简单的集群管理 简单的索引操作创建 格式案例 创建案例 检索 案例 修改商品 替换文档案例 修改商品 更新文档

2022-09-05 13:38:49 30

转载 ElasticSearch最佳入门实践(四)在windows上安装和启动 ElasticSearch

7、启动Kibana:bin\kibana.bat。

2022-09-05 13:38:13 129

转载 ElasticSearch最佳入门实践(三)ElasticSearch核心概念:NRT、索引、分片、副本

primary shard(建立索引时一次设置,不能修改,默认5个),replica shard(随时修改数量,默认1个),默认每个索引10个shard,5个primary shard,5个replica shard,最小的高可用配置,是2台服务器。6、Type:类型,每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的field,比如博客系统,有一个索引,可以定义用户数据type,博客数据type,评论数据type。

2022-09-05 13:36:34 16

转载 ElasticSearch最佳入门实践(二)Elasticsearch的功能、适用场景以及特点

Elasticsearch的特点,跟其他类似的东西不同的地方在哪里。

2022-09-05 13:35:20 24

转载 ElasticSearch最佳入门实践(一)什么是ElasticSearch

百度:比如我们想搜索任何信息的时候,就会上百度搜索一下。例如找一部自己喜欢的电影,或者找一本自己喜欢的书。但是百度!= 搜索垂直搜索(也就是站内搜索)互联网搜索:电商网站、招聘网站、新闻资讯、各类APPIT系统的搜索:OA软件、办公自动化软件、会议管理、日程管理、员工管理。搜索“张三”,“李四”,“李四儿”搜索就是在任何场景下找到你想要的信息如果用我们使用lucene封装了搜索引擎的功能,部署在单台机器上。假设磁盘就500G,当数据量很大超过了500G,这时候在一台机器上是放不下的。

2022-09-05 13:34:56 20

转载 MySQL数据库优化技巧

MySQL优化主要分为以下四大方面:设计:存储引擎,字段类型,范式与逆范式。功能:索引,缓存,分区分表。:主从复制,读写分离,复载均衡。合理SQL:测试,经验。一、存储引擎在创建表的时候我们使用sql语句,Create table tableName () engine=myisam|innodb;这里就指明了存储引擎是myisam还是innodb。存储引擎是一种用来存储MySQL中对象(记录和索引)的一种特定的结构(文件结构),处于MySQL服务器的最底层,直接存储数据。...

2022-08-31 11:52:15 46

转载 索引基础知识

索引介绍索引是一种数据结构,是在表上创建的。是对数据库表中的一列或者是多列的值进行排序的一种结果,使用索引可以提高查询速度,避免全表扫描。优势:提高查询效率,避免全表扫描缺点:过多的索引会导致CPU的使用率过高索引分类普通索引:没有任何限制条件,可以给任何类型的字段创建普通索引主键索引:使用primary key修饰的字段会自动创建索引唯一性索引:使用unique修饰的字段,值不能重复,主键索引隶属于唯一性索引单列索引:在一个字段上创建索引多列索引:在表中多个字段上创建索引。...

2022-08-31 11:00:54 45

转载 MySQL优化

MySQL优化方向:在设计上:字段类型,存储引擎,范式在功能上:索引,缓存,分库分表在架构上:集群,主从复制,负载均衡,读写分离SQL优化1.插入优化大量数据采用批量插入形式事务设置手动提交,MySQL默认是自动提交,意味着每写一个SQL事务就自动提交,可能会频繁的涉及事务开始和提交,所以建议手动提交2.order by优化。...

2022-08-31 10:50:14 30

转载 微信小程序中跳转另一个小程序(两种方式)

小程序跳小程序

2022-06-22 11:22:40 3609

转载 CentOS 服务器使用命令对图片进行压缩以及图片格式转换

Liunx(Centos)使用 jpegoptim和optipng无损jpg和png图片压缩: yum install jpegoptim optipng find -name '*.jpg' | xargs jpegoptim --strip-all --all-progressive -o -f --max=50% find -name '*.png' | xargs optipng这两种直接压缩图片不会失真!** CentOS 使用ImageMagic下的convert图片压

2022-05-16 11:26:46 429

转载 小程序 文字太长显示不完,滚动文字效果

1、解决思路:一共两个text控件,当第一个text滚动完后应该是看到第二个text控件了,但是在这个时候最好的方法不是让它滚完,而是用重新又从第一个text控件开始滚动,控制起来超级简单,基本实现了跑马灯的效果,另外加了一个如果文字不足一屏,不执行跑马灯的效果,而且添加了超大的间距,解决不会显示重复内容。以下是各部分完整代码,只要复制代码添加到相应页面即可看到效果。2、小程序布局页面wxml<scroll-view class="container" enable-flex=...

2022-01-24 10:03:05 933

转载 实战解决小程序图片加载问题

小程序图片加载

2021-12-01 09:51:03 3075

转载 解决ueditor多图片批量上传 顺序混乱问题

目的:解决ueditor多图片批量上传 顺序混乱问题一、问题: ueditor在进行多图上传时,会出现图片书序错乱的问题。二、原因: ueditor自从1.4.2版以后,前端上传模块统一改用webuploader,而webuploader是多线程上传的,ueditor对“uploadSuccess”的处理是上传成功一张,就加入到数组中,这样如果靠后图片很小,上传就很快,以至先加入队例,最终加入文本框的顺序也乱了。三、方法:1、修改dialogs/image/image.j...

2021-11-02 15:53:09 757

转载 码云出现错误git@gitee.com: Permission denied (publickey). fatal: Could not read from remote repository.

第一步 重新生成sshssh-keygen -t rsa -C “这里需要填写邮箱。我填写的是我的绑定主邮箱。我想其他邮箱也是可以的,只不过我没有测试。”第二步查看你生成的公钥cat ~/.ssh/id_rsa.pub然后我们就可以看到我们的公钥。以你之前生成ssh邮箱结尾的。ssh-rsa开头的之后我们需要绑定公钥第三步在个人设置里面找到ssh公钥。复制之前生成的,再黏贴添加即可最后输入ssh -T git@gitee.com 即可...

2021-11-01 12:06:18 228

转载 centos7 ruby卸载安装

在centos7中默认ruby是2.0.0版本,低于redis4.0.6最低的最低要求的2.2版本,所以需要进行升级我的升级办法是将自带的ruby卸载,在安装可以支持redis的版本。卸载ruby$ yum remove ruby下载$ wgethttps://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz#解压$ tar -zxvf ruby-2.5.0.tar.gz进入目录$ cd ruby-2.5.0.

2021-10-11 09:59:07 401

转载 mysql 5.7 emoji_解决mysql 5.7保存emoji 失败问题

测试机mysql版本为5.7.21,默认引擎为InnoDB,默认字符集为utf8。字段插入Emoji表情具体报错内容如下:Error updating database. Cause: java.sql.SQLException: Incorrect string value: '\\xF0\\x9F\\x98\\x84' for column 'name' at row 1### The error may involve com.lf.lffileserviceupload.dao.Fi

2021-09-27 21:36:51 288

空空如也

空空如也

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

TA关注的人

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