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

golang 生成个性二维码

前言 好久没发文章了,最近登录看到有朋友评论了golang生成二维码的文章,想了解下生成个性二维码的解决方案! 实现思路 ,网上搜相关资料几乎没有, 没有那就就自己想吧,就去看了下草料二维码; 然后突然就有感觉了 不就是把像素的颜色替换嘛 这还不简单 1 打开二维码图片2 打开要填充的图片3 将要填充的图片剪裁成和二维码一样大小4 分析二维码的每个像素 替换成图片的像素就行了 以下是生成的例子: 例子 代码 package main import ( "fmt" "github.com/nfnt/resize" "image" "image/color" "image/draw" "log" "os" "time" _ "image/jpeg" _ "image/gif" "image/pn...阅读全文

博文 2020-05-10 17:32:42 李昊天

通过 Jaeger 上报 Go 应用数据

在使用链路追踪控制台追踪应用的链路数据之前,需要通过客户端将应用数据上报至链路追踪。本文介绍如何通过 Jaeger 客户端上报 Go 应用数据。 背景信息 数据是如何上报的? 不通过 Agent 而直接上报数据的原理如下图所示。 Report Tracing Data Directly 通过 Agent 上报数据的原理如下图所示。 Report Tracing Data By Agent 如何获取接入点信息? 登录链路追踪控制台,在概览页面上打开查看 Token 开关。 单击需要使用的链路数据采集客户端(Jaeger 或 Zipkin)按钮。 在下方表格中相应地域的相关信息列中,单击接入点信息末尾的复制按钮。 Tracing Analysis Endpoint Section 提示:如果应用...阅读全文

博文 2019-05-19 16:43:59 8588ll

容器云,为电商双十一大战保驾护航

又到一年双十一,一场由电商网站主导,社会全民参与的购物狂欢盛宴再一次准时上演。事实上,双十一,不仅是剁手党们热热闹闹的「 狂欢节 」,同时也是电商网站们悄无声息的「 技术大考 」。 接下来看看各大电商巨头在容器技术应用方面的现状是怎么样的: ![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2016/11/%E4%BA%AC%E4%B8%9C.png) :京东对容器技术的使用和推崇在圈内是可圈可点的。据公开资料显示,京东拥有目前世界上 「 规模最大 」的Docker集群,今年或将达到20万个。基于Docker和OpenStack的京东弹性云,支撑了京东数次6.18和双十一大促的考验,以及数千亿的交易业务。目前京东所有的...阅读全文

Java消息队列总结只需一篇解决ActiveMQ、RabbitMQ、ZeroMQ、Kafka

一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式a、串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。​b、并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端...阅读全文

博文 2018-09-21 00:08:41 Spring51

大数据Clouder专项技能认证课程:Quick BI企业报表制作

课程介绍 阿里云大学Clouder大数据专项技能认证:Quick BI企业报表制作 本认证课程可以帮助学员掌握图形化报表设计、开发的方法,同时还将掌握搭建企业级报表门户。通过报表门户,将企业的数据通过图形化报表展现出来,实现信息共享。 课程亮点: • 真实环境:实验环境为公共云资源,和客户实际使用资源相同 • 仿真场景:动手实验的数据和需求来自于实际的企业项目 • 实战性强:课程和实验围绕实用性非常强的技能点,可快速应用到实际工作中去 • 易学易懂:内容深入浅出,理论和实践相结合,随时可学,学完即会 课程目标 • 掌握使用Quick BI制作企业报表的方法 适合人群 • 所有人 课时列表 • 免费 课时1:内容...阅读全文

移动终端app测试点总结

以下所有测试最后必须在真机上完整的执行 1、安装、卸载测试 在真机上的以及通过91等第三方的安装与卸载 安装在手机上还是sd卡上 2、启动app测试 3、升级测试   数字签名、升级覆盖安装、下载后手动覆盖安装、跨版本升级、升级后可以正常使用。   覆盖安装要确保数据库有字段更新的话,能正常更新,否则就容易导致app异常。 4、功能测试   包括功能点、业务逻辑、关联性(主要测试客户端与PC端的交互,客户端处理完后,PC端与客户端数据一致)、   服务端接口测试(主要通过访问服务端接口来验证服务端业务逻辑功能点是否正确) 5、数据对比测试   可在模拟器或真机上进行,同时与数据库中实际的插入记录做对比。还要对比主站的相同流程...阅读全文

Go语言学习-time包

go语言的time包 组成 time.Duration(时长,耗时) time.Time(时间点) time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ] time包里有2个东西,一个是时间点,另一个是时长 时间点的意思就是“某一刻”,比如 2000年1月1日1点1分1秒 那一刻(后台记录的是unix时间,从1970年开始计算) 时长就是某一刻与另一刻的差,也就是耗时 函数 Sleep函数 time.Sleep(time.Duration) 表示睡多少时间,睡觉时,是阻塞状态 fmt.Println("start sleeping...") time.Sleep(time.Second) fmt.Println("end sleep.") //【结果】...阅读全文

