下面一段代码,实现了最简单的 Web 服务器:// main.go package main import ( "fmt" "log" "net/http" ) // 处理主页请求 func index(w http.ResponseWriter, r *http.Request) { // 向客户端写入内容 fmt.Fprintf(w, "Hello World!") } fun
转载 2023-07-25 11:25:45
42阅读
    从接触 Golang 开始,断断续续已有差不多一年左右的时间了,都是业余自己学学看看,尚主要限于语法及语言特性,还没有用它写过实际的项目。    关于 Golang 的语法及语言特性,网上有很多资源可以学习。后面某个时间,我也许会写一篇粗浅的文章,来比较一下 Golang 和 C++、Delphi 甚至 C# 等语言语法方面的特性。  &n
转载 2024-03-23 10:41:28
26阅读
微服务架构里面,每个服务都会有很多节点,如果流量分配不均匀,会造成资源的浪费,甚至将一些机器压垮,这个时候就需要负载均衡,最简单的一种策略就是轮询,顺序依次选择不同的节点访问。
转载 2018-07-10 17:05:07
2867阅读
Golang中的gRPC负载均衡简介 在进行gRPC服务时,为了提高性能和可靠性,我们通常会使用负载均衡来均衡流量和请求在多个服务实例之间的分发。而在Golang中,我们可以利用第三方的负载均衡工具来实现这一功能。 以下是实现"golang grpc负载均衡"的步骤: | 步骤 | 描述 |
原创 2024-05-20 10:56:38
53阅读
官方目前建议使用的负载均衡包括以下几种:random(随机算法)localPref(本地优先算法)roundRobin(轮询算法)consistentHash(一致性hash算法)所以我们接下来分析以下以上四种负载均衡的源码是怎样的。随机算法我们先看一下SOFARPC的源码实现:@Override public ProviderInfo doSelect(SofaRequest invocatio
转载 2024-09-25 21:12:46
661阅读
1. GMP模型G:goroutineM:thread线程P:processor处理器在go中,线程是运行goroutine的实体,调度器的功能是把可运行的goroutine分配到工作线程上。   全局队列:存放等待运行的GP的本地队列:和全局队列类似,存放的也是等待运行的G,但是数量有限,不超过256个。新创建一个G时,G优先加入到本地队列,如果队列满了,则会把本地
Golang context  本文包含对context实现上的分析和使用方式,分析部分源码讲解比价多,可能会比较枯燥,读者可以直接跳过去阅读使用部分。ps: 作者本着开源分享的精神撰写本篇文章,如果出现任何误差务必留言指正,作者会在第一时间内修正,共同维护一个好的开源生态,谢谢!!!一、简介  作者所讲的context的包名称是: "golang.org/x/net/context" ,希望读者
文章目录前言一、什么是负载均衡,负载均衡的策略有哪些?0.负载均衡之前先设置一下动态端口python篇golang篇1.集中式load balance2.进程内load balance3.独立进程load balance二、常用负载均衡策略1.轮询(Round Robin)法2.随机法3.源地址哈希法4.加权轮询(Weight Round Robin)法5.加权随机(Weight Random)
转载 2024-05-16 07:01:29
160阅读
文章目录Gin是什么Gin代码解析路由(Router)中间件(Middleware)自定义一个全局中间件自定义一个局部中间件 Gin是什么Gin 是使用 Go/golang 语言实现的 HTTP Web 框架。接口简洁,性能极高。Gin 特性快速:路由不使用反射,基于Radix树,内存占用少。中间件:HTTP请求,可先经过一系列中间件处理,例如:Logger,Authorization,GZIP
转载 2023-12-28 15:26:08
101阅读
背景:    最近接手了前同事的一个项目,项目交接后前辈提交了一些积压在自己分支的代码,并做了一次线上发布。版本发布后用户反馈,数据统计分析模块时间怎么是 2006-01-02 ?针对用户的报障,我这边首先做了线上回滚,接着开始了排障之旅...排障思路:  2006-01-02 这个时间格式对于使用 Go 的同学是不陌生的,此处事出反常必有妖...1,查看项目代码, XXDate.For
1、真实服务器packagemainimport("fmt""log""net/http""os""os/signal""strconv""syscall""time")typerealServerstruct{Addrstring}func(rs*realServer)HelloHandler(whttp.ResponseWriter,r*http.Request){data:=fmt.Spri
原创 2020-06-26 13:08:10
1979阅读
前言XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。提示:以下是本篇文章正文内容,下面案例可供参考一、xxl-job-executor-go是什么?很多公司java与go开发共存,java中有xxl-job做为任务调度引擎,为此也出现了go执行器(客户端),使用起来比较简单:支持1.执行器注册 2.
Golang DNS解析我们平时都会使用func Dial(network, address string) (Conn, error)去创建一个连接,包括golang的httpclient也是调用这样一个函数去创建连接。这个方法里使用了net.Dialernet.Dialer type Dialer struct { Timeout time.Duration //连接超时
转载 2024-04-24 10:52:33
187阅读
Golang是一门很特殊的语言,虽然它出生比较晚,但是在很多地方却和现在的编程语言有所不同。现在的编程语言要么是函数式的、要么是面向对象的,而Go语言却有指针、结构体这些概念,并解决了C语言的一些坑。从这个角度上说,Golang可以看做C语言的填坑加强版。结构体简介Go 语言通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型。一个带属性的结构体试图表示一个现实世
转载 2024-02-03 16:43:31
29阅读
多层代理实现: 实现一个多层代理 一层代理 go run ichunt_micro_service/test/reverseProxy/one/oneAgent.go
原创 2022-05-13 10:40:52
919阅读
   一 Go语言发展史和使用场景1.1.1  Go语言发展历史Go 语言发展至今已经过去十年多了,是目前最流行的新兴语言,云计算领域的首选语言,而且目前随着区块链的流行,Go 再次成为了这个领域的第一语言,以太坊,IBM 的 fabric 等重量级的区块链项目都是基于 Go 开发的。  Go语言也叫做Golang,go语言的全
转载 2023-09-05 22:29:10
42阅读
开始微服务,那就先温习下golang语法吧;  golang变量类型1. 整形 Go %b 表示为二进制 %c 该值对应的unicode码值 %d 表示为十进制 %o 表示为八进制 %q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示 %x 表示为十六进制,使用a-f %X 表示为十六进制,使用A-F %U
转载 2023-07-23 18:18:45
38阅读
# Golang 语言架构初探 Golang,又称为Go语言,是一种由Google开发的开源编程语言。自2009年首次发布以来,它因其简洁、高效和强大的并发支持而受到大众的青睐。本文将带您了解Golang的基本架构,并通过代码示例展示其特性。 ## Golang 的基本架构 Golang架构设计上追求“简单即是美”,它的核心组件包括: 1. **编译器**:负责将Go代码编译为可执行的二
原创 2024-09-13 03:53:11
66阅读
# 如何在Golang中实现CS架构 在现代软件开发中,Client-Server(CS)架构是一种常见的设计模式。它将应用程序分为两部分:一部分运行在客户端,另一部分运行在服务器端。Golang是一种强大的编程语言,非常适合构建CS架构的应用程序。本文将帮助刚入行的小白了解在Golang中实现CS架构的过程和细节。 ## 一、项目流程 为了清晰地了解整个项目的实施步骤,下面是完成Golan
原创 2024-10-21 06:34:41
49阅读
什么是整洁架构?在《Clean Architecture: A Craftsman’s Guide to Software Structure and Design》一书中,著名作家 Robert “Uncle Bob” Martin 提出了一种具有一些重要特性的体系结构,如框架、数据库和接口的可测试性和独立性。整洁架构的约束条件是:独立的框架。该体系结构并不依赖于某些带有特性的软件库的存在。这允
  • 1
  • 2
  • 3
  • 4
  • 5