POST提交数据

HTTP/1.1 协议约定的常见请求Method有 GET、HEAD、POST、PUT、PATCH、DELETE、CONNECT、OPTIONS、TRACE这几种。看看Go源代码中的常量定义: 1 2 3 4 5 6 7 8 9 10 11 12 13 // Common HTTP methods. // Unless otherwise ………

阅读全文

Go随笔 | 函数递归调用性能分析

今天说说递归和循环调用的性能比较。 递归的优点是简化程序设计,结构简洁清晰,容易编程,可读性强,容易理解。在很多情况下使用递归是必要的,它往往能把复杂问题分解为更简单的步骤,而且能够反映问题的本质。又比如汉诺塔,用递归的话基本上可以理解,但是如果不用递归而用循环的话,程序根本不知道从何处着手! 但是递归的缺点也很明显:速度慢,运行效率低, ………

阅读全文

Go总结(二十)| 强大的runtime包

runtime包提供了运行时与系统的交互,比如控制协程函数,触发垃圾立即回收等等底层操作,下面我们就运行时能做的所有事情逐个进行说明: 1.获取GOROOT环境变量 2.获取GO的版本号 3.获取本机CPU个数 4.设置最大可同时执行的最大CPU数 5.设置cup profile 记录的速录 6.查看cup profile 下一次堆栈跟踪 ………

阅读全文

go-zero(四)| zRPC拦截器

zRPC是经过生产环境千万日活实践检验的通用RPC框架,其底层依赖gRPC,内置完整的微服务治理能力。是一款简单、通用、高性能、可扩展的RPC框架。 框架特点 通用性:依赖gRPC,支持跨语言的调用 高性能:底层依赖HTTP2协议,序列化采用Protobuf序列化,保证了高性能 可扩展:用户可根据不同的业务特点扩展功能如自定义拦截器等等 ………

阅读全文

日志处理套件ELK

今天介绍微服务架构中的日志收集方案 ELK(ELK 是 Elasticsearch、Logstash、Kibana 的简称),准确的说是 ELKB,即 ELK + Filebeat,其中 Filebeat 是用于转发和集中日志数据的轻量级传送工具。 ELK虽然也可以用在很多其它领域,但典型的用法就是收集分析处理日志的组合工具。 日志系统 ………

阅读全文

Prometheus+Grafana

今天介绍Prometheus+Grafana打造高逼格监控平台。看看如何使用Grafana和Prometheus以及node_exporter对Linux服务器性能进行监控。 其实很早的时候我自己就写过一套这样的系统:n-sentinel 。主要是用Node.js实现的。思路都差不多,总结一下就是下面三点: 需要在每台需要监控的服务器上启 ………

阅读全文

Dockerfile镜像和编排

Dockerfile简介 Dockerfile 是一个用来构建镜像的文本文件。文本内容包含了一条条构建镜像所需的指令和说明。 Docker通过读取Dockerfile中的指令自动生成映像。用docker build命令来执行构建。可以加-f标志指向文件系统中任何位置的Dockerfile。例如: docker build -f ………

阅读全文

K8s006 | 数据存储方案

默认情况下容器中的磁盘文件是非持久化的,对于运行在容器中的应用来说面临两个问题: 当容器挂掉kubelet将重启启动它时,文件将会丢失; 当Pod中同时运行多个容器,容器之间需要共享文件时。 Kubernetes的Volume解决了这两个问题。内部实现中,一个Volume只是一个目录,目录中可能有一些数据,pod的容器可以访问这些数据。至 ………

阅读全文

go-zero(三)| zRPC

go-zero是一个集成了各种工程实践的包含了Web和RPC协议的功能完善的微服务框架,那么他的RPC功能是如何实现的呢?他自己封装了一个叫zRPC的底层模块,这个模块依赖gRPC,同时内置了服务注册、负载均衡、拦截器等功能,其中还包括自适应降载,自适应熔断,限流等微服务治理方案,是一个简单易用的可直接用于生产的企业级RPC框架。 ………

阅读全文