HughNian Blog

Thinking more & Doing better

Go语言编译模式浅谈

Golang里你不知道的小秘密

buildmode 在刚开始接触Go语言时,就觉得它的编译比C/C++的gcc/g++方便很多,一个简单的go build命令可以完成所有gcc/g++的事情,不过之前的使用都是简单使用,编译成 可执行文件,如果想要编译成动态库什么这里就需要用到buildmode参数,当然这个参数的功能远不止编译成动态库这一项。参数的使用也完全就是go build命令完成, 不得不说Go的方便,ps: go...

还不升级http/2就跟不上时代了

升级http/2让你的网站访问起飞

http/2起飞 第一次听到http/2这个词,是在一些技术社区里大佬闲暇谈资时提起的,当时以为是不是啥类似protobuf协议的东西,后来了解后发现是我想偏了😄。 http/2从字面上看也是和http协议相关的,只是http/1的升级版。http/2协议标准于2015年正式发布,该标准协议有Chrome, Opera, Firefox, Safari, Edge等主流大厂共同制定, 所以h...

Kafka如何做到百万TPS

支持百万级TPS,Kafka是怎么做到的?答案藏在这10张图里

谈到大数据传输都会想到 Kafka,Kafka 号称大数据的杀手锏,在业界有很多成熟的应用场景并且被主流公司认可。这款为大数据而生的消息中间件,以其百万级TPS的吞吐量名声大噪,迅速成为大数据领域的宠儿,在数据采集、传输、存储的过程中发挥着举足轻重的作用。 在业界已经有很多成熟的消息中间件如:RabbitMQ, RocketMQ, ActiveMQ, ZeroMQ,为什么 Kafka 在众...

C语言的函数参数最多可以传多少

x86-64 规定只有6个寄存器来存参数,那 C 函数为什么还能超过6个参数呢?

#include <stdio.h> int test(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10) { return arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 +...

C语言字符串截取趣谈

为什么有时候字符串可以截取有时候又不行

需求 假如有这样的一个需求,有个日期,想要截取获得其年份。我们用php可以使用explode,也可以使用strtok $a = "2019-09-10 00:00:00"; echo strtok($a,"-"); // 2019 可能大家对strtok不太熟悉,它的作用是用-来分割$a获取子串,循环调用可以达到和explode差不多的效果。 实验 实验1 我之所以用strtok呢...

PHP的箭头函数

php7.4的新特性

箭头函数,这个名词应该不会陌生了,因为在很多其他语言里都已经有了,尤其是es6这样的语法中,更是早,而且还有很多其他各种奇技淫巧的语法( ̄▽ ̄)”。 箭头函数也叫短闭包,是一种用php编写的短函数。当向函数中传递闭包时,这个功能是非常有用的,比如使用array_map,array_wakl,array_filter。 在php中写的是这个样子 // Post 对象的集合 $posts =...

Go和C/C++类型语言的在线热重启

golang,c,c++

原因 热重启的这种需求是在很多编译型的服务端代码中经常遇到的情况,如JAVA,C/C++,Golang等,目前JAVA有自己一套成熟的热重启方案,又方便又好用,相比而言,C/C++的 热重启有点麻烦,需要自己写一些代码。Golang的热重启我了解到的大部分情况都是基于http的服务,基于http的服务热重启,Golang有着方便的解决方案, server *http.Server serve...

php扩展开发中引用计数与GC

php,php扩展

0x01 php扩展的开发现在有不少新的方式比如用zephir。是一种用类似php的语法写php扩展。当然主要的还是用纯C写扩展。在开发php扩展中,由于资料还是比较缺少的,走了不少弯路。 以此来做个记录总结。 我在开发nmid-php-ext扩展时,先查阅了些php扩展开发文档,目前比较好的可能就是盘古大叔的文档https://github.com/pangudashu/php7-in...

nmid分布式微服务调度系统

分布式,微服务

缘起 分布式微服务系统一直以来都是服务端技术比较重要且是高级的技术领域,首先需要肯定的是,所有微服务都是分布式的系统,微服务的架构离不开分布式,他是一种特殊的分布式,换句话说,微服务架构是分布式服务架构的子集, 微服务架构通过更细粒度的服务切分,使得整个系统的迭代速度并行程度更高。 分布式系统的实现有复杂的诸如Map-Reduce,HBase,Dynamo等,也有简单的只是一个rpc服务。...

容器监控工具WeaveScope

Docker监控,Kubernetes监控

最近一段时间整了一些docker容器,弄了一些基于docker的微服务通信,弄好一套服务系统之后,对于服务的性能,基础数据的监控就显的很重要, 不然就是两眼一抹黑了,要不就是维护成本很高,这些都不符合一个高性能服务系统😄。这里就介绍下我最近用的容器监控工具WeaveScope。这个工具不仅可以 有基础性能的数据监控,同时还可以在线cli的操作,除了Docker外,这个工具还可以监控Kuber...