自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 什么是架构

还有可能优化了A点,不经意造成B点的性能下降(可能变成负优化)。当前对DDOS攻击(耗尽出口带宽)没有什么比较好的方法,主要还是依靠运营商强大的带宽和流量清洗能力。1.提供了组件的开发规范,比如为laravel开发组件,就要遵循其发布包的规范。对高性能的追求会带来复杂度,分为单机复杂度,和集群复杂度,任务分解复杂度。1.单个服务变得简单,影响性能的点变少,更容易进行针对性优化。对低成本的追求并不是架构的首要目标,而是作为架构的附带约束。指的是相同的数据,经过不同的服务器处理后,结果是相同的。

2022-09-21 14:04:04 4828

原创 Redis大规模集群解决方案

文章目录Redis怎么支持大量数据Redis Cluster 为啥不适合做超大规模集群怎么构建超大规模Redis集群Redis怎么支持大量数据Redis cluster 构建集群,进行分片。将数据分到不同分片上分片保证高可用采用主从模式 由多台Redis 组成分片Redis引入槽(slot),集群固定16384(16*1024)数据落入或读取时对其key进行hash运算得到槽值,通过查找本身维护的元数据(槽值,节点位置映射) 获得槽所在节点如果本身是当前节点直接操作,否则返回给客户端重新定位到具

2022-03-11 10:30:06 1477

原创 canal在php下的简单使用

文章目录canal简介安装配置启动安装php与canal连接的组件简单示例结果展示canal简介由阿里巴巴开源 github地址:https://github.com/alibaba/canal伪装成mysql从服务器,解析mysql的binlog文件我主要是用来做redis缓存的更新&以及商品订阅降价的通知安装# 这玩意依赖java# java8以后版本的jdk根据 stdout.log 中的报错对 startup.sh 中的执行参数进行更改# 我的下载canal位置为 /dow

2022-03-10 15:31:46 1789 2

原创 Go sync.Map

首先,这个设计有点像二级缓存,其次基本上所有方法都有双检查(第一次不加锁,第二次加锁),从这两方面来看,sync.map对读多写少的场景比较友好。

2023-11-02 18:25:16 270

原创 Go 常用加密算法

【代码】Go 常用加密算法。

2023-10-30 22:23:58 190

原创 Go 反射

【代码】Go 反射。

2023-10-26 18:04:05 332

原创 Go sync.once

【代码】Go sync.once。

2023-10-01 16:16:30 337

原创 Go sync.Cond 原理

sync.Cond基本很少使用,应为大部分都能使用channel代替sync.Cond通常是基于sync.Mutex扩展的主要就四个方法newCond(l locker) 创建CondWait() 阻塞等待Signal() 唤醒其中一个Broadcast() 唤醒全部。

2023-09-23 15:12:29 106

原创 Go sync.waitGroup

下面的代码是基于 go1.20 版本整体流程还是比较简单的Add 和 Done 会对任务进行计数增减,当计数任务全部完成后对 wait的阻塞进行唤醒有等待的才会去唤醒Wait 会根据 计数任务来决定是否进行阻塞等待如果计数任务 > 0,进行等待 & 等待计数 +1计数任务等于 0,不等待通过查看上面的panic 代码块,我们知道不建议 在 wg.Add + wg.Wait 后再 进行 wg.Add。

2023-09-11 21:16:00 339

原创 Go 锁扩展

【代码】Go 锁扩展。

2023-09-10 12:53:33 261

原创 Go 锁演进

【代码】Go 锁演进。

2023-09-09 16:41:41 297

原创 es 嵌套对象查询

nested 类型用于处理嵌套的文档结构,其中一个文档中包含了另一个文档的数组。使用 es的自动类型推断,且是由多个对象组成。的数据,正常应该是没有的,但是结果却查出来了。是想要获取 goods中 包含。

2023-08-24 11:48:13 1563

原创 Golang go mod 包管理

【代码】Golang go mod 包管理。

2023-08-12 06:00:00 278

原创 Golang 的面向对象

【代码】Golang 的面向对象。

2023-08-10 20:24:14 455

原创 Golang 生成可下载CSV文件

【代码】Golang 生成可下载CSV文件。

2023-08-07 23:08:35 488

原创 Golang map 常用方法

由于map是无序的,所以排序成 slice 返回,且都使用泛,代码只是示例,省略了错误判断。

2023-08-06 16:09:39 608 1

原创 Golang 切片 常用方法

【代码】Golang 切片 常用方法。

2023-08-03 17:46:57 983

原创 Golang 执行 shell

这里使用 os/exec 包,通过 exec.command 创建 cmd命令,最后通过 cmd.run 执行命令。

2023-07-25 17:16:52 551

原创 Golang字符串过滤

【代码】Golang字符串过滤。

2023-07-24 19:24:43 528

原创 Golang 字符串的分割_合并_截取

【代码】Golang 字符串的分割_合并_截取。

2023-07-22 14:32:43 876

原创 Golang 字符的匹配和统计

