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

MQTT 代理 SurgeMQ

SurgeMQ 旨在提供 MQTT 代理和客户端开发包,完全兼容 MQTT sepc 3.1.1,此外尝试兼容 3.1。SurgeMQ 目前开发活跃,在一台 4 核 2.8G i7 处理器的 MBP 上性能可达: * **over 400,000** MPS in a 1:1 单发布者和生产者配置 * **over 450,000** MPS in a 20:1 fan-in configuration * **over 750,000** MPS in a 1:20 fan-out configuration * **over 700,000** MPS in a full mesh configuration with 20 clients ![image](http://st...阅读全文

自动化部署工具Syncd

syncd是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率. **目前只支持类Linux系统.** ## 目录 - [特性](#特性) - [原理](#原理) - [安装](#安装) - [使用](#使用) - [帮助](#帮助) - [授权](#授权) ## 特性 - Go语言开发,编译简单、运行高效 - Web界面访问,交互友好 - 灵活的角色权限配置 - 支持Git仓库 - 分支、tag上线 - 部署hook支持 - 完善的上线工作流 - 邮件通知机制 ## 原理 阅读全文

golang的日志分割

在githup上做了第一个发布,golang基于log日志,做得日志分割详细见:https://github.com/david-syw/vlogpackage mainimport ( "vlog")func main() { vlog.SetFlags(vlog.Ldate | vlog.Ltime | vlog.Lshortfile) vlog.SetFilepath("lo_test.log") //save file vlog.SetFileMax(20 * 1024 * 1024) //20M vlog.Println("test log1........") vlog.Println("test log2........") vlog.Println("test log3......阅读全文

博文 2019-01-25 10:34:41 天上火1

golang nats[5] cluster集群

集群模式 nats的集群模式对客户端来说并不是透明的。 所以集群对发布者和订阅者都是有影响的。 发布者和订阅者都知道连接的是一个集群的服务,而不是一个单点服务,换句话说发布者订阅者都必须指明集群中各个节点的地址。 当然,发布者和订阅者可以只针对集群中的某节点发布消息和订阅消息,不过这并不是集群模式的目的。 目的 提高可用性和可伸缩性。 实现原理 可用性,多个节点,挂掉任意一个,不影响整个集群对外提供服务。 伸缩性,服务端支持随意增加节点。订阅者可以感知服务端节点的变动,但是发布者并不能自动感知。 3个node的集群 $ gnatsd -p 4222 -m 4333 -cluster nats://localhost:4248 -routes nats://localhost:5248,nat...阅读全文

博文 2018-08-19 22:34:56 luckyase

Go 1.1 is released(Google Go 语言发布1.1版本)

MONDAY, MAY 13, 2013Go 1.1 is releasedIt is our great pleasure to announce the release of Go 1.1.In March last year we released Go 1.0, and since then we have released three minor "point releases". The point releases were made to fix only critical issues, so the Go 1.0.3 you use today is still, in essence, the Go 1.0 we released in March 2012.Go 1....阅读全文

博文 2015-06-17 20:06:13 OpenHero

Kafka 集群 Golang 应用实例

项目见:🐞 kafka cluster example 这个实例做了些什么? 搭建了拥有 3 节点 kafka、 3 节点 zookeeper 的 docker 集群服务; 分别创建了 1 个消息发布者和 2 个相同消费组的消息订阅者的 docker 应用; 使用 ab 进行并发测试,验证该实例消息的订阅 / 发布功能; 通过这个实例,能够了解些什么? 使用 Docker Compose 构建 Kafka 集群 使用 Golang 创建 Kafka Pub/Sub 实例 使用 ApacheBench 进行并发测试 使用 Makefile 简化构建操作命令 如果这个实例,对你了解 kakfa 有所帮助,请为项目添加 star ,非常感谢...阅读全文

使用 Go 实现简单的事件总线

![pic_1](https://raw.githubusercontent.com/studygolang/gctt-images/master/let%E2%80%99s-write-a-simple-event-bus-in-go/pic_1.png) 事件驱动架构是计算机科学中一种高度可扩展的范例。它允许我们可以多方系统异步处理事件。 事件总线是[发布/订阅模式](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern)的实现,其中发布者发布数据,并且感兴趣的订阅者可以监听这些数据并基于这些数据作出处理。这使发布者与订阅者松耦合。发布者将数据事件发布到事件总线,总线负责将它们发送给订阅者。 ![pic_2](ht...阅读全文

博文 2019-07-08 21:35:05 watermelo

6、 reactor

Reactor 简介 前面提到的 RxJava 库是 JVM 上反应式编程的先驱,也是反应式流规范的基础。RxJava 2 在 RxJava 的基础上做了很多的更新。不过 RxJava 库也有其不足的地方。RxJava 产生于反应式流规范之前,虽然可以和反应式流的接口进行转换,但是由于底层实现的原因,使用起来并不是很直观。RxJava 2 在设计和实现时考虑到了与规范的整合,不过为了保持与 RxJava 的兼容性,很多地方在使用时也并不直观。Reactor 则是完全基于反应式流规范设计和实现的库,没有 RxJava 那样的历史包袱,在使用上更加的直观易懂。Reactor 也是 Spring 5 中反应式编程的基础。学习和掌握 Reactor 可以更好地理解 Spring 5 中的相关概念。 ...阅读全文

博文 2018-10-15 08:34:37 lesline

如何在 Linux & MacOS 上优雅的发布 Go 程序

这两天写了一个开源小工具,时间戳转换与对比工具:ts,主要是在公司运维时使用。程序写完了发现安装过程不够自动化,特别是对于个人使用 MacOS 系统,日常运维是 Linux 操作系统。虽然 Go 语言支持跨平台编译,但是拿着个二进制程序拷贝来拷贝去,总归不像样。本文记录一下如何优雅在 Linux & MacOS 上发布 Go 程序的过程。 必备工具 在实操之前,请首先确认成功安装以下工具: brew goreleaser godownloader 操作步骤 首先当然是完成项目的编码工作。程序能够正常的编译执行。以ts项目为例。 $: git clone https://github.com/liujianping/ts $: cd $: ├── LICENSE ├── README.md ├...阅读全文

博文 2019-06-27 12:04:16 JayL

RDC容器构建和部署服务新功能上线

摘要: 通过RDC和容器服务的集成,很好的解决了从代码提交到发布上线,及多环境流水线部署等问题 容器服务 阿里云容器服务提供了从容器构建到部署的服务。再此基础之上还提供了一系列的阿里云其它服务的集成和扩展,比如监控、日志、负载均衡等。 Devops解决方案 先探讨一下我们期望的Devops研发流程是什么样子。 Devops需求 对于一个应用A(非容器服务中的应用,而是RDC中的应用的概念),会考虑下面的点: 在进行镜像构建时,我希望运行测试;对于Java之类的编译型语言,我还需要打包。但我不希望把运行测试和进行构建的依赖(比如maven),放入镜像中。目前容器服务提供的构建服务仅支持docker build命令,因此无法在镜像构建之外再做上述的工作。...阅读全文

go语言-常见并发模式

生产者-消费者模型并发编程中最常见的例子就是生产者/消费者模型,该模型主要通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。简单的说,就是生产者生产一些数据,然后放到队列中,同时消费者从队列中来取这些数据。这样就让生产和消费变成了异步的两个过程。当队列中没有数据是,消费者就进入饥饿的等待中;而当对立中数据已满时,生产者则面临产品积压导致CPU被剥夺的问题。//生产者 func Producer(factor int, out chan <- int) { for i := 0; ; i++ { out <- i * factor } } //消费者 func Consumer(in <- chan int) { for v := range in { fmt.Println...阅读全文

博文 2020-03-15 16:33:17 guoguocto

如何在 Linux & MacOS 上优雅的发布 Go 程序

这两天写了一个开源小工具,时间戳转换与对比工具:ts,主要是在公司运维时使用。程序写完了发现安装过程不够自动化,特别是对于个人使用 MacOS 系统,日常运维是 Linux 操作系统。虽然 Go 语言支持跨平台编译,但是拿着个二进制程序拷贝来拷贝去,总归不像样。本文记录一下如何优雅在 Linux & MacOS 上发布 Go 程序的过程。 必备工具 在实操之前,请首先确认成功安装以下工具: brew goreleaser godownloader 操作步骤 首先当然是完成项目的编码工作。程序能够正常的编译执行。以ts项目为例。 $: git clone https://github.com/liujianping/ts $: cd $: ├── LICENSE ├── README.md ├...阅读全文

观察者模式实战

本文转自“雨夜随笔”公众号,欢迎关注。 在上一篇文章中,我们简单了讲了一下设计模式和观察者模式。那么这次让我们详细了解一下观察者模式和我们如何进行使用。 内容 还记得上一篇文章中,我们说过了解或者设计一个设计模式的时候,要按照下面四点进行分析: image.png 意图 在实际业务场景中,我们经常遇到这样的稳定,也就是在某个对象发生某种事件时,通知其他相关的对象。所以观察者模式就允许你定义一种订阅机制,使得订阅某种事件的对象能够在事件发生时得到通知。 动机 我们来分析一种常见的业务场景,也就是购物APP中经常遇到的货物上架提醒,如果为了实现这种需求,我们可以按照下面的方式来实现: 成本最低:我们知道在开发中成本最低的就是不做这个需求,当然这个是开玩笑,不过一般在开发初期,我们可能会分析需求的...阅读全文

博文 2020-05-03 12:32:44 soolaugust

Go1.14.2 和 Go1.13.10 发布

北京时间 2020-04-08 日,Go Team 发布了 Go1.14.2 和 Go1.13.10,这是小版本更新,主要修复了和 cgo, Go 命令,运行时,os/exec 和 testing 包相关的一些 Bug。 Go1.14.2 一共修复了 [16 个 bug](https://github.com/golang/go/issues?q=milestone%3AGo1.14.2+label%3ACherryPickApproved) Go1.13.10 修复了 [9 个 bug](https://github.com/golang/go/issues?q=milestone%3AGo1.13.10+label%3ACherryPickApproved) 最新版本可...阅读全文