1.什么是gRPCgRPC由谷歌开发的,是一种语言中立、平台中立、开源的远程调用过程。什么是远程调用过程?简单理解就是公开本地应用给其他应用程序调用的方法。gRPC是一项进程间通信技术,可以用来连接、调用、操作和调式分布式异构应用程序。也像RPC应用程序的特点一样:像调用本地函数一样。2.特点gRP
在接触Go这么语言,可能你经常会听到这样一句话。对于字符串不能修改,可能你很纳闷,日常开发中我们对字符串进行修改也是很正常的,为什么又说Go中的字符串不能进行修改呢?本文就来通过实际案例给大家演示,为什么Go中的字符串不能进行修改。在演示这个问题之前,我们先对字符串类型的基础知识做个大致的演示,这样
大家好,我是煎鱼。Go1.20已经发布了rc1,大家都关注了一些大头的功能特性,例如:PGO、Arean等,都没有那么的常接触到。实质上本次新版本还修复了在全局变量初始化方面的顺序,来自《cmd/compile:globalvariableinitializationdoneinunexpected
1.介绍在Go语言中,切片类型比较常用,将新元素追加到切片也比较常见,因此Go语言提供一个内置函数 append,该函数可以非常方便实现此功能。虽然Go语言内置函数 append 使用非常方便,但是使用不当会不小心掉入一些“坑”。本文我们介绍一下Go语言为什么建议&n
Golang,或简称“Go”,是一种较新的编程语言,最初于2012年发布。追溯到谷歌,许多人认为它是谷歌的内部语言。曾经考虑过作为新程序员学习Golang吗?也许您是现有的开发人员,并希望将其添加到您丰富的技能中。我们将仔细研究Go,以便您做出最明智的决定。Golang的显著特点如果说有什么东西值得
事件回顾 上周,谷歌Go语言项目负责人SteveFrancia宣布辞去职务,而他给出理由是:Go项目的工作停滞不前,让他感到难受。有意思的是,部分国内的Gopher(Go语言爱好者的自称)对Go语言也产生了新想法。比如,国内第一批Go语言爱好者之一的柴树杉、全球Go贡献者榜上长期排名TO
大家好,我是煎鱼。感觉时间过得很快,Go1.18发布没太久,泛型还在风风火火,看了看上次的投票结果,绝大部分同学还没有在生产环境应用泛型。这不,Go1.19Beta1已经正式发布了。今天就由煎鱼和大家围观《Go1.19ReleaseNotes[1]》中一些有意思的特性。内存模型Go的内存模型已被修订
在并发编程中,为了避免多线程同时读写共享资源,我们需要互斥。Go标准库提供了互斥锁sync.Mutex,通过加锁Lock()方法和解锁Unlock()方法达到对共享资源的并发控制。在之前的设计中,当锁被占有,其他goroutine尝试获取锁时会被阻塞。这种方式当然是合理的,但是在某些情况下,或许我们
大家好,我是程序员幽鬼。随着Go1.18发布,泛型已经到来。一组新的排序函数也已经进入Go[1]的golang.org/x/exp/slices[2]包。这些函数利用Go泛型提供更符合人体工程学的排序API(无需用户实现sort.Interface[3]),并且还提供了不错的性能改进,如上面CL所示
事件起因是AWS前几天发布的一篇博客:《SustainabilitywithRust》。在这篇文章里,AWS举例的时候将Rust和Go进行了对比。文章提到了早期Discord的一项关键Go服务存在问题,原本这是一个非常简单的服务,但它的尾部延迟(TailLatency)非常慢。AWS认为原因在于Go
一、介绍Gokit是Go包的集合,可帮助您构建健壮、可靠、可维护的微服务。它最初被设想为一个工具包,以帮助大型(所谓的现代企业)组织采用Go作为实现语言。但它很快就"向下增长",现在也为较小的初创公司和组织提供服务。Gokit服务分为三层:Transportlayer传输层Endpointlayer
背景软件应用程序的快速增长已经不再只是一件其本身受欢迎的事情了,它更是带来了深刻改善所有行业业务流程的真正机会。所以,对于企业、行业来说,通过合适的编程创建出出色的软件解决方案成为了竞争的关键。下面,我们来对比一下近年来比较出名的两种编程语言——Go和Ruby。GO介绍Go是一个开源的编程语言,它能
本文转载自微信公众号「GoLang全栈」,作者小锟哥哥。转载本文请联系GoLang全栈公众号。Go语言是没有enum这个枚举关键字的。那Go语言里面又是怎么处理枚举这个问题的呢?我们这篇文章讲解下!需要枚举的场景我们在处理人的姓名的时候,一般都是男或者女,或者最大再加一个未知,不会有其他类型吧。像上
一背景1优雅上下线在分布式场景下,微服务进程都是以容器的形式存在,在容器调度系统例如k8s的支持下运行,容器组Pod是K8S的最小资源单位。随着服务的迭代和更新,当新版本上线后,需要针对线上正在运行的服务进行替换,从而发布新版本。在稳定生产的过程中,容器调度完全由k8s管控,微服务治理由服务框架或者
先说两句我常常在散步时思考很多技术上的「为什么问题」,有时一个问题会想很久,直到问题的每一个点都能说服自己时,才算完结。于是想把这些思考记录下来,形成文章,可以当做一个新的系列。这些文章中你可能看不到代码,但能窥探到一些容易被忽视的问题,以及问题更深层次的「为什么」。今天带来第1篇,Dubbo为什么
很多开发者都非常想学Go(谷歌创建针对大型系统的编程语言),此外最新调查还发现大多数开发者都厌倦了会议,而且在跨国公司工作的开发者通常都不快乐。根据HackerEarth公司对来自76个国家超过16,655名开发者进行的调查结果显示,在最想了解的编程语言中Go名列前茅。调查发现,32%的
我最近决定在一个新项目中使用GoLang来实现一组增删改查的API。在此之前,我较为熟悉Java,Groovy,了解一些Python。我大部分的经验都是使用Java或者Groovy加上SpringBoot。这让我感到有些无聊,所以为什么不来学点儿东西找找乐子呢?要求以下是一些要求。设计并实现领域数据
本文基于Go1.13。在某些垃圾回收器算法中,“停止世界”(StoptheWorld:STW,下同)是跟踪内存使用最重要的阶段,它会停止程序的执行,以扫描内存使用,并添加写障碍。让我们回顾一下它在内部如何工作,以及它可能面临的潜在问题。停止世界(Stoptheworld)停止程序意味着停
在这个竞争越来越烈的社会,掌握一门新语言或新技能,意味着你能比别人多一个机会。但万事开头难,学习新东西亦如此。如果开发员想学一门新的编程语言,该选择什么呢? Go语言学起来简单得令人惊讶当我第一次开始学习Go语言时,我正着手开发一个个人项目,为此我不得不掌握新的语法(我总是在学
我是编译型编程语言的忠实粉丝,一直都是。虽然解释型编程语言可以让开发者更快地编写和测试代码,但我仍然认为编译器是值得长期投入的。在我看来,编译型代码有两个明显的优势:每次修改代码都可以得到验证,甚至是在开始运行代码之前。更快的执行速度。根据具体情况,代码可能被编译成非常底层的运行指令。我