随笔分类 - Golang
摘要:`grpcurl` 和 `grpcui` 都是调试`grpc`的利器,前者用于命令行,类似`curl`工具;后者是以`web`的形式进行调试的,类似`postman`工具。
有了这两款工具,我们不用写任何客户端代码,也能方便的调试接口数据。
阅读全文
摘要:本文对常见的json包做一些介绍,方便快速入门。每一小节均有示例说明。大家在实际开发中可以选择适合自己的json包。 encoding/json 是官方提供的标准json, 实现 "RFC 7159中" 定义的JSON编码和解码。使用的时候需要预定义 ,原理是通过 和`interface`来完成工作
阅读全文
摘要:使用Golang可以开发出高性能的HTTP、GRPC服务。一般项目运行后,我们也需要监控服务的性能或者进行调试。除了打日志,还有没有其他可视化的方案呢?答案是有的。 本文将会介绍几种常用的监控方案。 pprof 这个是go语言自带的。启用很简单: 仅需显式的在 main 包的 import 里增加上
阅读全文
摘要:(High Performance Remote Object Service Engine) 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。 官网:https://hprose.com/ 本文将讲解如何使用 go 服务端编写一个微服务,并
阅读全文
摘要:database/sql 接口 Go官方没有提供数据库驱动,而是为开发数据库驱动定义了一些标准接口 ,开发者可以根据定义的接口来开发相应的数据库驱动,这样做有一个好处,只要是按照标准接口开发的代码, 以后需要迁移数据库时,不需要任何修改。 MySQL 常用的有如下几种: https://github
阅读全文
摘要:strings 字符串函数 字符串s是否包含字符串substr,包含返回true 将字符串s按照分隔符sep分隔为slice 字符串拼接,把slice a通过sep链接起 在s字符串的头部和尾部去除cutset指定的字符串 在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示
阅读全文
摘要:Thrift 是一种被广泛使用的 rpc 框架,可以比较灵活的定义数据结构和函数输入输出参数,并且可以跨语言调用。为了保证服务接口的统一性和可维护性,我们需要在最开始就制定一系列规范并严格遵守,降低后续维护成本。 Thrift开发流程是:先定义IDL,使用thrift工具生成目标语言接口( )代码,
阅读全文
摘要:概要 由于gRPC主要是谷歌开发的,由于一些已知的原因,gRPC跑demo还是不那么顺利的。单独写这一篇,主要是gRPC安装过程中的坑太多了,记录下来让大家少走弯路。 主要的坑: 如果使用PHP、Python开发gRPC的客户端,需要编译gRPC命令行工具,生成proto的代码生成插件,否则prot
阅读全文
摘要:本文以PHP为例。 环境: CentOS 6.8 proto 3.8 PHP 7.1.12 PHP protobuf扩展 3.8.0 go1.12.5 linux/amd64 本文示例仓库地址: https://github.com/52fhy/protobuf sample 是什么 Protobu
阅读全文