博文 2016-10-08 10:00:04 tree2013

用Golang将图片转化成ASCII码

用Golang将图片转化成ASCII码 在开始之前先看看最终效果: 项目地址在这里:https://github.com/qeesung/im... , 欢迎star 我们都知道图片是通过一个像素点矩阵组成的,每一个像素点都是有四个值,分别是R,G,B,A组成,其中RGB就是红色,绿区,蓝色,简称三原色,在计算机中取值从0-255,而A则是颜色的透明度,取值0.0-1.0。 我们现在要做的就是将一个彩色的图片转化成一个由ASCII组成的图片,换句话说,就是将RGBA像素点的矩阵转化成一个由字符组成的矩阵,必要的时候再给字符加上颜色就可以啦。 (R, G, B, A) (R, G, B, A) (R, G, B, A) char1, char2, char3 (R, G, B, A) (R, ...阅读全文

博文 2018-10-21 17:34:39 qeesung

诚聘golang开发工程师武汉

因公司发展需要武汉分公司招聘:Golang技术工程师3名 一:岗位要求 1、熟悉golang语言,精通JAVA/Python/C++/Go/PHP/solidity等语言经验中至少一种编程语言或其他开发语言, 具有良好的编程 习惯和风格。 2、专科及以上学历,软件工程、计算机等相关专业,具有较强的学习沟通和口头表达能力。 3、对计算机网络系统有深刻理解,有分布式,点对点网络协议或应用开发经验。 二:有以下经验优先; 1、有一年以上GO语言开发经验或有实际相关项目经验均口,有开发过撮合制交易系统,大并发,分布式架构应用系统优先。 2、熟悉TCP/IP协议、HTTP协议,了解P2P网络协议,最好有了解区块链底层和以太坊接口和区块链智能合约...阅读全文

【Go学习笔记】 1、Go编程基础

什么是Go? Go 是一门 并发支持、垃圾回收和编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。 Go的主要特点有哪些? 类型安全 和 内存安全 以非常 直观 和 极低代价 的方案实现 高并发 高效的垃圾回收机制 快速编译 为多核计算机提供性能提升的方案 UTF-8编码支...阅读全文

博文 2017-05-30 05:08:48 HundredLee

分布式分布订阅消息系统

image.png 几千行 C 代码实现了的一个优先级/延时队列,短小精悍 概念 tube - 消息通道,类似于 kafka 里面的 topic, 用来存储某一类或者业务的任务 job - 生产和消费的基本单元,每个 job 都会有一个 id 和 优先级 特点 1、协议,类 Memcached 协议, 非二进制安全 2、全内存, 可开启 binlog, 断电从 binlog 恢复数据 3、单线程, 使用 epoll/kqueue 来实现事件机制 基于golang和beanstalk封装的分布式发布订阅消息系统 主要工作 1、producer消息路由 2、维护client与topic的订阅关系 3、dispatcher并发投递消息给多个相关订阅者,从而支持1对N的关系 delivery gua...阅读全文

博文 2019-03-22 18:34:43 loloxiaoz

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

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

博文 2018-10-07 21:34:39 JAVA高级架构开发

