11 2020 档案

摘要:调用函数时, 传入的参数的 传值 还是 传引用, 几乎是每种编程语言都会关注的问题. 最近在使用 golang 的时候, 由于 传值 和 传引用 的方式没有弄清楚, 导致了 BUG. 经过深入的尝试, 终于弄明白了 golang 的 传值 的 传引用, 尝试过程记录如下, 供大家参考! golang 阅读全文
posted @ 2020-11-30 18:15 zbs666 阅读(110) 评论(0) 推荐(0) 编辑
摘要:lvs和nginx都可以用作多机负载方案,他们各有优缺点,在生产环境中需要好好分析实际情况并加以利用。 一、lvs的优势: 1.抗负载能力强,因为lvs工作方式的逻辑是非常简单的,而且工作在网络的第4层,仅作请求分发用,没有流量,所以在效率上基本不需要太过考虑。lvs一般很少出现故障,即使出现故障一 阅读全文
posted @ 2020-11-29 22:18 zbs666 阅读(883) 评论(0) 推荐(0) 编辑
摘要:目前常用的Linux发行版主要包括Debian/Ubuntu系列和CentOS/Fedora系列。前者以自带软件包版本较新而出名;后者则宣称运行更稳定一些。选择哪个操作系统取决于读者的具体需求。同时,社区还推出了完全基于Docker的Linux发行版CoreOS。 使用Docker,只需要一个命令就 阅读全文
posted @ 2020-11-29 21:53 zbs666 阅读(2148) 评论(0) 推荐(0) 编辑
摘要:logstash 和filebeat 是什么关系 因为logstash是jvm跑的,资源消耗比较大,所以后来作者又用golang写了一个功能较少但是资源消耗也小的轻量级的logstash-forwarder。不过作者只是一个人,加入http://elastic.co公司以后,因为es公司本身还收购了 阅读全文
posted @ 2020-11-29 15:32 zbs666 阅读(347) 评论(0) 推荐(0) 编辑
摘要:一、主从同步/复制 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。 但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。 为了避免单点故障,通常的做法是将数据库复 阅读全文
posted @ 2020-11-29 10:49 zbs666 阅读(10140) 评论(0) 推荐(0) 编辑
摘要:redis 从5开始 可以直接用redis-cli命令创建集群了,不用那么麻烦 安装ruby环境 redis配置文件需要修改的地方 1 2 3 4 5 port 7000 cluster-enabled yes cluster-config-file nodes.7000.conf cluster- 阅读全文
posted @ 2020-11-29 09:21 zbs666 阅读(195) 评论(0) 推荐(0) 编辑
摘要:docker Dockerfile指令ADD和COPY的区别,添加目录方法 ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件 拷贝到镜像中。其格式是: ADD 源路径 目标路径#把当前config目录下所有文件拷贝到/config/目录下ADD config/ 阅读全文
posted @ 2020-11-28 21:43 zbs666 阅读(3747) 评论(0) 推荐(0) 编辑
摘要:通常情况下,建立索引是加快查询速度的有效手段。但索引不是万能的,靠索 引并不能实现对所有数据的快速存取。事实上,如果索引策略和数据检索需求严重不符的话,建立索引反而会降低查询性能。因此在实际使用当中,应该充分考虑到 索引的开销,包括磁盘空间的开销及处理开销(如资源竞争和加锁)。例如,如果数据频繁的更 阅读全文
posted @ 2020-11-28 10:29 zbs666 阅读(4364) 评论(0) 推荐(0) 编辑
摘要:atomic是最轻量级的锁,在一些场景下直接使用atomic包还是很有效的。下面内容摘秒自《GO并发编程实战》—— 原子操作: CAS操作的优势是,可以在不形成临界区和创建互斥量的情况下完成并发安全的值替换操作。这可以大大的减少同步对程序性能的损耗。 当然,CAS操作也有劣势。在被操作值被频繁变更的 阅读全文
posted @ 2020-11-10 12:39 zbs666 阅读(651) 评论(0) 推荐(0) 编辑
摘要:sync/atomic标准库包中提供的原子操作 原子操作是比其它同步技术更基础的操作。原子操作是无锁的,常常直接通过CPU指令直接实现。事实上,其它同步技术的实现常常依赖于原子操作。 注意,本文中的很多例子并非并发程序。它们只是用来演示如何使用sync/atomic标准库包中提供的原子操作。 Go支 阅读全文
posted @ 2020-11-10 11:46 zbs666 阅读(229) 评论(0) 推荐(0) 编辑
摘要:Long 社会主义事业接班人 8 人赞同了该文章 在前面的文章中我们介绍过两种锁:内置锁(synchronized)和显式锁(ReentrantLock)。这两种锁都是独占锁,也就是说获取到这个锁之后其它线程再想获取这个锁必须等当前线程释放这个锁。有些时候线程多数情况下都是读取数据的值,而不是修改这 阅读全文
posted @ 2020-11-09 23:17 zbs666 阅读(116) 评论(0) 推荐(0) 编辑
摘要:前言 生活中用到的锁,用途都比较简单粗暴,上锁基本是为了防止外人进来、电动车被偷等等。 但生活中也不是没有 BUG 的,比如加锁的电动车在「广西 - 窃·格瓦拉」面前,锁就是形同虚设,只要他愿意,他就可以轻轻松松地把你电动车给「顺走」,不然打工怎么会是他这辈子不可能的事情呢?牛逼之人,必有牛逼之处。 阅读全文
posted @ 2020-11-09 23:06 zbs666 阅读(164) 评论(0) 推荐(0) 编辑
摘要:前面已经讲过很多Golang系列知识,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来要说的是golang的锁的使用场景主要涉及到哪些?读写锁为什么会比普通锁快。 一、什么场景下需要用到锁 当 阅读全文
posted @ 2020-11-09 22:32 zbs666 阅读(168) 评论(0) 推荐(0) 编辑
摘要:在前面的文件 I/O 文章中,我们有提到 Linux 文件 I/O 支持阻塞和非阻塞的数据读取方式,当采用阻塞方式进行 I/O 时,进程将会阻塞在read()或者write()系统调用上,直到文件可读或者是内核缓冲区可写。这些阻塞与唤醒的实现与内核调度紧密相关,Linux 内核使用等待队列和完成量来 阅读全文
posted @ 2020-11-04 10:02 zbs666 阅读(1607) 评论(1) 推荐(0) 编辑
摘要:MySQL是基于磁盘进行数据存储的关系型数据库, 所有的数据、索引等数据均以磁盘文件的方式存储, 在有需要时载入内存读取。 为了加快数据查询的效率, 通常会在一些字段上添加索引, 但是许多文档都会告诉我们, 不要添加太多的索引, 索引不要太长, 使用数字或者空字符串来代替NULL值, 为什么会有这些 阅读全文
posted @ 2020-11-04 09:48 zbs666 阅读(1844) 评论(0) 推荐(0) 编辑
摘要:为什么需要前缀索引 问题 我们在对一张表里的某个字段或者多个字段建立索引的时候,是否遇到过这个问题。 Specified key 'uniq_code' was too long; max key length is 767 bytes. 表结构如下: create table `t_account 阅读全文
posted @ 2020-11-04 09:26 zbs666 阅读(1184) 评论(0) 推荐(0) 编辑
摘要:Redis时延问题分析及应对 Redis的事件循环在一个线程中处理,作为一个单线程程序,重要的是要保证事件处理的时延短,这样,事件循环中的后续任务才不会阻塞;当redis的数据量达到一定级别后(比如20G),阻塞操作对性能的影响尤为严重;下面我们总结下在redis中有哪些耗时的场景及应对方法; 耗时 阅读全文
posted @ 2020-11-03 16:36 zbs666 阅读(268) 评论(0) 推荐(0) 编辑
摘要:在vue中,使用watch来响应数据的变化。watch的用法大致有三种。下面代码是watch的一种简单的用法: <input type="text" v-model="cityName"/> new Vue({ el: '#root', data: { cityName: 'shanghai' }, 阅读全文
posted @ 2020-11-03 10:59 zbs666 阅读(156) 评论(0) 推荐(0) 编辑
摘要:目录 简单的并发控制 使用计数器实现请求限流 使用golang官方包实现httpserver频率限制 使用Token Bucket(令牌桶算法)实现请求限流 简单的并发控制 利用 channel 的缓冲设定,我们就可以来实现并发的限制。我们只要在执行并发的同时,往一个带有缓冲的 channel 里写 阅读全文
posted @ 2020-11-01 18:27 zbs666 阅读(718) 评论(0) 推荐(0) 编辑
摘要:1、先看PHP观察者模式的实现: 想要使用事件、必须实现事件的基类、统一的addObserver和trigger方法 定义统一接口、所有的观察者都要实现此接口 //事件的基类 abstract class BaseEvent { private static $observer; //添加观察者 p 阅读全文
posted @ 2020-11-01 13:46 zbs666 阅读(99) 评论(0) 推荐(0) 编辑
摘要:1.1 REST & RPC 微服务之间的接口调用通常包含两个部分,序列化和通信协议。常见的序列化协议包括json、xml、hession、protobuf、thrift、text、bytes等;通信比较流行的是http、soap、websockect,RPC通常基于TCP实现,常用框架例如dubb 阅读全文
posted @ 2020-11-01 12:55 zbs666 阅读(319) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示