Jaeger源码分析——窥视分布式系统实现

原文地址:Jaeger源码分析——窥视分布式系统实现 前言 分析Jaeger源码主要有以下原因: 公司正在使用Jaeger,通过了解其源码,可以更好的把控这套系统。 了解分布式系统的设计 提升对golang的理解 提升个人英语 分析的版本为最新版本0.10.0,时间2017-11-23 Agent ——3部曲  agnet处于jaeger-client和collector之间,属于代理的作用,主要是把client发送过来的数据从thrift转为Batch,并通过RPC批量提交到collector...阅读全文

2017-11-23 01:04:44 小卜邪
阅读:1174 评论:0

k8s与CICD--一个完整的drone demo

前言 在上一篇文章中,我们只是简单介绍了一下drone的部署。接下来会逐步深入介绍,后期也会翻译一些官方的文档以及我在实际工作中用到的插件的介绍。这篇文章,主要是一个完整的drone demo。pipeline中,包括了git clone 拉取代码,go build 构建,生成docker镜像并推送到harbor,notify 通知。关于通知这块,官方提供的插件都是一些西方喜欢用的即时通讯或是协作工具,比如telegram,slack,line等。所以在后期,我计划写一个微信或是钉钉的插件。 ....阅读全文

2017-11-27 12:04:42 iyacontrol
阅读:7348 评论:0

RETE算法的描述(原创)

通过一周左右的研究,对规则引擎有了一定的了解。现在写点东西跟大家一起交流,本文主要针对RETE算法进行描述。我的文笔不太好,如果有什么没讲明白的或是说错的地方,请给我留言。 首先申明,我的帖子借鉴了网上很流行的一篇帖子,好像是来自CSDN;还有一点,我不想做太多的名词解释,因为我也不是个研究很深的人,定义的不好怕被笑话。 好现在我们开始。 首先介绍一些网上对于规则引擎比较好的帖子。 1、 来自JAVA视频网 http://forum.javaeye.com/viewtopic.php?t=780...阅读全文

阅读:4102 评论:0

6 款最棒的 Go 语言 Web 框架简介