Golang Web开发时前端出现谜之空白换行的坑

在使用Golang做Web开发时,有时候渲染出来的模板在前台显示时会出现一些奇怪的空白换行,具体特征就是查看css样式表并没有相关定义的空白部分。 分析: 查看出现问题页面的网页源代码,复制空白换行部分转码为Unicode编码,发现其中包含了\u2028这样的字符【图一】。 【图一】 另外,直接在浏览器检查里边的html选择Edit as html,也可发现在空白处存在小红点,鼠标移上会直接显示该字符是\u2028【图二】。查阅资料发现,这样的换行符在JavaScript中并不支持。 【图二】 解决方法: 在网页检查可以发现,直接删除这些小红点便可解决问题。网上有直接前端处理的方式,即搜索页面中的\u2028并将其替换为\\u2028即可,当然也可以在后台使用Golang进行处理,即在输出h...阅读全文

博文 2016-08-11 12:00:00 yate1996

系统学习技术的方法

1、为什么会有这个东西(why): 1)这个技术出现的背景、初衷,要达到的目标和解决什么问题;2、这门技术是什么原理(what):1) 这个技术的组成部分和关键点,2) 底层实现原理和关键实现;3、这门技术使用起来怎么样,好不好(how):1) 这个技术的优点和缺点,2) 这个技术适用的业务场景,3) 和已有技术的之间的对比 举个例子:1、 为什么会出现python这个语言,主要是实现什么目标2、python语言的基础语法是什么,模块是什么,内存管理是怎样的,底层怎么实现的?3、python的优缺点是什么, 用起来感觉怎么样, 和java\c++、golang相比,有什么不一样呢?4、哪些场景可以用python开发...阅读全文

博文 2018-11-16 02:34:38 wallehu_1111

golang的sync.Pool的使用

可以看这篇文章 https://blog.csdn.net/yongjian_lian/article/details/42058893 这个玩意的出现是为了解决 gc 的问题, 核心点在于 重用对象, 提高性能. 减少内存的分配. 下面看个例子 package main import ( "sync" "fmt" ) func main() { p := &sync.Pool{ New: func() interface{} { return 0 }, } a := p.Get().(int) fmt.Println(a) p.Put(1) p.Put(4) p.Put(2) p.Put(5) b := p.Get().(int) // runtime.GC() // 执行回收操作后 1 ...阅读全文

博文 2019-03-08 01:34:40 个00个

go语言接口和方法集问题笔记

注意: 此文章只是我的个人笔记,如有谬误,错误, 请一定指出! package main import "fmt" //IA test for methodset. type IA interface { Value() Pointer() } //A is a test type. type A int //Value receiver. func (a A) Value() { fmt.Printf("Value:%p, %d\n", &a, a) } //Pointer receiver. func (a *A) Pointer() { fmt.Printf("Pointer:%p, %d\n", a, *a) } func main() { //type A method set: ...阅读全文

博文 2016-08-30 05:00:01 htyu_0203_39

阿里大鱼Golang SDK —— alidayu-go

扩展 这个SDK的关键点不是实现了阿里大鱼的3个API,而是给使用者提供了一个可以自有扩展的框架,以【短信发送记录查询】接口为例。 type AlibabaAliqinFcSmsNumQueryRequest struct { BizId string `json:"biz_id"` RecNum string `json:"rec_num"` QueryDate string `json:"query_date"` CurrentPage string `json:"current_page"` PageSize string `json:"page_size"` } func NewAlibabaAliqinFcSmsNumQueryRequest() *AlibabaAliqinFcS...阅读全文

博文 2017-07-05 16:07:17 gwpp

Java消息队列总结只需一篇解决ActiveMQ、RabbitMQ、ZeroMQ、Kafka

一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式a、串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。b、并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。...阅读全文

博文 2018-09-20 16:17:45 Java1324

性能测试要关注的目标

