Golang微服务框架Kratos使用问题总结

Golang微服务框架Kratos使用问题总结
最近准备使用微服务框架做一套系统,当然不用框架也能做(使用gRPC、API网关和权限校验创建Go微服务 Part 1/2),但人力有限的情况下用框架肯定是更好的选择。显然 go-micro时代已经过去了,那么我们更容易锁定到国内开源的两个框架,go-zero和Kratos,各有千秋。本着没有深入使用就没有发言权的原则,我很可能会各实现一套来进行对比,就学习资……继续阅读 »

Alan 2周前 (07-31) 71浏览 0评论0个赞

使用gRPC、API网关和权限校验创建Go微服务[上]

使用gRPC、API网关和权限校验创建Go微服务[上]
使用Go语言创建3个微服务和1个API网关 (2022版)我们会一起开发3个微服务和1个处理HTTP请求的API网关。HTTP请求会通过gRPC转发给这些微服务。此外还会同时处理JWT验证。本文由两部分组成,第二部分请点击这里。我们要创建什么应用呢?我们会一起构建一套小型电商系统,项目使用Go语言进行开发。Flowchart应用架构本系……继续阅读 »

Alan 3周前 (07-27) 109浏览 0评论0个赞

如何编写内存高效及CPU调优的Go结构体

如何编写内存高效及CPU调优的Go结构体
结构体是包含多个字段的集合类型,用于将数据组合为记录。这样可以将与同一实体相关联的数据利落地封装到一个轻量的类型定义中,然后通过对该结构体类型定义方法来实现不同的行为。本文会尝试从内存利用和CPU周期的角度讲解如何高效编写struct。我们来看下面这一结构体,这是我们一个奇怪用例所定义的terraform资源类型: ty……继续阅读 »

Alan 3周前 (07-26) 75浏览 0评论0个赞

Python进阶系列三:字典和集合

Python进阶系列三:字典和集合
Python 基本就是一堆封装着语法糖的字典。-Lalo Martins,早期数字游民和 Python 专家在所有的Python程序中都会使用到字典。即便没在代码中直接使用,也是间接用到,因为dict类型是Python实现的一个基础。类和实例发不发、模块命名空间以及函数关键词参数都是在内存以及字典表示的核心Python结构。__builtins__.__……继续阅读 »

Alan 2个月前 (06-24) 146浏览 2个赞

【Rust编程第2版】第2章 Rust编程语言之旅

【Rust编程第2版】第2章 Rust编程语言之旅
Rust给作者写书带来了挑战:这种语言的特点不是可以放在一页纸中吹嘘的某一个具体牛逼的特性,而是其精巧设计的每个部分共同平滑实现最后一章所提出的目标:安全、高性能编程。语言的每一部分都与其它部分进行了完美的结合。因此我们不是先一个个讲解语言特性,而是准备了一些小而完整的程序,每个程序都会涉及到语言的一些特性:热身程序里对命令行参数进行简单运算,同时包含……继续阅读 »

Alan 2个月前 (06-17) 278浏览 0评论0个赞

Redis 的学习总结

Redis 的学习总结
Redis 使用一个哈希表来保存所有键值对,这个哈希表,其实就是一个数组,数组的每个元素称为一个哈希桶。哈希桶中的元素保存的并不是值本身,而是指向具体值的指针。集合类型的底层数据结构主要有 5 种:整数数组、双向链表、哈希表、压缩列表和跳表。Redis 单线程是指它对网络 IO 和数据读写的操作采用了一个线程,而采用单线程的一个核……继续阅读 »

Alan 4个月前 (04-29) 303浏览 0评论0个赞

JavaScript的学习总结

JavaScript的学习总结
创始人:Brendan Eich0.1+0.2==0.3或0.1+0.2===0.3均返回 false,原因自然是浮点运算的精度问题。那么如何进行判断呢?可以使用Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON(但0.1+0.3===0.4返回的是true 哦)1/0===Infinity、1/-0===……继续阅读 »

Alan 4个月前 (04-26) 316浏览 0评论0个赞

Python进阶系列二:数组序列

Python进阶系列二:数组序列
在写出Python之前,Python是ABC编程语言的贡献者,这是一个为初学者设计编程环境持续了10年的研究项目。ABC引入大量现在称为Pythonic的概念:对不同类型序列的通用操作、内置元组和映射类型,缩进的代码结构、无变量声明的强类型等等。Python如此友好不是一蹴而就的。Python继承了ABC中的序列统一处理。字符串、列表、字节序列、数组、XM……继续阅读 »

Alan 6个月前 (02-05) 965浏览 2评论0个赞