Go语言中文网 为您找到相关结果 226

on the go way (一)服务器并发

服务器并发的方式有很多种 1.通过多进程或者多线程的方式,现在这种模式基本上已经不用 2.epoll和IOCP回调的方式,不符合人们的习惯 3.使用协程(轻量级线程,创建、销毁的代价很小),协程在逻辑上上顺序执行 其中属于erlang和golang在协程并发方面做的比较好 package mainimport ( "fmt")func getResult(data []int, res chan int) { var sum int sum = 0 for _, v := range data { sum += v } res <- sum}func main() { var res = make(chan int) var data = []int{1, 2, 3, 4, 5, 6, 7,...阅读全文

博文 2016-03-22 11:00:06 OneDream

高可用Redis服务架构分析与搭建

c基于内存的Redis应该是目前各种Web开发业务中最为常用的Key-Value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较MySQL而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。 不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。 首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出...阅读全文

Golang 资料收集

自从接触Golang后,已经打算在全部场景使用Golang。 这里,整理下Golang 看过的比较不错的资料。 官方资料 go 文档英文版,无可替代,精炼,必读。 go 文档中文版,翻译问题比较多,tour也有不少bug。英文比较差的好过直接看英文版。 非官方资料 Go语言高级编程 并发模型比...阅读全文

博文 2018-12-29 00:34:43 luax

Go计算运行的时间

函数time.Since() 计算golang运行的时间是非常有用的性能衡量指标,特别是在并发基准测试中。下面将介绍如何简单地使用Go语言来计算程序运行的时间。 简单地使用Golang的time.Since()函数即可。下面有一个完整例子展示这个用法。 package main import ( "fmt" "time" ) func StartCac() { t1 := time.Now() // get current time //logic handlers for i := 0; i < 1000; i++ { fmt.Print("*") } elapsed := time.Since(t1) fmt.Println("App elapsed: ", elapsed) } fun...阅读全文

博文 2016-08-04 20:00:07 abcijkxyz

NoSQL笔记

#### 非关系数据库的相关问题 * 什么是最终一致性(Eventual Consistency)? "过程松,结果紧,最终结果必须保持一致性" 最终一致性模型是用于分布式系统中,用来实现高可用性,确保在如果一个更新操作发生,那么最终一定可以读取到这次更新操作的发生。最终一致性在分布式领域广泛使用,采用多个副本形式。如果一个系统实现了最终一致性,那么这个系统可以成为收敛的,或者叫做实现了副本收敛。相比与传统的ACID,最终一致性提供的是BASE(Basic Availablilty, Soft state, Eventual Consistency)服务。 最终一致性缺点:在系统达到副本收敛之前,系统有可能返回任何值。 * NoSQL是如何解决可伸缩性的挑战的...阅读全文

每日一得--go语言学习笔记

一,go语言的优劣 优点: 1,脚本话的语言,容易上手 2,静态类型+编译型,程序的运行速度有保障(相比较动态类型+解析型的语言高出很多) 3,原生的支持并发编程(降低成本+维护成本,程序可以更好的执行) 劣势: 1,语法没有python和ruby那么多 2,目前go的程序运行速度不及c(已经在一定程度上比java和c++快) 3,第三方库没有主流的开发语言...阅读全文

最近看了篇文章,有一部分内容是关于端口号数量限制的,感觉是作者理解错误了,有懂的帮忙解答一下

16位的端口号数量有限,如果每次后端交互都需要新建连接,理论上来说,同时请求后端Service的Goroutine数量无法超过65535这个硬性限制,在如今这个动辄“十万”“百万”高并发时代,最高6w并发貌似不太拿得出...阅读全文

大并发开启13000个协程post调用微信接口但是有将近1万个返回err:i/o timeout,怎么减少这种状况是访问微信大都成功

具体微信返回错误: Post https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=WbydbNY8e6B2UHhaI0EliHR-bPav66gwsr0Gwka0nggTnRRSwLHh_4TwaFuQLM6DCsi3pAxfl3TaR85fblxTVwSbQVuWS4l9AF3KJPZcjyNvdOX7XA9EBQqs8yCndAR_YJKbAEANYZ: dial tcp: lookup api.weixin.qq.com on 119.29.29.29:53: dial udp 119.29.29.29:53: i/o timeout post代码: c := &http....阅读全文

golang并发----context于任务取消

context与任务取消 根context:通过context.Background()创建 子context:context.WithCancel(parentContext)创建 ctx,cancel:=context.WithCancel(context.Background()) 当前context被取消时 基于他的子context都会被取消 接收取消通知 <-ctx.Done() func iscanceled(ctx context.Context) bool { select { case <-ctx.Done(): return true default: return false } } func dowork() { time.Sleep(time.Second) } f...阅读全文

博文 2019-12-07 06:32:43

分步式文件存储系统技术及实现

课程介绍 本课程针对分步式文件存储系统的实现进行讲解,首先分析为什么要使用这种分步式存储系统,以及这种系统在设计时需要注意的问题,并比较现在市面常见的分步式存储系统(HDFS、Ceph等),展示阿里Pangu系统针对其中问题的解决方法,并结合Pangu系统说明分步式存储系统的设计要点。 讲师介绍 姚文辉,2009年加入阿里巴巴,从事阿里巴巴自主研发的云计算平台—飞天分布式操作系统中的分布式存储系统—盘古。 课程目标 • 学习分步式文件存储系统的实现 适合人群 • 云计算开发者 课时列表 • 课时1:分布式存储客观需求 • 课时2:小概率事件对分布式系统的挑战 • 课时3:常见分布式系统-终版 • 课时4:分布式设计要...阅读全文

让运维更高效:关于ECS系统事件

**摘要**: 阿里云会针对ECS实例发布系统事件,当您收到阿里云计划维护的通知时,可以利用ECS系统计划事件了解与实例相关的计划维护操作,并根据您的业务特性选择合适的时间安排运维操作进行故障转移,减少对系统可靠性和业务连续性的影响。 阿里云作为领先和值得信赖的云计算服务提供商,提供和保障计算、存储、网络资源以及底层基础设施的可用性、稳定性、安全性。根据自身战略发展和业务需求,您可以设计高可用的云上IT架构,在阿里云上选择合适的产品、服务来搭建部署业务系统,并管理其中的数据。在此基础上,通过阿里云提供的API、监控、编排等多样化手段实现快速配置资源,搭建多套环境,自动化部署等IT运维能力。 相较于普通的IDC机房以及服务器厂商,阿里云会使用更严格的IDC标准、服务器准...阅读全文

go并发

package main import "fmt" import "runtime" //go并发程序 func say(s string) { for i := 0; i < 5; i++ { runtime.Gosched() //系统让出时间片 fmt.Println(s) } } func main() { go say("world") //开启一个新的goroutine执行程序 say("hello") } //利用channl通信 package main import "fmt" func sum(a []int, c chan int) { sum := 0 for _, v := range a { sum += v } c <- sum } func main() { ...阅读全文

博文 2016-05-25 12:00:01 u010165367

d-FTP:基于NKN的高速文件传输应用

NKN客户端支持免费且以去中心化方式进行的端到端数据传输。在NKN之前,如果发送方(例如移动应用程序)想要将某些数据发送到接收方,则接收方需要可被公网访问的地址和端口,这对于一般的个人应用是不切实际的, 又或者需要发送和接收双方必须同时连接到同一个集中式服务器/平台(比如微信),这样也会引入额外的成本(比如构建集中化服务器及支付数据转发费用)和潜在的安全漏洞(比如用户数据暴露给了中心化服务器或第三方服务, 又或者集中化服务器的故障将导致整个系统瘫痪)。但现在使用NKN数据传输服务,得益于NKN公共区块链网络平台, 发送方和接收方可以在任何网络条件下保持数据的私密性,并且不需要集中式服务器或平台。数据将以去中心化的方式进行路由和传递,端到端加密且免费。NKN客户端使用非常相对简单的协议(类似于...阅读全文

博文 2019-10-04 10:32:46 aside section ._1OhGeD

高可用Redis服务架构分析与搭建

基于内存的Redis应该是目前各种Web开发业务中最为常用的Key-Value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较MySQL而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。 不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。 首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现...阅读全文

数据库工程师的职责是什么?有哪些发展方向?

数据库开发工程师 1.负责公司业务数据库系统的模型设计,表结构设计 2.负责数据处理中的语句实现,存储过程逻辑实现 3.负责指导开发人员对语句的性能优化和指导 数据库管理员(DBA) 1.负责公司业务数据库系统的部署实现 2.负责数据库系统的高可用性,备份恢复,性能调忧,监控等实现 数据库架构师 1.统筹公司业务数据库系统各个层面的技术实现 2.指导数据库开发工程师和管理员在各个环节的工作,提供更优的方案 数据俨然已经成为所有企业的重要资产,互联网企业更是将数据作为自己的生命线。一个优秀的数据库工程师通常掌握着企业的核心价值,保障数据服务持续正常运转,所以在公司地位相对比较高。责任越大,地位越高,薪资越高。 高速社会要求高速的系统,现在的系统性能瓶颈已经不是传统的硬件瓶颈,而是后台程序和数据...阅读全文

3 台机器如何搞定一个 Redis 高可用架构

基于内存的 Redis 应该是目前各种 Web 开发业务中最为常用的 key-value 数据库了。我们经常在业务中用其存储用户登陆态(Session 存储),加速一些热数据的查询(相比较 MySQL 而言,速度有数量级的提升),做简单的消息队列(LPUSH 和 BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将 Redis 存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近在我的项目中自己搭了一套小型的“高可用”Redis 服务,在此做一下自己的总结和思考。首先我们要定义一下对于 Redis 服务来说怎样才...阅读全文

博文 2019-01-11 21:34:42 Java高级架构师之路

Docker 容器编排实践练习

在本次练习中,你将体验到 Docker 的容器编排功能。首先你需要在单个主机上部署一个简单的应用程序,并了解其工作机制。然后,通过配置 Docker Swarm 模式,你将学习到怎样在多个主机上部署相同的简单应用程序。最后,你将看到如何对应用的规模进行扩容、缩容,以及如何将工作负载在不同的主机之间转移。 (译者注:登录原网站可使用在线练习资源) > **难度**:入门级 > **时间**:约 30 分钟 **任务**: - [第一节 - 容器编排是什么](# 第一节:容器编排是什么 ) - [第二节 - 配置 Docker Swarm 模式](# 第二节:配置 -Docker-Swarm- 模式 ) - [第三节 - 跨多主机部署应用](# 第三节:跨多主机部署应用 ) - [第四节 - 应...阅读全文

Go语言初尝

对于语言设计之争, 唯一需要牢记的一句话是: 如果把 C 变成 C++, 那么 C 就消失了。 Go 是一个轻量级的简洁的支持并发的语言, 可以用于探索性个人项目, 这是我想学这门语言的主要原因。 对于有一定编程经验的人来说, 学习一种新语言的方式是, 先概览下语言特性, 然后编写一个中等规模的程序, 尽可能地运用到大部分重要特性。 下面的程序用于计算一个目录下所有文件或目录的大小。 package main import ( "fmt" "time" "os" "log" ) type ShortFileInfo struct { fileName string size int64 } func (fileInfo *ShortFileInfo) Desc() string { retu...阅读全文

博文 2015-06-17 23:01:40 shuqin1984

关于Go

今天听了CSDN举办的go编程的培训,对go又有了更多的喜爱。。 虽然对go仍旧算不上什么理解,但是觉得很好玩。。 哈哈,总是很喜欢用很好玩来形容自己比较喜欢的东西,可能是脑袋中的词语太过于贫乏啦。。 go是一门为并发而生的语言,能够从语言的基础上去实现并发,感觉很厉害,也很喜欢go的简洁。。但是工作中用不到啊啊啊啊啊。。在墙角去画圈圈去。。。 现在依旧挣扎于 PHP的各种问题之中,说实话 ,php还是不够强啊,虽然c++也要好好去写了,但是还是毅然决定,先把php搞定了,可以自由而且自如的使用php了之后在去好好研究自己喜欢的语言,比如go啊,javascript啊之类的。。 总要有一门能拿得出手的技能啊,哈哈哈。。 最近准备看Advanced PHP XXX的东西,以后就经常贴心得吧。...阅读全文

博文 2016-04-28 13:00:01 Dornez

高可用 Redis 服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常...阅读全文

博文 2018-11-29 00:34:46 java成功之路

一起了解什么是高并发

我们在找工作时,经常在招聘信息上看到有这么一条:有构建大型互联网服务及高并发等经验,想到高并发,我们第一想到了媒体上经常出现的新闻阿里双11每秒处理xx万订单,瞬间觉得高并发是一种很屌的技术,很高大上,如果像笔者这种没做过大型服务的普通程序员,在此根据网上的资料,对高并发写一下我个人的看法 高并发的概念 这里我引用一段架构师之路公众号究竟啥才是互联网架构高并发中的一段话来描述: 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求 那么很多请求,具体达到多少请求才算是高并发系统呢?这个也没有明确数量上的定义,根据网上很多大型互联网公司的相关高并发博客,一般PV在千万级别以上的公司才会涉及到这个概念,所以...阅读全文

博文 2017-09-06 11:35:14 tomorrowwu

值传参和指针传参优劣与选择

值传参: 优点:代码可读性更好,代码出错概率低,管理维护成本低 缺点:需要拷贝参数动作,耗费一定时间和空间,性能低 指针传参: 优点:不需要拷贝参数动作,节省空间,性能更高 缺点:代码可读性更差,代码出错概率更高,管理维护成本高 个人认为:在没有较好的性能优化收益情况下,选择值传参是更好的选择,对于一个项目工程来说可读性、管理维护成本、代码出错概率相对来讲更重...阅读全文

Go开发之路(目录)

Go开发之路(目录) 知识点 1. Go语言简介 2. Go语言基本语法 3. Go语言流程控制 4. Go语言函数 5. Go语言容器 6. Go语言结构体 7. Go语言接口 8. Go语言反射 9. Go语言并发 开始项目 day10 day11 day12 day13 day14 day15 day16 day17 作业 1. Go语言简介 2. Go语言基本语法 3. Go语言流程控制 4. Go语言函数 5. Go语言容器 6. Go语言结构体 7. Go语言接口 8. Go语言反射 9. Go语言并发 day10 day11 day12 day13 day14 day15 day16 day17 posted @ 2019-03-24 18:55 Conan_1996 阅读(....阅读全文

博文 2019-03-25 17:32:40 qq_33555334

go语言学习

1、go的产生 go语言是谷歌公司开发的第二款语言,谷歌工程师感觉使用过去的开发语言在进行软件开发时,效率低,感觉痛苦,所以就开发了此语言 go语言是为了专门针对多处理器系统应用程序的编程而产生的,性能可以和c/c++媲美,开发效率跟高,使得多处理器系统的编程更加容易,快捷。使用go语言在进行多核处理器软件开发时,go语言对其进行了优化。具有编译快,效率高,性能好等优点。 2、go语言学习简介 在学习go语言时,我们可以选用intellij idea工具来使用go语言编程,此工具安装插件就可以把go语言的语法进行高亮显示 在学习go语言的过程中,go语言给我的第一感觉就是:简介,编程感觉很爽,在我看来,一门编程语言首先它是一门语言,语言追求的就是简洁,就像学习一门语言一样只要能吧一个问题说明...阅读全文

博文 2015-12-22 05:00:00 harry1986601

搭建高可用的Redis服务,需要注意这些方面!

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近在项目中也搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常的情况下,依然...阅读全文

博文 2018-07-25 17:35:08 Java填坑之路

Golang 并发控制

Wait wg :=syncWaitGroup{} wag.Add(3) go func(){ defer wg.Done() //do... }() go func(){ defer wg.Done() //do... }() go func(){ defer wg.Done() //do... }() wg.Wait() Cancel import "context" func Proc(ctx context.Context) { for { select { case <-ctx.Done(): return default: //do ... } } } func Execute() { ctx := context.Background() ctx, cancel := cont...阅读全文

博文 2019-05-31 17:34:41 轻隐

Go append并发问题

Golang append并发问题 package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup s := make([]int, 0, 1000) for i := 0; i < 1000; i++ { v := i wg.Add(1) go func() { s = append(s, v) wg.Done() }() } wg.Wait() fmt.Printf("%v\n", len(s)) } 结果 第一次:928 第二次:945 第三次:986 …… 多运行几次你就会发现,slice长度并不是1000,而是不停的在变,为什么呢? 因为append并不是并发安全的。 我们举一个简单例子,比如,当A和...阅读全文

博文 2017-03-07 01:41:40 ztime1

高可用Redis服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。 不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。 首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现...阅读全文

博文 2019-04-15 22:34:43 java架构进阶

为什么学习go语言编程?

1. 从python开发角度看go语言 (1)部署简单:Go 编译生成的是一个静态可执行文件,除了 glibc 外没有其他外部依赖。完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担。 (2)并发性好。Goroutine 和 channel 使得编写高并发的服务端软件变得相当容易,很多情况下完全不需要考虑锁机制以及由此带来的各种问题。 (3)良好的语言设计。Go 的设计是非常优秀的:规范足够简单灵活。 (4)执行效率高。虽然不如 C 但是已经超过C++和java,和解释型语言相比,更是相差一个数量级,比如python,ruby。 备注: 编译型语言:在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。 解释型语言:是在运行的...阅读全文

博文 2016-08-30 00:00:04 qq_17416741

高可用Redis服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常...阅读全文

博文 2019-01-04 18:34:45 JAVA高级架构开发

golang并发----安全的关闭通道

在接收方从通道内拿到所有数据后发送一个done来通知发送方关闭channel func worker(msg chan string, done chan bool) { for { select { case <-done: fmt.Println("Done.") close(msg) return default: msg<-"hello world." time.Sleep(500*time.Millisecond) } } } func main() { msg := make(chan string) done := make(chan bool) timeout := time.After(5 * time.Second) // 将done传入worker 如果main接收完成...阅读全文

GO语言的并发

package main import ("fmt" "runtime" "time") func hello(s string) { for i := 0; i < 10; i++ { runtime.Gosched(); fmt.Println("here:", s); time.Sleep(5000); } } func main() { go hello("lili2"); hello("lili1"); } 如上的小程序,在没有等待时,实际上 只会打印出来lili, 而不会打印出来 lili2, 只有加了比较大的时间间隔,才会打印出来,准备看下源码,怎么实现的...阅读全文

博文 2015-06-17 23:02:24 hnhbdss

libcsp: 一个 10 倍于 Golang 的高性能 C 语言并发库

libcsp是一个C语言实现的基于CSP模型的高性能并发库, 利用它你可以用C开发一些高性能项目. 特性: 支持多核 高性能调度器 编译时栈大小静态分析 高性能 Lock-free 通道 支持 netpoll 和 timer Golang和Libcsp比较 // Golang // Libcsp go foo(arg1, arg2, arg3) async(foo(arg1, arg2, arg3)); var wg sync.WaitGroup sync(foo(); bar()); wg.Add(2) go func() { defer wg.Done(); foo(); }() go func() { defer wg.Done(); bar(); }() wg.Wait() runt...阅读全文

博文 2020-04-09 19:32:43 shiyanhui

云解析DNS使用教程

课程介绍 云解析(Domain Name System,简称DNS)是一种高可用性、高可扩展的权威DNS服务和DNS管理服务。它的目的是为企业和开发者提供稳定、安全、智能的把网站域名或应用资源转换为计算机用于互连的数字 IP地址,从而将最终用户的访问路由到相应的网站或应用资源上同时提供DNS的管理服务。 产品详情:https://wanwang.aliyun.com/domain/dns/ 课时列表 • 课时1:购买与绑定 • 课时2:解析设置 • 课时3:智能解析 • 课时4:网站监控 • 课时5:全球负载均衡 开始学习:http://click.aliyun.com/m/27873/ ...阅读全文

区分“并发”与“并行”的概念

并发与并行这两个概念是令人困惑的,但在go语言的编程中是必须要理解的。 并发(concurrent) 并发是指两种或两种以上的行为在系统中同时存在,至于这两个行为是否在某一时刻同时“执行”,在并发的概念中并不考虑。在go语言中,go语句可以开启一个新的goroutine,这就典型的并发。不同的goroutines在程序运行期间可能同时存在着, 至于这些goroutines在某一个时刻是不是同时运行, 我们不去关心。事实上, 在单核CPU系统中, goroutines的运转是依赖cpu的时间片轮转算法的,即交替执行。但这的的确确是并发,原因是系统具备了同时处理多种行为的能力。实际上这是一种人类无法直接感知的“伪并行”,只不过从表面上看来,“像是同时执行的”。 并行(parellel) 并行意味...阅读全文

博文 2017-07-29 17:05:19 Dr_Zhang

高可用 Redis 服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常...阅读全文

博文 2018-10-07 21:34:39 Java填坑之路

高可用Redis服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常...阅读全文

Golang并发模型:select进阶

特性 nil的通道永远阻塞,即不执行。 break跳出for? select{}阻塞。 select应用场景 无阻塞的读、写通道 给某个请求/处理,设置超时时间,一旦超时时间内无法完成,则停止处理 有多个通道需要处理,哪个可以处理,就处理哪个 并发系列文章推荐 Golang并发模型:轻松入门流水线模型 Golang并发模型:轻松入门流水线FAN模式 Golang并发模型:并发协程的优雅退...阅读全文

博文 2018-12-08 16:34:45 shitaibin

关于Golang和JVM中并发模型实现的探讨

说起来貌似有好久没有更新过博客了,主要是因为最近一段时间都在各种看书和看源码,所做的记录大部分也都是属于读书笔记性质,所以就没有整理到博客上来,之后会陆续整理一些东西上来。http://www.jxedt.com/wen/yueche/3170230162160615478.html http://www.jxedt.com/wen/yueche/3170230170922909778.html http://www.jxedt.com/wen/yueche/3170230228733788214.html http://www.jxedt.com/wen/yueche/3170230233200984146.html http://www.jxedt.com/wen/yueche/3170...阅读全文

博文 2016-10-12 19:00:06 wangwei5155

高可用Redis服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常...阅读全文