不可置否,在对APP的整个测试环节中,性能测试是一个很重要的环节,它直接影响了用户的体验,那么,对于APP的性能测试,我们到底需要关注那些点呢? 其实,我们可以想想在软件设计、部署、使用、维护中一共有哪些角色参与,然后再考虑这些角色各自关注的性能点是什么,那么作为一个软件性能测试工程师,我们就能够从中总结出,对于APP的性能测试主要应该关注哪些比较重要的点。 1.从用户角度出发 开发软件的目的是为了让用户使用,我们先站在用户的角度分析一下,用户需要关注哪些性能。 对于用户来说,当点击一个按钮、链接或发出一条指令开始,到系统把结果已用户感知的形式展现出来为止,这个过程所消耗的时间是用户对这个软件性能的直观印象。也就是我们所说的响应时间,当响应时间较小时,用户体验是很好的...阅读全文

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

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

消息队列应用-使用异步队列就解耦了吗

消息队列作用一文介绍了为什么要使用消息队列。我们再来讨论下如何有效使用消息队列。 消息队列模式 目前主流消息队列主要由两种模式,1个是点对点模式,1个是发布订阅模式。简单做下介绍 点对点模式 1个消息只会被一个消费者消费。可以有一个或者多个消费者同时消费一个队列,但是被消费的消息不会重复。 发布订阅模式 消息可以被多个消费者消费。此类队列一般被称为一个topic,所有订阅该topic的consumer都可消费所有消息。 目前市面上有很多消息队列产品,ActiveMq,RabbitMQ,Kafka,ZeroMQ,golang实现的NSQ,支持的队列模式基本都可以以上面两个模式总结,只是实现方式不同,具体选型需要根据自己的使用场景选择。 比如kafka以其优异的性能应用在日志收集,hadoop技...阅读全文

博文 2019-08-25 23:32:52 刘凯_7013

Awesome go 增强