![](https://raw.githubusercontent.com/studygolang/gctt-images/master/top-6-web-frameworks-for-go-as-of-2017/twitter_status.jpg) https://twitter.com/ThePracticalDev/status/930878898245722112 如果你只是想写一个自己用的小网站,或许你不需要框架,但如果你是要开发一个投入生产运营的网站,那么你肯定会需...阅读全文

2017-12-09 11:34:14 polaris
阅读:139588 评论:26

可视化 Go 语言中的并发

本文作者提供了在 2016 的 GopherCon 上的关于 Go 并发可视化的[主题演讲视频](https://www.youtube.com/watch?v=KyuFeiG3Y60)。 Go 语言一个鲜明的优点就是内置的基于 [CSP](https://en.wikipedia.org/wiki/Communicating_sequential_processes) 的并发实现。Go 可以说是一个为了并发而设计的语言,允许我们使用它构建复杂的并发流水线。但是开发者是否在脑海中想象过不同...阅读全文

2017-12-10 20:32:51 polaris
阅读:7413 评论:6

从零开始一步步构建运行在 Kubernetes 上的服务

如果你用 Go 写过程序,就会发现用 Go 来写服务是很简单的事。比如说,只要几行代码就可以跑起来一个 HTTP 服务。但是如果我们想让服务在生产环境运行,我们还需要添加什么呢?本文将通过写一个能在 Kubernetes 上运行的服务的例子,来讨论上述问题。 文中所有的例子可以在 [这里(按标签分类)](https://github.com/rumyantseva/advent-2017/tree/all-steps) ,或者 [这里(按 commit 分类)](https://githu...阅读全文

2018-01-11 15:41:37 polaris
阅读:2901 评论:0

优雅的处理错误,而不仅仅只是检查错误

这篇文章摘取至我在日本东京举办的 [GoCon spring conference](https://gocon.connpass.com/event/27521/) 上的演讲稿。 ![](https://raw.githubusercontent.com/studygolang/gctt-images/master/error-handle/ba5a9ada.png) ## 错误只是一些值 我花了很多时间来思考如何在 Go 中处理错误是最好的。我真希望能有一种简单直接的方式来...阅读全文

阅读:4606 评论:0

Go 语言 Malloc 的惯用语法

我终于又开始使用 Go 语言编程了。虽然我在前两年多的时间里积极参与这个项目,但从 2012 年起,我就基本没有参加过这个项目。最初,我之所以做出贡献,是因为我是贝尔实验室 [Plan 9](http://9p.io/plan9/)(操作系统) 和 [FreeBSD](https://www.freebsd.org/) 的粉丝。我喜欢可用的、基于 csp 的语言,但是 Go 最初的版本只能在 Linux 和 OS X 上运行。那时候我只有 FreeBSD 系统,因此,我将编译器工具链、运行时和标...阅读全文

2018-03-03 20:25:10 polaris
阅读:3764 评论:0

k8s与caas--容器云caas平台的落地实践

前言 在移动互联网时代,新的技术需要新技术支持环境、新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化。容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施。缩短应用向云端交付的周期,降低运营门槛。加速向互联网技术和业务的双转型。容器云将对接各类代码托管库,实现自动化持续集成和DOCKER镜像构建,为新一代应用交付和开发运维一体化奠定了基础。容器云将支持应用的一键式部署交付,提供负载均衡,私有域名绑定,性能监控等应用生命周期管理服务。是微服务架构...阅读全文

2018-03-20 14:34:41 iyacontrol
阅读:3002 评论:0

简单好用的微信支付SDK for Go

# wechatpay 微信支付SDK for Go!包括微信商户支付的全部功能!集成简单! 直接上链接:[微信支付SDK for Go](https://github.com/liyoung1992/wechatpay) ## 安装 `go get -u github.com/liyoung1992/wechatpay` ## 帮助 如果在集成过程中遇到问题,请联系:liyoung_1992@163.com ## 目前实现的接口 - 扫码支付(NATIV...阅读全文

2018-06-08 16:31:53 liyoung1992
阅读:5770 评论:0

Golang: 详解container/heap

golang的container包中提供了heap容器,这个容器可以用来做什么,又是怎么做到的呢?本文从golang 1.9.3的源码出发,说明了堆、heap包、heap包的用途、heap包的实现。 1 heap是什么 首先先来解释一下堆(Heap)是什么。 据维基百科 堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性...阅读全文

阅读:9048 评论:0

蚂蚁金服分布式中间件开源第三弹: 下一代微服务SOFAMesh

小蚂蚁说:4月,蚂蚁金服自主研发的分布式中间件(Scalable Open Financial Architecture,以下简称 SOFA )启动开源计划,并开放多个组件,(相关背景请点击链接阅读《开源 |蚂蚁金服启动分布式中间件开源计划,用于快速构建金融级云原生架构》、《开源 | 蚂蚁金服分布式中间件开源第二弹:丰富微服务架构体系》),这一系列的动作受到大家的关注和支持,SOFA社区也日益壮大。在两轮开源之后,蚂蚁金服自主研发的分布式中间件(Scalable Open Financial A...阅读全文

2018.07.17 14:10 阿里云云栖社区
阅读:2807 评论:0

使用 Go 在 WASM 中进行图像处理的实验

Go 的主分支最近完成了一个 WebAssembly 的工作原型实现。作为 WASM 的爱好者,我自然要把玩一下。 这篇文章,我要记下周末我用 Go 做的处理图像实验的想法。这个演示只是从浏览器中获取图像输入,然后应用各种图像变换,如亮度,对比度,色调,饱和度等,最后将其转储回浏览器。这测试了两件事 - 简单的CPU绑定执行,这是图像转换应该做的事情,以及在 JS 和 Go 之间传递数据。 ## 回调 应该明确如何在 JS 和 Go 之间进行调用,不是我们在 emscripte...阅读全文

2018-07-22 21:24:13 themoonbear
阅读:2477 评论:0

人人都应学习的公链知识——比原总体架构

【揭秘区块链技术从入门到精通】比原链整体设计&架构解读视频链接: 优酷视频:https://v.youku.com/v_show/id_XMzcxNjc1NjQwMA==.html 腾讯视频:https://v.qq.com/x/page/l0718b48kp4.html Bilibili:https://www.bilibili.com/video/av26608101 本文将会给大家介绍一下比原链总体的技术架构。如下图所示:比原链分为三个层次 第一层就是大家接触比较多的钱包层,就是进行收款和...阅读全文

2018-07-23 22:34:47 比原链Bytom
阅读:2825 评论:0

理解go中interface关键点

理解go中interface关键点 interface是golang中的精华所在,本文主要理解interface中的几个关键点。 interface即是method的集合,也是一种类型 interface存在的基本作用就是其定义了一组方法。 我们之所以又说interface是一种类型,可以从三点来理解:首先从其定义形式中的type关键字就可以看出来。另外,函数的形参可以为interface型;最后,interface支撑了go中的多态性,也就是其他类型如果实现了interface中的所有方法,就...阅读全文

2018.07.23 22:22* freelang
阅读:1300 评论:0

为什么 Goroutine 能有上百万个,Java 线程却只能有上千个?

为什么 Goroutine 能有上百万个,Java 线程却只能有上千个? 很多有过 JVM 相关语言工作经验的程序员或许都遇到过如下问题: [图片上传失败...(image-d56f9b-1532356059594)] 额,超出 thread 限制导致内存溢出。在作者的笔记本的 linux 上运行,这种情况一般发生在创建了 11500 个左右的 thread 时候。 但如果你用 Go 语言来做类似的尝试,每创建一个 Goroutine ,并让它永久的 Sleep ,你会得到一个完全不同的结果。在...阅读全文

2018.07.23 22:17* freelang
阅读:2656 评论:2

Gopher面试中的Coding

从四月份下半月开始,陆陆续续面试了几家公司,都是golang的岗位。每一次面试,侧重点都会有不同,有的会直接给过来一道试题, 然后边解题,边讲述自己的思路,然后面试官根据你的思路和你交流沟通;有的呢,让讲述自己最近做过的项目,遇到的难点, 自己怎么解决的问题思路,而无独有偶的呢,这样的面试中,都要需要展示编码能力。这篇文章就把自己最近面试中遇到的每一个编程问题, 分三步阐述出来:问题描述,解题思路,实际编程。 1 交替打印数字和字母 1.1 问题描述 使用两个 goroutine 交替打印序列,...阅读全文

阅读:2022 评论:6

理解 golang 中的 context(上下文) 包

![](https://raw.githubusercontent.com/studygolang/gctt-images/master/understanding-the-context-package-in-golang/0_exTPQ4ppfrdjuXcR.jpg) Go 中的 context 包在与 API 和慢处理交互时可以派上用场,特别是在生产级的 Web 服务中。在这些场景中,您可能想要通知所有的 goroutine 停止运行并返回。这是一个基本教程,介绍如何在项目中使用它以...阅读全文

2018-07-29 00:20:23 themoonbear
阅读:38090 评论:3

HD钱包学习小结

在比特币/以太坊等公链上都会用到钱包。钱包主要用来管理用户的私钥,及用户在链上的数字货币,即用私钥对交易进行签名。私钥可用于生成特定消息的签名,此签名可以在不泄露私钥的情况下使用公钥进行验证。 因为私钥极其重要,一旦泄漏就意味着数字资产的所有权就掌握在别人手里。理论上私钥可以是任意的一串随机数字串,不仅难以记忆也没有规律可循,有必要利用一些密码学方法来管理秘钥对(一个秘钥对包括一个私钥和对应的公钥),既方便管理又足够安全。 1. 非确定性钱包 如果只是完全随机生成一个数字串作为私钥,可以使用密码...阅读全文

2018.07.29 10:41 shi_qinfeng
阅读:5973 评论:0

GitLab+Docker快速搭建CI/CD自动化部署

一、准备工作 二、环境配置 三、提交更新并自动部署到服务器,测试地址:http://182.61.57.121:8000 一、准备工作 gitlab环境(为了方便,使用官方的托管仓库) 装有docker和gitlab-runner环境的云服务器(这里用到CentOS 7 64位) 项目代码,这里我使用Golang作为开发语言,其它开发语言也一样的操作流程 代码.png Dockerfile文件 FROM golang:latest MAINTAINER Razil "412657308@qq.c...阅读全文

2018.07.29 12:33 KunZhen
阅读:2745 评论:0