自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(199)
  • 资源 (2)
  • 问答 (3)
  • 收藏
  • 关注

原创 开放平台认证方案

目前一些开放平台最常见的也就是hmac签名和oauth2.0的方式。另外secret的泄漏也是需要客户测去防范。平台方的ip白名单,以及客户端侧自己将授权和业务隔离 是比较好的方法。

2022-11-18 11:14:39 574 1

原创 prometheus学习

类似于直方图,但它还会计算百分位数。直方图可以很好地展现时间序列数据,尤其适用于数据的可视化(如应用程序延迟等)。通常来说,单个指标对我们价值很小,往往需要联合并可视化多个指标,这其中需要应用一些数学变换。例如,我们可能会将统计函数应用于指标或指标组,一些可能应用的常见函数包括:·计数:计算特定时间间隔内的观察点数。·求和:将特定时间间隔内所有观察点的值累计相加。·平均值:提供特定时间间隔内所有值的平均值。·中间数:数值的几何中点,正好50%的数值位于它前面,而另外50%则位于它后面。

2022-11-18 11:11:13 1447

原创 关于path用变量的问题思考

但是用于企业开发,企业是经常有人员流动,restful是不太好用的,因为每个人对restful的理解又不一样,又或者有的人根本没用过,这就导致很多接口很不合理,导致变得四不像,增加沟通成本,不如不用。此时依旧需要按路由去正则,把是同一个路由的,但是path里面的变量不一样的要归纳成一组,这又要写很多代码。1.用go解析路由时,中间件里相对路由做统一处理,或者是对于一组路由做处理,只能挨个正则去匹配。再比如restful其中之中的一点就是path里面用变量,在沟通,以及后端处理过程中都是比较麻烦的。

2022-11-18 10:21:51 305

原创 规则引擎go

嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。作为开发人员会遇到需求变动的情况,比如if a >b then c改成 if a < b then c又要改成 if a

2022-11-18 10:20:37 968

原创 consul python sdk

python使用服务注册和发现的说明,本人对python理解有限,不好封装sdk,熟悉的人自行封装,下面简单说一下接入的步骤。

2022-11-18 10:18:18 489

原创 权限系统设计

目前只做了用户账号间的数据隔离。存在情况,同一个项目里不同人创建不同的资源,项目里的成员都可以看得到,同时也不能互相随便修改数据。所以需要一些组的权限控制。

2022-11-18 10:05:03 457

原创 apollo部署

apollo的部署说明,以及高可用部署

2022-08-22 00:44:35 653

原创 consul部署

consul部署

2022-08-21 23:53:28 721

原创 fasthttp性能优化点

1.response buffering这个是优化对于http 1.1 的pipeline,会有多个request和response的请求。如下图原始go http server的处理伪代码如下工作模式很简单,这个链接有读事件,就读取请求,然后处理请求,然后响应给客户端,可以看到如果是pipeline方式的话,会多次调用read 和 write系统调用。所以fasthttp用了个buffer,缓冲response数据,等到请求数据没了的话,再一起发送给客户端,代码如下优...

2022-02-07 18:10:31 1292

原创 gin框架