作为一个gopher,会经常查找golang已有的软件包,这个时候查看Github上的 [Awesome go](https://github.com/avelino/awesome-go) 中已经分门别类列出来的资源是经常的事。 但是,这个项目只是把github中的项目分类列出来而已,满足我的项目需求的包可能有很多个,我要从这些包中选择出最适合我的包,比如我的选择条件是: 1. star或者fork多,这说明gopher大众的认可程度高; 2. commits 或者 contributors 多,这说明项目的升级维护可能有保障; 3. 看license是不是支持商用,我首选Apache2.0,其次是MIT,其他的都得掂量掂量。 一个项目一个项目的点进去看这些数据,这种选择...阅读全文

高性能消息中间件——NATS

前 言这段时间我的主要工作内容是将公司系统中使用的RabbitMQ替换成NATS,而此之前我对Nats一无所知。经过一段时间紧张的学习和开发之后我顺利的完成了任务,并对消息中间件有了更深的了解。在此感谢同事钟亮在此过程中对我的帮助。NATS属于比较小众的一款中间件产品,中文资料基本上是没有的,故写以记之,为想学习Nats的同学提供一点帮助。 在介绍NATS之前先了解下什么是分布式系统和消息中间件对于分布式系统的定义,一直以来我都没有找到或者想到特别简练而又合适的定义,这里引用一下Distributed System Concepts and Design (Thrid Edition)中的一句话A distributed system is one in which components l...阅读全文

博文 2019-01-16 20:34:42 中间件

golang单点推送

package main import ( "encoding/json" "flag" "fmt" "log" "net/http" "time" "config" "framework/logger" "global" "models/function" "models/schema" "github.com/go-redis/redis" "github.com/gorilla/websocket" "github.com/labstack/echo" ) var clients = make(map[*websocket.Conn]bool) var broadcast = make(chan Message) var upgrader = websocket.Upgrader{Ch...阅读全文

博文 2017-12-08 06:00:02 zhangym

7.MIT 6.824 LAB 4A(分布式shard database)

第一步 阅读文档 https://pdos.csail.mit.edu/6.824/labs/lab-shard.html 一直读到4B之前,理解他的每个段落的意思。我是读到第三遍 才全部读清楚。 第二步 整理这个DB的架构思路 lab4 的架构是典型的 M/S 架构(a configuration service and a set of replica groups),不过实现十分基础,很多功能没有实现:1) shards 之间的传递很慢并且不允许 concurrent client acess;2) 每个 raft group 中的 member 不会改变。 configuration service 由若干 shardmaster 利用 raft 协议保证一致性的集群; 管理 con...阅读全文

博文 2019-05-14 21:34:57 西部小笼包

TIM:项目应用了弹性DAG架构技术、GPS节点标识技术

声明:本测评内容仅供参考,任何依本测评内容作出的投资行为,与本测评内容无关。项目有风险,投资需谨慎。Statement: the contents of this assessment are for reference only. Any investment behavior made according to the contents of this assessment is not related to the contents of this assessment. The project is risky and the investment must be prudent. TIM项目创建了一种高带宽点对点货币块链结构体系,该体系将使各种类型的社会价值商品在一个单一的系统上得...阅读全文

博文 2018-08-15 13:36:18 脑爆炸

NSQ深入与实践

1. 介绍 最近在研究一些消息中间件,常用的MQ如RabbitMQ,ActiveMQ,Kafka等。NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。 官方和第三方还为NSQ开发了众多客户端功能库,如官方提供的基于HTTP的nsqd、Go客户端go-nsq、Python客户端pynsq、基于Node.js的JavaScript客户端nsqjs、异步C客户端libnsq、Java客户端nsq-java以及基于各种语言的众多第三方客户端功能库。 1.1 Features 1). Distributed NSQ提供了分布式的,去中心化,且没有单点故障的拓扑结构,稳定的消息传输发布保障,能够具有高容错和HA(高可用)特性。 2...阅读全文

Go-Structure

定义&赋值 要点: - 定义一个新的结构体 - 结构体对象的声明与初始化 - 对象和指针 package main import "fmt" type Point struct { x float64 y float64 } /* You could write the code as below, which is more convenient. type Point struct { x,y float64 } */ func print(p Point) { fmt.Printf("Point[x=%.2f, y=%.2f]\n", p.x, p.y) } func main() { var p1 Point; // all fields are set to default val...阅读全文

博文 2016-09-22 02:00:00 u013344915

盒测试之做好功能交接

项目中出现人员变动时,你一定遇到过被动的接受别人的项目或者功能模块,而在交接过程中,APP测试便可能出现不可避免的会出现功能细节和测试注意点的遗漏,那么当这些功能出现问题或者变动时,你要如何保证项目质量呢?我们又是否有方法最大程度的避免交接遗漏呢? 下面,TestBird就分享一些项目中的经验给大家~  功能交接过程  1)交接前: a.     阅读相关文档(需求、流程图以及交接人的总结文档),确保在正式交接前对该功能有整体了解; b.     罗列自己的疑问,明确功能难点; c.      查看bug列表,明确易出问题的环节; 2)交接中: a.     解除疑问; b.     抓住重点和逻辑复杂的模块,尽量细致的提问和了解; c. ...阅读全文

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

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

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

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

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

剖析nsq消息队列(一) 简介及去中心化实现原理

分布式消息队列nsq,简单易用,去中心化的设计使nsq更健壮,nsq充分利用了go语言的goroutine和channel来实现的消息处理,代码量也不大,读不了多久就没了。后期的文章我会把nsq的源码分析给大家看。 主要的分析路线如下 分析nsq的整体框架结构,分析如何做到的无中心化分布式拓扑结构,如何处理的单点故障。 分析nsq是如何保证消息的可靠性,如何保证消息的处理,对于消息的持久化是如何处理和扩展的。 分析nsq是如何做的消息的负载处理,即如何把合理的、不超过客户端消费能力的情况下,把消息分发到不同的客户端。 分析nsq提供的一些辅助组件。 这篇帖子,介绍nsq的主体结构,以及他是如何做到去中心化的分布式拓扑结构,如何处理的单点故障。 几个组件是需要先大概说一下 nsqd 消息队列的...阅读全文

博文 2019-08-30 15:34:33 li_peng

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

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

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

免费分享阿里云负载均衡入门与产品使用指南

