- 博客(244)
- 收藏
- 关注
原创 什么是架构
还有可能优化了A点,不经意造成B点的性能下降(可能变成负优化)。当前对DDOS攻击(耗尽出口带宽)没有什么比较好的方法,主要还是依靠运营商强大的带宽和流量清洗能力。1.提供了组件的开发规范,比如为laravel开发组件,就要遵循其发布包的规范。对高性能的追求会带来复杂度,分为单机复杂度,和集群复杂度,任务分解复杂度。1.单个服务变得简单,影响性能的点变少,更容易进行针对性优化。对低成本的追求并不是架构的首要目标,而是作为架构的附带约束。指的是相同的数据,经过不同的服务器处理后,结果是相同的。
2022-09-21 14:04:04 4948
原创 Redis大规模集群解决方案
文章目录Redis怎么支持大量数据Redis Cluster 为啥不适合做超大规模集群怎么构建超大规模Redis集群Redis怎么支持大量数据Redis cluster 构建集群,进行分片。将数据分到不同分片上分片保证高可用采用主从模式 由多台Redis 组成分片Redis引入槽(slot),集群固定16384(16*1024)数据落入或读取时对其key进行hash运算得到槽值,通过查找本身维护的元数据(槽值,节点位置映射) 获得槽所在节点如果本身是当前节点直接操作,否则返回给客户端重新定位到具
2022-03-11 10:30:06 1526
原创 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 1933 2
原创 Go sync.Map
首先,这个设计有点像二级缓存,其次基本上所有方法都有双检查(第一次不加锁,第二次加锁),从这两方面来看,sync.map对读多写少的场景比较友好。
2023-11-02 18:25:16 309
原创 Go sync.Cond 原理
sync.Cond基本很少使用,应为大部分都能使用channel代替sync.Cond通常是基于sync.Mutex扩展的主要就四个方法newCond(l locker) 创建CondWait() 阻塞等待Signal() 唤醒其中一个Broadcast() 唤醒全部。
2023-09-23 15:12:29 211
原创 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 465
原创 es 嵌套对象查询
nested 类型用于处理嵌套的文档结构,其中一个文档中包含了另一个文档的数组。使用 es的自动类型推断,且是由多个对象组成。的数据,正常应该是没有的,但是结果却查出来了。是想要获取 goods中 包含。
2023-08-24 11:48:13 1807
原创 Golang 执行 shell
这里使用 os/exec 包,通过 exec.command 创建 cmd命令,最后通过 cmd.run 执行命令。
2023-07-25 17:16:52 611
原创 Golang switch 进阶
违反了 一,因为 byte 本质就是 unit8 , 编译不通过。三个case中都包含2,但是由于前两个case是表达式。是常量,会尝试进行自动类型转换后,再和。**bad(编译不通过) : **, 这个是可以正常运行的。非接口类型,编译不通过。
2023-06-07 17:49:41 1017 1
原创 如何编写Makefile
如果想编写好,你需要了解 的 语法、变量、函数 等相关知识,并且能够熟练运用忘记从哪里copy的了,不过很好用只要在 tagert 上方 以 写注释,就能被help伪目标解析Makefile:第二行的Makefile(和当前Makefile文件名保持一致)是和第四行的$
2023-05-29 09:58:05 723
原创 Makefile 函数
* 将 express 作为 makefile的一部分执行**** 使用shell执行command并返回结果**** 获取 names 中的后缀**** 扩展通配符可以使用**
2023-05-19 19:35:07 1058
原创 Makefile 变量
是指 Makefile 执行完后,外部的环境变量并不会改变(这是由于makefile 是 fork 出子进程去执行 command )注意事项,define 定义作为变量,则不能在 makefile 中 使用,需要导出作为环境变量使用。Makefile中变量名和外部环境变量名相同时,会临时覆盖环境变量,会判断是否设置过,没设置过才赋值,设置过就使用原来的值。Makefile中为我们定义好的变量,拿来使用即可。赋值,最右边的只取当前值,即为最终值。赋值在重新赋值时,都会覆盖原有的值。赋值,只取最后设置的值。
2023-05-12 14:57:58 1158
原创 Makefile 基础知识(一)
工程编译规则,用于描述如何将代码变为可执行文件的过程哪些文件需要编译,如何编译需要那些类库,怎么获取这些类库如何将上面的东西变成可执行文件。
2023-05-05 00:52:53 645
原创 Go常用设计模式
代理模式对被代理的对象进行访问控制,把主机看做一个类,那么路由器就是代理者,代理者可以决定是否对其开放网络,和获取主机网络的具体信息。工厂方法 提供创建实例的方法,由外部决定是否创建,或者创建的(规格),适用于多规格的产品,比较灵活。主要是对算法(策略)的封装,根据不同场景使用不同的策略。等我感觉要死了再吃,就是我确定要用到,才会去实例化。将共同点抽离生成模板类,可变点强制子类去实现。不管什么方式,都应该提供一个最佳配置的生成。和简单工厂的区别在于其返回的是接口类型。饿的要死就先吃,上来就给你初始化。
2023-04-30 01:11:30 926
原创 项目研发流程
业界标准分为六个流程,每一个阶段都有输入和输出,下一个阶段依赖上一个阶段的输出。即通过各种方式,来提高产品知名度,让更多的人来使用。该阶段对市场进行调研,对需求进行分析,评审。对系统各项指标进行监控,保障系统的稳定运行。下面统称测试人员为 “小可爱”a. 预发环境的发布和验证。b. 生产环境的发布和验证。
2023-04-22 13:52:33 901
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人