简单使用import ( "net/http" "github.com/gin-gonic/gin")func main() { r := gin.Default() r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello world") }) r.POST("/ping", func(c *gin.Context) { c.String(http.StatusOK, "pong") })

2022-02-07 00:40:10 665

原创 docker必知必会

docker引擎Docker 引擎由如下主要的组件构成:Docker 客户端(Docker Client)、Docker 守护进程(Docker daemon)、containerd 以及 runc。它们共同负责容器的创建和运行。Docker 首次发布时,Docker 引擎由两个核心组件构成:LXC 和 Docker daemon。Docker daemon 是单一的二进制文件,包含诸如 Docker 客户端、Docker API、容器运行时、镜像构建等。LXC 提供了对诸如命名空间(Nam

2022-02-03 16:53:55 255

原创 k8s必知必会

目录1、简述etcd及其特点2、简述etcd适应的场景3、简述什么是Kubernetes4、简述Kubernetes和Docker的关系5、简述Minikube、Kubectl、Kubelet分别是什么6、简述Kubernetes常见的部署方式7、简述Kubernetes如何实现集群管理8、简述Kubernetes的优势、适应场景及其特点9、简述Kubernetes的缺点或当前的不足之处10、简述Kubernetes相关基础概念11、简述Kubernetes集群相

2022-01-27 21:45:39 312

原创 系统调优必知必会

CPU提升数据缓存的命中率和cpu cache line(一般64字节)按照 cpu cache line(比如 64 字节)来访问内存时,不会出现多核 CPU 下的伪共享问题,可以尽量减少访问内存的次数。比如,若桶大小为 64 字节,那么根据地址获取字符串时只需要访问一次内存,而桶大小为 50 字节,会导致最坏 2 次访问内存,而 70 字节最坏会有 3 次访问内存。因为当所有bucket连续时,某个50字节的bucket一定会横跨2个cpu cache line,比如第2个bucke

2022-01-16 02:37:17 553

原创 go必知必会

sync.Pool多图详解Go的sync.Pool源码 - luozhiyun`s Blog基本结构体sync.Pool的结构体上主要有几个字段,local是一个poolLocal数组的指针,localSize代表这个数组的大小;同样victim也是一个poolLocal数组的指针,每次垃圾回收的时候,Pool 会把 victim 中的对象移除,然后把 local 的数据给 victim。poolLocal数组的大小就是p的数量,受runtime.GOMAXPROCS(0)决定,下标对应

2021-11-30 00:06:28 328

原创 kafka

1. Kafka的用途有哪些?使用场景如何?总结下来就几个字:异步处理、日常系统解耦、削峰、提速、广播如果再说具体一点例如:消息,网站活动追踪,监测指标,日志聚合,流处理,事件采集,提交日志等2. Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么ISR:In-Sync Replicas 副本同步队列AR:Assigned Replicas 所有副本ISR是由leader维护,follower从leader同步数据有一些延迟(包括延迟时间replica.la

2021-11-14 22:31:49 188

原创 mysql必知必会

主键索引的叶子节点存的是整行数据。在InnoDB里,主键索引也被称为聚簇索引(clustered index)。InnoDB使用表的主键构造主键索引树,同时叶子节点中存放的即为整张表的记录数据。聚集索引叶子节点的存储是逻辑上连续的,使用双向链表连接,叶子节点按照主键的顺序排序,因此对于主键的排序查找和范围查找速度比较快。聚集索引的叶子节点就是整张表的行记录。InnoDB 主键使用的是聚簇索引。聚集索引要比非聚集索引查询效率高很多。对于InnoDB。

2021-11-14 14:28:33 222

原创 elasticsearch做为日志中心的配置及优化

Hot-warm-cold architecture with Elasticsearchhttps://ptran32.github.io/2020-08-08-hot-warm-cold-elasticsearch/Implementing Hot-Warm-Cold in Elasticsearch with Index Lifecycle Management | Elastic Bloghttps://www.elastic.co/blog/implementing-hot-warm-co

2021-11-10 01:30:40 1181

原创 redis rdb文件分析工具

https://github.com/sripathikrishnan/redis-rdb-toolshttps://github.com/xueqiu/rdr一个go实现的,一个python实现的,一个快,一个功能强大,各取所需

2021-09-17 11:18:06 169

原创 epoll惊群问题分析

https://mp.weixin.qq.com/s/zoY4PGDs7voe3HM4QRWEDg

2021-09-17 10:56:36 111

原创 kubernetes文章收集

通过优化应用程序打破Kubernetes铁三角 - https://mp.weixin.qq.com/s/KfsSatZZKU7MyRBdYfgWmQ Kubernetes最佳实践 - https://github.com/diegolnasc/kubernetes-best-practices 优雅地处理Kubernetes的API弃用问题 - https://www.openfaas.com/blog/ingress-api-deprecation/ 理想与现实:重新审..

2021-09-10 14:45:50 91

原创 接口优化思路

背景目前在某厂又开始了php,哎,逃不掉的php。又碰上了优化季度,所以被分了2个接口优化下,要求达到3个9就行。 目前是2个九,嘿嘿,要求已经很低了是吧?但是php这个东西还是比较难搞的。基础实施比较差的,也没有服务化,像有的服务化做的好的,可以直接分布式链路追踪看出耗时在哪里。同时希望最小改动原则,成本尽可能的低,效果尽量早点体现出来。开始1.先弄清3个9是根据啥统计的对的,我们要达成目标,就先要知道目标是怎么统计的。后面我去问了下,发现是统计nginx的日志,非200的/200

2021-09-07 15:16:56 345

原创 索引Index管理

Shrink APISplit API一个时间序列索引的实际场景Rollover API时间序列的索引索引生命周期Elasticsearch CuratorIndex Lifecycle ManagementILM Policy图形界面...

2021-08-01 16:29:41 94

原创 Merge优化

Merge优化shard Request CacheFielddata Cache缓存失效管理内存的重要性诊断一些常见的内存问题Circuit Breaker集群生命周期管理部署的建议使用要遵循一定的规范对重要数据备份运维移动分片从集群中移除一个节点控制Allocation和RecoverySynced Flush...

2021-08-01 14:59:45 130

原创 优化读写性能

写优化方法服务器端优化写入性能的一些手段优化写入性能关闭无关的功能针对性能的取舍数据写入的过程Refresh IntervalTranslog分片设定Bulk 线程池和队列大小一个索引设定的例子读优化数据建模聚合文档消耗内存优化分片...

2021-08-01 12:47:36 110

原创 分片设计及管理

单个分片2个分片如何设计分片数案例分片过多的副作用如何确定住分片数如何确定副本分片数调整分片总数设定,避免分配不均衡容量规划评估业务的性能需求常见用例硬件配置部署方式案例1:固定大小的数据集拆分索引案例2:基于时间序列的数据创建基于时间序列的索引写入时间序列的数据,基于Date Math的方式基于Index Alias集群扩容...

2021-08-01 12:21:38 178

原创 集群部署介绍

节点类型节点参数配置单一职责的节点好处Dedicate Coordinating Only Node (client Node)Dedicate Master Node基本部署水平扩展读写分离在集群中部署Kibana异地多活的部署日志类应用的部署架构什么是Hot & Warm ArchitectureHot NodesWarm Nodes配置步骤标记节...

2021-08-01 11:18:26 1331

原创 es 安全方面

信息泄漏原因分析数据安全性的基本需求一些免费的方案身份认证RBAC-用户鉴权创建内置的用户和角色使用API创建开启并配置X-Pack的认证和鉴权集群内安全通信为什么要加密通讯为节点创建证书配置节点间通信集群与外部安全通信为什么需要https配置es for https配置kibana访问https es配置https访问kibana...

2021-08-01 10:59:09 335

原创 数据建模最佳实践

如何处理关联关系避免过多字段Dynamic VS Strict解决方案:Nested Object & Key Value通过Nested对象保存Keyvalue的不足避免正则查询解决方案:将字符串转换为对象避免空值引起的聚合分析导致的误差为索引的Mapping加入Meta信息...

2021-08-01 10:38:47 90

原创 ReIndex

使用场景案例1:为索引增加子字段案例2:更改已有字段类型的Mappings 创建新的索引, 然后_reindexReindex API2个注意点OP type跨集群的Reindex查看Task API字段类型:Text vs keyword一个数据建模的shili优化需求变更mapping字段的相关设置一些相关的API...

2021-08-01 10:27:41 145

原创 Nested,父子文档

案例1:博客信息案例2:包含对象数据的文档为什么会搜到不需要的结果?Nested Data Type嵌套查询Parent/Child父子关系设置mapping索引父文档索引子文档嵌套对象VS父子文档...

2021-07-31 23:57:58 128

原创 处理并发读写操作

并发控制的必要性es采用的是乐观并发控制es的乐观并发控制

2021-07-31 23:02:51 79

原创 分布式查询及相关性算分

Query阶段Fetch阶段 潜在的问题解决算分不准的方法排序的过程关闭doc values分页from / size分布式系统中深度分页的问题search after避免深度分页的问题等价于关系数据库里的 select * from table where create_time > 100 order by create_time limit 100;Scroll API...

2021-07-31 22:42:51 83

原创 分片及其生命周期

分片的内部原理倒排索引不可变性Lucene IndexRefreshTransaction LogFlushMerge

2021-07-31 22:12:46 54

原创 文档分布式存储

文档存储在分片上文档到分片的路由算法更新一个文档的流程删除一个文档

2021-07-31 19:40:34 83

原创 分片与集群的故障转移

Primary Shard - 提示系统存储容量Replica Shard - 提高数据可用性分片数的设定单节点集群 因为副本分片要和朱分片分配到不同的节点上,才能高可用增加一个数据节点再增加一个数据节点故障转移集群健康状态...

2021-07-31 19:25:04 88

原创 集群分布式模型

分布式特性节点 Coordinating NodeData NodeMaster NodeMaster Eligible Nodes & 选主流程集群状态选主过程脑裂问题如何避免脑裂问题配置节点类型...

2021-07-31 18:22:01 132

原创 配置跨集群搜索

水平扩展的痛点跨集群搜索 —— cross cluster search配置及查询演示设置写入数据查询

2021-07-31 18:04:12 65

原创 自动补全与上下文提示

建索引写入数据去查询什么是context suggester实现context suggester演示加数据查询精准度和召回率

2021-07-31 17:53:33 119

原创 一种控制go协程并发的方式

package mainimport ( "fmt" "sync" "time")type Worker struct { workersLimitCh chan struct{} writeTimeout time.Duration wg sync.WaitGroup}var ( timerPool sync.Pool //defaultWorkersLimit = cgroup.AvailableCPUs())// Get return.

2021-07-11 20:17:36 142

原创 go性能优化文章集合

1.真实环境下大内存 Go 服务性能优化一例,pprof的实操https://mp.weixin.qq.com/s/jGGCccMOx4s5asG2IXWNMQ2.golang原生net/http包的超时坑,设置了整个连接的超时,即在http.Transport里设置了超时https://mp.weixin.qq.com/s/axPD72KEieNw1VP3HPfgKQ3.go pprof的一个使用教程https://mp.weixin.qq.com/s/w6mx89xggITalSOH

2021-07-10 14:08:34 124

quazip编译的各个版本和源码

quazip编译的各个版本和源码,releaseX86,releaseX64,debugX86. 如何配置看 https://blog.csdn.net/qq_28119741

2018-05-25

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

TA关注的人

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