课程介绍 负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。 课时列表 • 课时1:负载均衡产品创建与使用限制 • 课时2:负载均衡产品结构 • 课时3:负载均衡管管理控制台基本操作 • 课时4:负载均衡产品优势与定义 • 课时5:负载均衡管理控制台监控指标的介绍 • 课时6:负载均衡管理控制台修改配置监听 • 课时7:负载均衡应用场景与名称解释 • 课时8:负载均衡证书管理常见问题 开始学习http://click.aliyu...阅读全文

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

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

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

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

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

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

区块链的新概念“胖协议”

最近得到一个新概念,胖协议(Fat Protocols)。(胖协议可以理解为基础链)胖协议的概念来自于Fat Protocols,翻译版见文章末尾。从这个角度看过去,或许我们能更清楚互联网和区块链之间的区别。 图1-互联网生态 vs 区块链生态。我们经常用到的App,但凡跟网络沾边,就都离不开协议。说到协议,除了经常看到的http:/(HTTP协议),经常听到的IP地址(IP协议),其他我们知道的并不多。其实,网络上每个消息的发送与接收,都离不开协议。协议就像人们约定成俗的语言,没有协议,电脑之间无法通讯,网络也就不复存在。就好像你说A语,我说B语,大家谁也听不懂谁。 协议如此重要,可它却是价值最小的。但也不奇怪,因为那都是瘦协议,薄薄的一层,只约定了软件应该如何通讯。比如微信,发送消息使用...阅读全文

博文 2017-07-29 18:06:23 大硕简书

go任务调度3(etcd协调服务、raft协议)

etcd是将数据存储在集群中的高可用k-v存储。允许应用实时监听存储中的k-v变化。能容忍单点故障,能够应对网络分区。 (raft是一个分布式协议,管理的是日志;etcd管理的是k-v,把k-v放到日志里,kv就编程分布式集群了)(调用者写入请求发给leader请求写入k-v,leader会将日志实时向follower们复制,leader不会立即返回给调用者,会马上往集群follower做日志拷贝。当日志被复制给N+1个节点后(即大多数),本地提交(也就是告诉客户端提交成功),返回给调用者(客户端),为什么复制给N+1,而不是2N+1后就告诉客户端成功了呢?这就是大多数协议,也就是抽屉理论的重要表现)(一旦完成提交,leader会周期性把自己的提交信息告诉所有follower,这样,其他fo...阅读全文

博文 2019-04-19 20:35:11 梁十八

Go语言学习-time包

go语言的time包 组成 time.Duration(时长,耗时) time.Time(时间点) time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ] time包里有2个东西,一个是时间点,另一个是时长 时间点的意思就是“某一刻”,比如 2000年1月1日1点1分1秒 那一刻(后台记录的是unix时间,从1970年开始计算) 时长就是某一刻与另一刻的差,也就是耗时 函数 Sleep函数 time.Sleep(time.Duration) 表示睡多少时间,睡觉时,是阻塞状态 fmt.Println("start sleeping...") time.Sleep(time.Second) fmt.Println("end sleep.") //【结果】...阅读全文

博文 2016-10-11 03:00:10 tree2013

go语言接口和方法集问题笔记

注意: 此文章只是我的个人笔记,如有谬误,错误, 请一定指出! package main import "fmt" //IA test for methodset. type IA interface { Value() Pointer() } //A is a test type. type A int //Value receiver. func (a A) Value() { fmt.Printf("Value:%p, %d\n", &a, a) } //Pointer receiver. func (a *A) Pointer() { fmt.Printf("Pointer:%p, %d\n", a, *a) } func main() { //type A method set: ...阅读全文

博文 2016-09-21 04:00:00 htyu_0203_39

区块链

区块链技术起源于化名为“中本聪”(SatoshiNakamoto)的学者在 2008 年发表的奠基性论文《比特币: 一种点对点电子现金系统》。狭义来讲, 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本...阅读全文

博文 2020-04-21 10:05:02 wjl2020

阿里七层流量入口 Tengine硬件加速探索之路

