12 2020 档案
摘要:原文:https://www.jianshu.com/p/fa937b8e6712 一、简介 ** 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;**同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址
阅读全文
摘要:Apollo核心概念之“Namespace” 1. 什么是Namespace? Namespace是配置项的集合,类似于一个配置文件的概念。 2. 什么是“application”的Namespace? Apollo在创建项目的时候,都会默认创建一个“application”的Namespace。顾
阅读全文
摘要:一、Charles 相当于一个插在服务器和客户端之间的“过滤器”; 其实 Charles 的实现原理并不复杂;大概的实现如下; 当客户端向服务器发起请求的时候,先到 charles 进行过滤,然后 charles 在把最终的数据发送给服务器; 注意:此时 charles 发给服务器的数据,不一定是客
阅读全文
摘要:GIN框架中间件 C.NEXT() C.ABORT() C.SET() C.GET 跨中间件取值 GIN中间件中使用GOROUTINE 标签: Go 1. C.NEXT()演示 //HandlerFunc func indexHandler(c *gin.Context) { fmt.Println
阅读全文
摘要:gin内置验证器使用 func TopicUrl(f1 validator.FieldLevel) bool { return true //返回true表示验证成功 } func main(){ router:=gin.Default() if v, ok := binding.Validator
阅读全文
摘要:pflag 包的主要特点 支持更加精细的参数类型: uint、uint64、uint8、uint16、int32等类型。 支持更多参数类型:ip、ip mask、ip net、count、以及所有类型的 slice 类型。 兼容标准 flag 库的 Flag 和 FlagSet:pflag 更像是对
阅读全文
摘要:阅读目录(Content) [golang]text/template模板 引言 这个可以用来处理text文本,不过我更偏爱做成代码生成器。 回到顶部(go to top) [golang]text/template模板 package main import ( "os" "text/templa
阅读全文
摘要:一般在单体应用中,如果遇到高并发可以通过 synchronized 或者 Lock 进行加锁,但是现在大部分应用都是采用分布式的方式进行部署,这样像 synchronized 和 Lock 这样的锁就不适用了。 这个使用我们可以使用分布式锁来实现,分布式锁的实现方式主要有: 基于数据库的分布式锁 基
阅读全文
摘要:分布式事务的四种解决方案 简述 分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。 例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。 解决方案 在分布式系统中,要实现分布式事务,无外乎那几种解决方案。 一、两阶段提交(2PC) 两阶段提交(Two-phase
阅读全文
摘要:参考链接: https://github.com/xxjwxc/uber_go_guide_cn
阅读全文
摘要:假如你自己有个站点,如今仅仅有一个域名,你想加一个域名,这时候你想加一个域名,能够简单的设置一个 CNAME 解析到之前的域名就好了。 这种优点是。假设你server的 IP 修改你不必改每一个域名的解析。仅仅须要改一个就好了。 参考: https://www.cnblogs.com/liguang
阅读全文
摘要:目录 1 nginx_upstream_check_module 2 Nginx中加载并配置此模块 3 web页面测试 1 nginx_upstream_check_module 可以利用第三方Nginx插件监控代理后端节点的服务器。 淘宝技术团队开发了一个Tengine(Nginx的分支)模块ng
阅读全文
摘要:中间件(Middleware)在Laravel中起着过滤进入应用的HTTP请求对象(Request)和完善离开应用的HTTP响应对象(Reponse)的作用, 而且可以通过应用多个中间件来层层过滤请求、逐步完善相应。这样就做到了程序的解耦,如果没有中间件那么我们必须在控制器中来完成这些步骤,这无疑会
阅读全文
摘要:1、首先 移除 openssl:brew remove openssl 2、安装 openssl:brew install openssl 3、根据提示在 ~/.bash_profile 文件中添加如下内容: echo 'export PATH="/usr/local/opt/openssl@1.1
阅读全文
摘要:路由功能是web框架中一个很重要的功能,它将不同的请求转发给不同的函数(handler)处理,很容易能想到,我们可以用一个字典保存它们之间的对应关系,字典的key存放path,value存放handler。当一个请求过来后,使用 routers.get(path, None) 就可以找到对应的han
阅读全文
摘要:Trie树 Trie这个名字取自“retrieval”,检索,因为Trie可以只用一个前缀便可以在一部字典中找到想要的单词。 虽然发音与「Tree」一致,但为了将这种 字典树 与 普通二叉树 以示区别,程序员小吴一般读「Trie」尾部会重读一声,可以理解为读「TreeE」。 Trie 树,也叫“字典
阅读全文
摘要:HTTP/2有三大特性:头部压缩、Server Push、多路复用。前两个特性意思比较明确,也好理解,唯有多路复用不太好理解,尤其是和HTTP1.1进行对比的时候,这个问题我想了很长时间,也对比了很长时间,现在把思考的结果分享出来,希望对大家有帮忙。 先来说说Keep-Alive 在没有Keep-A
阅读全文
摘要:struct 中的字段顺序不同,内存占用也有可能会相差很大。比如: type T1 struct { a int8 b int64 c int16 } type T2 struct { a int8 c int16 b int64 } 在 64 bit 平台上,T1 占用 24 bytes,T2 占
阅读全文
摘要:HTTPS 详解系列:HTTPS 详解一:附带最精美详尽的 HTTPS 原理图HTTPS 详解二:SSL / TLS 工作原理和详细握手过程 前言 作为一个有追求的程序员,了解行业发展趋势和扩充自己的计算机知识储备都是很有必要的,特别是一些计算机基础方面的内容,就比如本篇文章要讲的计算机网络方面的知
阅读全文
摘要:从一个例子说起: <?php $foo = 1; $bar = $foo; echo $foo + $bar; 变量 foo 赋值给变量foo赋值给变量bar,这两个变量具有相同的值,没有必要新申请内存空间,他们可以共享同一块内存。在很多场景下PHP 的 COW 对内存进行优化。比如:变量的多次赋值
阅读全文
摘要:最近在做性能优化,有个函数里面的耗时特别长,看里面的操作大多是一些字符串拼接的操作,而字符串拼接在 golang 里面其实有很多种实现。 实现方法 1.直接使用运算符 func BenchmarkAddStringWithOperator(b *testing.B) { hello := "hell
阅读全文
摘要:在搜索引擎中,数据被爬取后,就会建立index,方便检索。 在工作中经常会听到有人问,你这个index是正排的还是倒排的?那么什么是正排呢?什么又是倒排呢?下面是一些简单的介绍。 网页A中的内容片段: Tom is a boy. Tom is a student too. 网页B中的内容片段: Jo
阅读全文