Go - 常用签名算法的基准测试

签名验证是为了保证接口安全和识别调用方身份,同时还需要满足以下几点:可变性:每次的签名必须是不一样的。时效性:每次请求的时效性,过期作废。唯一性:每次的签名是唯一的。完整性:能够对传入数据进行验证,防止篡改。签名规则大同小异,根据自己的业务情况进行制定即可。签名过程中我们会用到的几种算法,接下来分享一下每个算法的基准测试,可能会存在误差,供大家参考。MD5 单向散列加密func BenchmarkEncrypt(b *testing.B) { b.ResetTimer() for i := 0;...阅读全文

Segmentfault 2021-01-26 23:32:32 .container .car 等

Go - 基于 GORM 获取当前请求所执行的 SQL 信息

前言为了便于精准排查问题,需要将当前的请求信息与当前执行的 SQL 信息设置对应关系记录下来,记录的 SQL 信息包括:执行 SQL 的当前时间;执行 SQL 的文件地址和行号;执行 SQL 的花费时长;执行 SQL 的影响行数;执行的 SQL 语句;数据库组件使用的是 GORM。思路1、在执行 SQL 前,设置开始执行时间(计算执行时长会用到);2、在执行 SQL 后,第一,获取当前请求的上下文,为什么获取上下文,因为需要从上下文中获取本次请求信息,第二,获取 SQL 执行前的时间,用来计算执...阅读全文

Segmentfault 2021-01-26 20:32:32 .container .car 等

云原生之:蚂蚁Service Mesh大规模落地实践与展望

云原生的理念正如火如荼,然而真正大规模落地的公司依然屈指可数,蚂蚁作为国内比较早进行尝试的公司,经过了 2 年多的探索,沉淀出了一套切实可行的方案并最终通过了双十一的考验。 一、为什么需要 Service Mesh? image 我们为什么需要Service Mesh,它对业务的价值在哪里,我们总结了三点: 1. 微服务治理与业务逻辑解耦。 2. 异构系统的统一治理。 3. 金融级的网络安全。 下面分别进行阐述。 1. 微服务治理与业务逻辑解耦 在 Service Mesh 之前,传统微服务体系...阅读全文

简书 2021-01-23 16:33:27 Java斗帝之路

「linux」关于关闭一个还有没发送数据完的TCP连接思考

tcp相关视频解析:tcp专题训练营之深度解析tcp/ip协议栈徒手实现网络协议栈,请准备好环境,一起来写代码linux后台开发面试中tcpip,哪些容易被问到的当 close 一个 TCP 连接时,如果还有没发送完的数据在缓冲区中,内核会怎么处理?当时我认为,因为关闭 TCP 连接会触发四次挥手过程,而为了让四次挥手能够快速完成,应该会把发送缓冲区的数据清空,然后发送四次挥手的数据包。带着疑问,我去查阅 Linux 源码的实现,下面就是关闭一个 TCP 连接的过程。关闭 TCP 连接过程关闭一...阅读全文

简书 2021-01-23 16:33:24 linux大本营

HDFS & Yarn 即Hadoop by Jmx on Promethues + Grafana的监控(一) —— Promethues的安装

一、安装Go环境 因为Promethues是用go语言开发,所以要先安装一个go环境 1、下载安装包地址: Linux :go1.8.3.linux-amd64.tar.gz (86MB) Windows :go1.8.3.windows-amd64.msi (78MB) Mac :go1.8.3.darwin-amd64.tar.gz (85MB) Source: go1.8.3.src.tar.gz (15MB) 2、解压 tar -C /usr/local -xzf go1.8.3.lin...阅读全文

简书 2021-01-23 16:33:24 FishMAN__

基于golang开发的 AnyLink 企业级远程办公 ssl vpn 软件开源了

今天给大家推荐AnyLink,一个企业级远程办公 ssl vpn 软件,可以支持多人同时在线使用。 开源地址:https://github.com/bjdgyc/anylink AnyLink 基于 ietf-openconnect 协议开发,并且借鉴了 ocserv 的开发思路,使其可以同时兼容 AnyConnect 客户端。 AnyLink 使用TLS/DTLS进行数据加密,因此需要RSA或ECC证书,可以通过 Let's Encrypt 和 TrustAsia 申请免费的SSL证书。 An...阅读全文

简书 2021-01-23 16:33:24 bjdgyc

go-zero教程—— 工具下载与环境搭建

file 本教程有一些默认的前置条件,如果有不满足以下条件的,还请读者先了解一下再接着往下看。 默认读者是golang开发的新手,因为本人也是新手,本篇教程也是很稚嫩的。 默认读者有移动开发基础,iOS/安卓。因为我们最终会去做一个app,虽然是一个很简单的app. 默认读者有git基础。 默认读者有docker、docker-compose、私用镜像仓库 使用基础。教程中将用使用docker-compose来搭建本地环境,推送build好的本地镜像到镜像仓库,线上环境pull私有镜像部署。 默...阅读全文

简书 2021-01-23 16:33:23 Ningxi_

go基础(6)函数

[函数就是程序中的一个代码块,用来去处理一些任务一般程序肯定会有一个函数(就是main()函数)函数分为:自己写的函数和内置函数自己写的函数:结构:func function_name( [parameter list] ) [return_types] { 函数体}func :关键字,用来声明这是一个函数function_name:函数的名称[parameter list]:函数的参数列表[return_types]: 返回值类型函数体:函数体就是要执行的逻辑代码的合集说明:func 和 fu...阅读全文

简书 2021-01-23 16:32:56 茸茸布加拉提

微服务架构学习与思考(01):什么是微服务?微服务的优势和劣势

一、单体应用在软件开发早期阶段,大家都在一个应用系统上开发。各个业务模块之间耦合也比较紧密。软件发布也是整体发布,或者对软件进行打包发布和部署,比如java可以打包成war部署。测试也很容易,因为代码都在一起,基本不需要引用外部的关联服务。在软件开发早期,这种软件开发模式能适应业务的发展,软件应用也可以正常运行。如果你的业务发展良好,客户需求会变得越来越多,软件功能数也会随着客户的需求变多而变多。为了实现这些功能,你必须添加很多代码。而随着业务进一步发展,代码量势必也会越增越多。有可能 2 到 ...阅读全文

Segmentfault 2021-01-26 15:32:32 .container .car 等

别再问我们用什么画图的了!问就是excalidraw

每次发 https://github.com/tal-tech/go-zero 相关文章时,都会有读者问我们用什么画图的。这图什么工具画的呀?好看!这个手绘风格真好看,用啥工具画的呀?可不可以介绍下这个画图的工具?诸如此类的问题,所以我决定写篇短文介绍下我们最常用的画图工具 https://excalidraw.com/我们手绘风格的流程图、架构图等等都是通过 https://excalidraw.com/ 画的一个开源免费的画图软件个人目前看到的最舒服的画图软件支持多人协作一些经验分享要把图形...阅读全文

Segmentfault 2021-01-25 23:32:34 .container .car 等

[系列] Go - 基于 GORM 获取当前请求所执行的 SQL 信息

前言为了便于精准排查问题,需要将当前的请求信息与当前执行的 SQL 信息设置对应关系记录下来,记录的 SQL 信息包括:执行 SQL 的当前时间;执行 SQL 的文件地址和行号;执行 SQL 的花费时长;执行 SQL 的影响行数;执行的 SQL 语句;数据库组件使用的是 GORM。思路1、在执行 SQL 前,设置开始执行时间(计算执行时长会用到);2、在执行 SQL 后,第一,获取当前请求的上下文,为什么获取上下文,因为需要从上下文中获取本次请求信息,第二,获取 SQL 执行前的时间,用来计算执...阅读全文

51CTO博客 2021-01-23 10:03:24 mb6008e9b926b5d

Goland IDE 安装终解

前期准备本打算使用 VSCode 进行 go 开发、学习的但部分 go 插件在外网就算翻墙了依然死活下载失败为了避免不必要的后期更新等麻烦老实使用 Goland 开发吧不秀了Goland是 golang 开发的 IDE由 JetBrains 公司开发Goland 是商业版30 天免费试用过期后需要 money本着白嫖真香定律在此之前务必下载安装好 golang 语言包在配置 GOROOT 环境变量时用到下载地址:go 镜像go 镜像以下以 mac OS 为例安装 Goland IDE下载 Gol...阅读全文

Segmentfault 2021-01-25 23:32:33 .container .car 等

k8s-client-go源码剖析(二)

简介:云原生社区活动---Kubernetes源码剖析第一期第二周本周是K8S源码研习社第一期第二周,学习内容是学习Informer机制,本文以这个课题进行展开。本周研习社社长挺忙的,将本次课程推迟到下一周结束,任何事情都是这样,计划总有可能会被其他事情打破,但最终只要能够回归到对应的主线上,就不是什么问题。就像参与开源一样,最开始的开放源代码只是开始,需要的是能够坚持下去,而这一点往往是很重要的。好了,开始正文。本文主题:Informer机制架构设计总览Reflector理解DeltaFIFO...阅读全文

Segmentfault 2021-01-25 19:32:33 .container .car 等

数据结构-线性表之栈和队列(Golang)

花了两天时间把栈和队列的基础知识过了一遍,使用Golang改写了栈和队列的基本操作。 栈 PART01栈的定义 栈(stack):只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。栈顶(top):线性表允许进行插入和删除的那一端。栈底(Bottom):固定的,不允许进行元素的插入和删除操作。空栈:不含任何元素的空表。 PART02栈的基本操作 PART03栈的顺序存储结构 1.顺序栈的实现栈的顺序存储称为顺序栈,它是利用一组地址连续的存储...阅读全文

51CTO博客 2021-01-22 14:17:26 mb5fe190725e8a3

数据结构-树和二叉树(Golang)

这几天将树与二叉树知识梳理了一遍,这部分内容细小知识点非常非常多,时间有限诸如线索二叉树的内容等暂时就不总结了,但这些知识点是要好好学的。 知识框架 01 树的基本概念 【树的定义】树是N(N>=0)各节点的有限集合,当N=0时,我们称其为空树。在任意一棵非空树中应满足: 有且仅有一个特定的称为根的结点。 当N>1时,其余的结点又可分为互不相交的有限集合,其中每个集合又是一棵树,我们称其为根结点的子树。 树的根结点没有前驱结点,除了根结点外所有的结点有且只有一个前驱结点。 树中所有结点可以有零个...阅读全文

51CTO博客 2021-01-22 14:10:55 mb5fe190725e8a3

数据结构-图(上)-golang

继续我们的总结回顾,图的算法难度较大,理论知识也非常多,倘若是考研党的话,应掌握图的基本概念及相关性质等。我本人翻看了下教材,考虑到文字信息实在太多,所以我打算以模拟大纲形式跟大家梳理下内容,细化知识点就需要大家自行掌握记忆了。知识框架图的基本概念1图的定义01 - 有向图02 - 无向图03 - 简单图04 - 多重图05 - 完全图06 - 子图07 - 连通、连通图和连通分量08 - 强连通图、强连通分量09 - 生成图、生成森林10 - 顶点的图、入度和出度11 - 边的权和网12 - ...阅读全文

51CTO博客 2021-01-22 12:57:23 mb5fe190725e8a3

数据结构-图(下)-golang

之前总结了图的上篇大部分是基本概念,今天把图的应用有关算法设计问题总结一下。1最小生成树问题 一个连通图的生成树包含图的所有顶点,并且只含尽可能少的边。对于生成树来说,若砍去它的一条边,则会使生成树变成非连通图;若给它增加一条边,则会形成图中的一条回路。 对于一个带权连通无向图G= (V, E),生成树不同,每棵树的权(即树中所有边上的权值之和也可能不同)。设R为G的所有生成树的集合,若T为R中边的权值之和最小的那棵生成树,则T称为G的最小生成树(Minimum-Spanning-Tree, M...阅读全文

51CTO博客 2021-01-22 12:04:27 mb5fe190725e8a3