摘要: Tengine在软件层面已经有了深度的调试和优化经验,但是在硬件层面,通用处理器(CPU)已经进入了摩尔定律,有了瓶颈。而在业务量突飞猛进的当下,如何利用硬件来提升性能,承载双11等大型活动的洪峰流量,保障活动平稳度过呢?本文作者:王发康,花名毅松,负责集团主站统一接入层Tengine的开发与维护。 Tengine在软件层面已经有了深度的调试和优化经验,但是在硬件层面,通用处理器(CPU)已经进入了摩尔定律,有了瓶颈。而在业务量突飞猛进的当下,如何利用硬件来提升性能,承载双11等大型活动的洪峰流量,保障活动平稳度过呢? 本文作者:王发康,花名毅松,负责集团主站统一接入层Tengine的开发与维护。今天分享的主题是《阿里七层流量入口Tengine硬件加速探索之路》。 ...阅读全文

高可用 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服务来说怎样才算是高可用,即在各种出现异常...阅读全文

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

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

时序数据库 InfluxDB(七)

相关文章:时序数据库 InfluxDB(一)时序数据库 InfluxDB(二)时序数据库 InfluxDB(三)时序数据库 InfluxDB(四)时序数据库 InfluxDB(五)时序数据库 InfluxDB(六) 单点故障和容灾备份 InfluxDB 开源的社区版本面临的最大的问题就是单点故障和容灾备份,有没有一个简单的方案去解决这个问题呢? 既然有单点故障的可能,那么索性写入多个节点,同时也解决了容灾备份的问题: 1、在不同的机器上配置多个 InfluxDB 实例,写入数据时,直接由客户端并发写入多个实例。(为什么不用代理,因为代理自身就是个单点)。 2、当某个 InfluxDB 实例故障而导致写入失败时,记录失败的数据和节点,这些失败的数据可以临时存储在数据库、消息中间件、日志文件等等...阅读全文

go语言接口和方法集问题笔记

注意: 此文章只是我的个人笔记,如有谬误,错误, 请一定指出! package main import "fmt" //IA test for methodset. type IA interface { Value() Pointer() } //A is a test type. type A int //Value receiver. func (a A) Value() { fmt.Printf("Value:%p, %d\n", &a, a) } //Pointer receiver. func (a *A) Pointer() { fmt.Printf("Pointer:%p, %d\n", a, *a) } func main() { //type A method set: ...阅读全文

博文 2016-08-30 01:00:08 htyu_0203_39

好程序员大数据培训之ZooKeeper应用-解决分布式系统单点故障

好程序员大数据培训技术ZooKeeper应用-解决分布式系统单点故障,大数据课程涵盖Java、spark、Hadoop等内容,而不是Java中涵盖大数据,现在是大数据的时代,学习大数据课程之前必须先了解大数据课程大纲,否则很容易学到假的大数据课程。 今天小编给大家分享一下:ZooKeeper应用--解决分布式系统单点故障 1.单点故障问题 什么是分布式系统中的单点故障:通常分布式系统采用主从模式,就是一个主控机连接多个处理节点。主节点负责分发任务,从节点负责处理任务,当我们的主节点发生故障时,那么整个系统就都瘫痪了,那么我们把这种故障叫作单点故障。如下图​​ 传统方式是采用一个备用节点,这个备用节点定期给当前主节点发送ping包,主节点收到ping包以后向备用节点发送回复Ack,当备用节点收...阅读全文

博文 2019-04-01 14:13:44 hcxy

常见排序算法及golang 实现

五种基础排序算法对比 五种基础排序算法对比 1:冒泡排序 算法描述 比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数; 针对所有的元素重复以上的步骤,除了最后一个; 重复步骤1~3,直到排序完成。 动图演示 冒泡排序动图演示 代码演示 func bubbleSort(arr [6]int) { for i := 0; i < len(arr)-1; i++ { for j := 0; j < len(arr)-i-1; j++ { if arr[j] > arr[j+1] { temp := arr[j] arr[j] = arr[j+1] arr[j+1] = temp } } } fmt....阅读全文

博文 2019-10-30 16:33:00 aside section._1OhGeD