【代码】Golang 字符的匹配和统计。

2023-07-22 00:51:33 402

原创 CSV操作

【代码】CSV操作。

2023-07-14 09:57:45 59

原创 golangci-lint 使用

这里我使用V1.53.2版本,是比较新的,因为我要使用泛型。

2023-07-10 16:01:15 979

原创 Golang switch 进阶

违反了 一,因为 byte 本质就是 unit8 , 编译不通过。三个case中都包含2,但是由于前两个case是表达式。是常量,会尝试进行自动类型转换后,再和。**bad(编译不通过) : **, 这个是可以正常运行的。非接口类型,编译不通过。

2023-06-07 17:49:41 896 1

原创 如何编写Makefile

如果想编写好,你需要了解 的 语法、变量、函数 等相关知识,并且能够熟练运用忘记从哪里copy的了,不过很好用只要在 tagert 上方 以 写注释,就能被help伪目标解析Makefile:第二行的Makefile(和当前Makefile文件名保持一致)是和第四行的$

2023-05-29 09:58:05 684

原创 Golang 不可寻址

不可寻址: 找不到内存地址找不到内存地址就无法调用带指针的方法。

2023-05-22 20:44:06 132

原创 Makefile 函数

* 将 express 作为 makefile的一部分执行**** 使用shell执行command并返回结果**** 获取 names 中的后缀**** 扩展通配符可以使用**

2023-05-19 19:35:07 890

原创 Makefile 条件语句

关键字后跟一个空格,不然你会报错哦 Makefile:4: *** missing separator. Stop.

2023-05-14 14:54:11 88

原创 Makefile 变量

是指 Makefile 执行完后,外部的环境变量并不会改变(这是由于makefile 是 fork 出子进程去执行 command )注意事项,define 定义作为变量,则不能在 makefile 中 使用,需要导出作为环境变量使用。Makefile中变量名和外部环境变量名相同时,会临时覆盖环境变量,会判断是否设置过,没设置过才赋值,设置过就使用原来的值。Makefile中为我们定义好的变量,拿来使用即可。赋值,最右边的只取当前值,即为最终值。赋值在重新赋值时,都会覆盖原有的值。赋值,只取最后设置的值。

2023-05-12 14:57:58 883

原创 Makefile 基础知识(一)

工程编译规则,用于描述如何将代码变为可执行文件的过程哪些文件需要编译,如何编译需要那些类库,怎么获取这些类库如何将上面的东西变成可执行文件。

2023-05-05 00:52:53 484

原创 Go常用设计模式

代理模式对被代理的对象进行访问控制,把主机看做一个类,那么路由器就是代理者,代理者可以决定是否对其开放网络,和获取主机网络的具体信息。工厂方法 提供创建实例的方法,由外部决定是否创建,或者创建的(规格),适用于多规格的产品,比较灵活。主要是对算法(策略)的封装,根据不同场景使用不同的策略。等我感觉要死了再吃,就是我确定要用到,才会去实例化。将共同点抽离生成模板类,可变点强制子类去实现。不管什么方式,都应该提供一个最佳配置的生成。和简单工厂的区别在于其返回的是接口类型。饿的要死就先吃,上来就给你初始化。

2023-04-30 01:11:30 762

原创 如何写出好的Go项目

老生常谈,还是从三个方面讲Go应用项目管理项目文档。

2023-04-25 23:12:24 540

原创 项目研发模式

业界常用的三种研发模式瀑布模式迭代模式敏捷模式。

2023-04-23 06:30:00 565

原创 项目研发流程

业界标准分为六个流程,每一个阶段都有输入和输出,下一个阶段依赖上一个阶段的输出。即通过各种方式,来提高产品知名度,让更多的人来使用。该阶段对市场进行调研,对需求进行分析,评审。对系统各项指标进行监控,保障系统的稳定运行。下面统称测试人员为 “小可爱”a. 预发环境的发布和验证。b. 生产环境的发布和验证。

2023-04-22 13:52:33 767

原创 Git 工作流设计

常用的工作流有四种集中式工作流功能分支流git flow 工作流forking 工作流。

2023-04-21 11:21:14 788

原创 Go项目目录详细划分

从有无代码划分为 Go应用、项目管理、文档Go应用由可以分为开发阶段、测试阶段、发布阶段。

2023-04-20 11:53:09 174

原创 Go 项目目录结构设计

目录结构是项目的门面,你懂的,有点三岁看到老的意思。

2023-04-19 18:07:18 98

原创 语义化版本规范

Github 起草的一个具有指导意义的、统一的版本号表示规范由主版本号.次版本号.修订号 组成,三个号都为正整数,且不能补0。

2023-04-16 05:00:00 52

原创 git rebase 常用技巧

比较常用的就是合并多个代码commit,来减少push次数,配合。进入交互界面进行操作。

2023-04-15 18:01:49 86

原创 golang select 用法

select 是用来配合channel使用的。

2023-04-14 16:12:05 669

空空如也

空空如也

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

TA关注的人

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