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

为什么数组要从零开始?

如题,数组第一个元素为什么要从零开始,而不从一开始?感觉这很反人类呀,正常来讲,一个集合的开始,不应该从一吗? 对于这个问题,我觉得可以从以下两方面来考虑。 设计层面 我们先了解一下数组最基本的结构和寻址方式(即实现方式)。 现在市面上无论是C、Java、PHP,还是Go或者其他编程语言,他们数组的实现方式,应该都是一样的:一段连续的内存。 image 数组在分配内存的时候,我们会知道数组的开始地址(PS:在目前下标为零的情况下,也等同于数组的第一个元素的地址); image 因为数组中每个元素的类型都是相同的,所以每种类型所占的内存大小是固定的,因而导致数组中每个元素的所占的内存大小都是相同的 image 由此我们可以得出,数组中每个元素地址的计算公式: image // n为数组坐标,x...阅读全文

实现Raft协议:Part 0 - 介绍

翻译自Eli Bendersky的系列博客,已获得原作者授权。 本文是系列文章中的序言,本系列文章旨在介绍Raft分布式一致性协议及其Go语言实现。文章的完整列表如下: 序言:介绍(本文) 第一部分:选主 第二部分:指令和日志复制 第三部分:持久性和优化 Raft是一个相对较新的算法(2014),但是已经在业界取到了广泛的应用。最知名的案例应该就是Kubernetes,其中的分布式键值存储组件etcd就依赖了Raft协议。 本系列文章的写作目的,在于描述Raft协议的一个功能完备且经过严格测试的实现方式,并提供一些Raft工作方式的直观理解。这并不是您学习Raft协议的唯一途径。我假定您至少读过Raft论文; 此外,也强烈建议您花时间仔细研究Raft网站上的资源——观看创作者的一两次演讲,鼓...阅读全文

博文 2020-05-06 14:36:21 GuoYaxiang

初始版python学习

Python学习 一种面向对象的解释型计算机程序设计语言一,Python核心诉求: 编程简单 代码优雅 开发效率高二,Python应用领域Python是一门全栈式语言Python有丰富的生态库Python模块之间的胶水语言、自动测试,运维 ,科学计算,金融数据分析,网络爬虫,大数据分析处理,后台服务器,前端界面,机器学习ML,人工智能AL 等等云计算 云计算最火语言,典型应用OpenStackweb开发典型WEB框架Django科学运算,人工智能典型库 NumPy,SciPy,Matplotlib,Enthought libraaryys,pandas系统运维金融量化交易,金融分析,图形GUIPyQT,WxPython,Tkinter三,Python优缺点优:定位是优雅,明确,简单开发效率非...阅读全文

博文 2019-04-10 23:34:40 星空梦想

图解kubernetes调度器SchedulerCache核心源码实现

SchedulerCache是kubernetes scheduler中负责本地数据缓存的核心数据结构, 其实现了Cache接口,负责存储从apiserver获取的数据,提供给Scheduler调度器获取Node的信息,然后由调度算法的决策pod的最终node节点,其中Snapshot和节点打散算法非常值得借鉴 设计目标 数据感知 SchedulerCache的数据从apiserver通过网络感知,其数据的同步一致性主要是通过kubernetes中的Reflector组件来负责保证,SchedulerCache本身就是一个单纯数据的存储 Snapshot机制 当scheduler获取一个待调度的pod,则需要从Cache中获取当前集群中的快照数据(当前此时集群中node的统计信息), 用于后...阅读全文

博文 2020-01-14 11:34:30 代码仔

Go 开发关键技术指南 | 为什么你要选择 GO?(内含超全知识大图)

作者 | 杨成立(忘篱) 阿里巴巴高级技术专家 关注“阿里巴巴云原生”公众号,回复 Go 即可查看清晰知识大图! 导读:从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的问题,最后回到 Go 如何解决这些问题,为大家提供 Go 开发的关键技术指南。我们将以系列文章的形式推出《Go 开发的关键技术指南》,共有 4 篇文章,本文为第 1 篇。 Go 开发指南大图 Overview 该指南主要讨论了服务器领域常见的并发问题,也涉及到了工程化相关的问题,还整理了 C 背景程序员对于 Go 的 GC 以及性能的疑问,探讨了 Go 的错误处理和类型系统最佳实践,以及依赖管理的难处、接口设计的正交性,当然也包含我们在服务器开发中对于 Go 实践的总结,有时候也会对一些有趣的问题做深度的挖掘,列出...阅读全文

博文 2019-12-19 14:34:23 阿里巴巴云原生

Go 开发关键技术指南 | 为什么你要选择 GO?(内含超全知识大图)

作者 | 杨成立(忘篱) 阿里巴巴高级技术专家 关注“阿里巴巴云原生”公众号,回复 Go 即可查看清晰知识大图! 导读:从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的问题,最后回到 Go 如何解决这些问题,为大家提供 Go 开发的关键技术指南。我们将以系列文章的形式推出《Go 开发的关键技术指南》,共有 4 篇文章,本文为第 1 篇。 Go 开发指南大图 Overview 该指南主要讨论了服务器领域常见的并发问题,也涉及到了工程化相关的问题,还整理了 C 背景程序员对于 Go 的 GC 以及性能的疑问,探讨了 Go 的错误处理和类型系统最佳实践,以及依赖管理的难处、接口设计的正交性,当然也包含我们在服务器开发中对于 Go 实践的总结,有时候也会对一些有趣的问题做深度的挖掘,列出...阅读全文

博文 2019-12-19 12:32:41 阿里巴巴云原生

解放计算给服务带来的压力,第一想到的就是阿里云高性能计算(HPC)

课程介绍 高性能计算 (Alibaba Cloud HPC) 提供一种性能卓越、稳定、安全、便捷的计算服务,帮助您快速构建处理能力出色的应用,解放计算给服务带来的压力,使您的产品在计算效率上具有非凡竞争力。 产品详情:https://www.aliyun.com/product/hpc 课时列表 • 课时1:购买实例 • 课时2:配置安全组 • 课时3:挂载NAS • 课时4:跳板机登录 • 课时5:验证GPU 开始学习http://click.aliyun.com/m/27854/ ...阅读全文

【金山云】招聘云计算平台工程师

岗位职责: 1. 负责OneRes的后端统一资源平台的开发工作。 岗位要求: 1、 具备系统架构能力、能独立承担相应模块设计及开发; 2、 具备K8S、Docker等容器技术栈,拥有相关的二次开发经验,有开源项目开发经验者优先; 3、 熟悉Kubernetes、Docker、Openstack、Mesos等主流开源项目之一或多个项目内部架构或源码; 4、 熟悉Golang\Python语言,有一定的开发经验; 5、 热衷前沿技术的探索,能快速掌握和理解新技术;具备良好的团队合作精神,善于沟通交流。 具体介绍请前往:https://app.mokahr.com/apply/kingsoft#/?anchorName=007&_k=7u5h7...阅读全文

兄弟连区块链入门教程以太坊源码分析hashimoto源码分析(二)

兄弟连区块链入门教程以太坊源码分析hashimoto源码分析(二)。“超级计算机是将计算受限问题转化为I / O约束问题的一种设备。”Ken BatcherInstead, an algorithm will have little room to be sped up by new hardware if it acts in a way that commodity computer systems are already optimized for.相反,如果一种算法以商品计算机系统已经优化的方式运行,那么算法将没有多少空间可以被新硬件加速。Since I/O bounds are what decades ofcomputing research has gone towards s...阅读全文

博文 2018-10-24 15:34:46 兄弟连区块链培训

2019-08-07

2019-08-07MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。mongodb特点它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:*面向集合存储,易存储对象类型的数据。模式自由。*支持动态查询。*支持完全索引,包含内部对象。*支持查询。*支持复制和故障恢复。*使用高效的二进制数据存储,包括大型对象(如视频等)。*自动处理碎片,以支持云计算层次的扩展性。*支持 Gol...阅读全文

博文 2019-08-08 10:33:16 Overonenewsi

Go 开发关键技术指南 | 为什么你要选择 GO?(内含超全知识大图)

导读:从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的问题,最后回到 Go 如何解决这些问题,为大家提供 Go 开发的关键技术指南。我们将以系列文章的形式推出《Go 开发的关键技术指南》,共有 4 篇文章,本文为第 1 篇。 Go 开发指南大图 Overview 该指南主要讨论了服务器领域常见的并发问题,也涉及到了工程化相关的问题,还整理了 C 背景程序员对于 Go 的 GC 以及性能的疑问,探讨了 Go 的错误处理和类型系统最佳实践,以及依赖管理的难处、接口设计的正交性,当然也包含我们在服务器开发中对于 Go 实践的总结,有时候也会对一些有趣的问题做深度的挖掘,列出了 Go 重要的事件和资料集合,以及 Go2 的进展和思考。 以下是各个章节以及简介: About the Nam...阅读全文

博文 2019-12-20 14:32:41 阿里云云栖号

go微服务框架go-micro深度学习(三) Registry服务的注册和发现

服务的注册与发现是微服务必不可少的功能,这样系统才能有更高的性能,更高的可用性。go-micro框架的服务发现有自己能用的接口Registry。只要实现这个接口就可以定制自己的服务注册和发现。 go-micro在客户端做的负载,典型的Balancing-aware Client模式。 服务端把服务的地址信息保存到Registry, 然后定时的心跳检查,或者定时的重新注册服务。客户端监听Registry,最好是把服务信息保存到本地,监听服务的变动,更新缓存。当调用服务端的接口是时,根据客户端的服务列表和负载算法选择服务端进行通信。 go-micro的能用Registry接口type Registry interface { Register(*Service, ...RegisterOptio...阅读全文

golang数组和切片

1、数组 golang中的数组是一种由固定长度和固定对象类型所组成的数据类型。例如下面: var a [4]int a是一个拥有4个int类型元素的数组。当a一旦被声明之后,元素个数就被固定了下来,在a这个变量的生命周期之内,元素个数不会发生变化。而此时a的类型就是[4]int,如果同时存在一个b变量,为[5]int。即便两个变量仅仅相差一个元素,那么在内存中也占据着完全不同的地址分配单元,a和b就是两个完全不同的数据类型。在golang中,数组一旦被定义了,那么其内部的元素就完成了初始化。也就是时候a[0]等于0。 在golang当中,一个数组就是一个数据实体对象。在golang当使用a时,就代表再使用a这个数组。而在C中,当使用a时,则代表着这个数组第一个元素的指针。 2、切片 lett...阅读全文

博文 2017-12-07 08:04:43 卢春风

大数据行业必须掌握的25个大数据术语

摘要: 如果你初来乍到,大数据看起来很吓人!根据你掌握的基本理论,让我们专注于一些关键术语以此给你的约会对象、老板、家人或者任何一个人带来深刻的印象。 让我们开始吧: 1.算法。“算法”如何与大数据相关?即使算法是一个通用术语,但大数据分析使其在当代更受青睐和流行。 如果你初来乍到,大数据看起来很吓人!根据你掌握的基本理论,让我们专注于一些关键术语以此给你的约会对象、老板、家人或者任何一个人带来深刻的印象。 让我们开始吧: 1.算法。“算法”如何与大数据相关?即使算法是一个通用术语,但大数据分析使其在当代更受青睐和流行。 2.分析。年末你可能会收到一份来自信用卡公司寄来的包含了全年所有交易记录的年终报表。如果你有兴趣进一步分析自己在食物、衣服、娱乐等方面具体花...阅读全文

怎样创建一个RPM包(译文)

文 [how to build RPM](https://access.redhat.com/sites/default/files/attachments/rpm_building_howto.pdf) Author: Chris Negus Editor: Allison Pranger Date: 09/16/2011 译文: #概览 您已经创建了一些要安装在Red Hat Enterprise Linux系统上的软件。现在的问题是,“软件完成后,如何打包该软件以使其他人易于安装和管理?” 答案是将其打包成RPM安装包。 尽管有其他方式,可以将软件打包成特定格式的压缩包(通过压缩包或其他类型的存档文件)通过解压缩的方式安装到Linux 系统,但是将Linux软件打包为RPM,可以为您带...阅读全文

博文 2020-01-12 18:30:58 guoapeng

软件技术-零基础编写响应式登录页面

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】 让网页自动适应电脑、手机等不同屏幕宽度,一套代码多重效果。 上一篇文章:软件技术-零基础Golang编写文件服务器 页面基础 我们改进login.html文件,使用Go Live按钮启动实时预览。 可能需要从Preference-Settings修改"liveServer.settings.root":"/web/",使适合你的$GOPATH下的web文件夹路径。 修改代码为: 阅读全文

让数据库运行在浏览器里?TiDB + WebAssembly 告诉你答案

作者:Max 一直以来都有个梦想: 希望有一个数据库能够弹性扩展(分布式)到成百上千节点的规模,易于学习和理解,可以运行在私有云、公有云、Multi-Cloud、Kubernetes,也能够跑在嵌入式设备(比如树莓派)上,更酷的是也能够直接运行在浏览器里,而且不需要任何浏览器扩展(Extension),变成「口袋数据库」,就像那部电影《蚁人》。 今天,这一切都变成了现实:TiDB 可以直接运行在浏览器本地。打开浏览器,你可以直接创建数据库,对数据进行增删改查。关掉浏览器,一切都消失了,干净绿色环保—— 首先在笔记本浏览器打开 play.pingcap.com(这里用的是 MacOS 上面的 Chrome,不确定其它浏览器是否正常),可能需要几秒来加载页面,然后就能看到熟悉的 Shell 了。...阅读全文

ECS 还是轻量应用服务器,看完评测你就知道了?

摘要: 前言 我是2015年加入的阿里云开发者论坛当版主的,到2017年遇到比较多的问题就是很多新手用户并不会操作 ECS 了,很多对云计算产品不理解的用户甚至还会误解为什么会有一个买了却不能开箱即用的产品。 前言 我是2015年加入的阿里云开发者论坛当版主的,到2017年遇到比较多的问题就是很多新手用户并不会操作 ECS 了,很多对云计算产品不理解的用户甚至还会误解为什么会有一个买了却不能开箱即用的产品。在 2013年前后的时候我记得是那时候万网推出了 轻云服务器 然而仅仅只是实现了资源独享的虚拟主机而已,而云市场服务商提供的应用镜像质量也是良莠不齐。 很显然目前的痛点: 就是买了 IaaS 却不会用 PaaS、SaaS 的自由度不高 ECS 附加功能太多还用不到,...阅读全文

DockOne微信分享(六十四):基于Docker实现DevOps的一些探索

【编者的话】本次分享从DevOps介绍;Docker介绍;基于Docker实现DevOps的优势;Docker化DevOps流水线实例分享等四方面展开。 DevOps介绍DevOps(Deveplopment和Operations的简称),中译为开发运维一体化,可定义为是一种过程、方法、文化、运动或实践,主要是为了通过一条高度自动化的流水线来加强开发和其他IT职能部门之间的沟通和协作,加速软件和服务的交付。 在一个较成熟的软件和服务交付的团队里,就技术层面来说主要分为三个组成部分:开发、测试和运维。DevOps的作用就是将这三个部分紧密的连接起来,提供一条从软件开发到质量保障到技术运营的自动化流水线,加强不同角色之间的沟通和协作,基于用户需求实现软件和服务的快速交付。 "开发的这群傻叉新给的...阅读全文

博文 2017-06-25 16:25:05 EricCheung

密码安全

破解方法rainbow table 1 .攻击者将所有的常见密码进行单向操作,得到最后的结果,然后和数据库的进行对比,就可以得到对应的密码。 2 .尤其是我们使用的哈希算法是开源的,那就更不安全了 密码存储进阶方案 1 .加盐 2 .利用已有的哈希算法进行多次哈希 3 .将第一次得到的值加上一个只有管理员知道的随机串,在进行一次哈希加密 4 .这样就保证了,只要加的盐不会被泄露,即使黑客拿到最后的加密串,也几乎无法推出原来的密码 5 . 专家方案 1 .意增加密码计算所需耗费的资源和时间,使得任何人都不可获得足够的资源建立所需的rainbow table。除非量子计算机出来 2 .算法中都有个因子,用于指明计算密码摘要所需要的资源和时间,也就是计算强度。计算强度越大,攻击者建立rainbow...阅读全文

博文 2019-10-17 20:35:23 aside section ._1OhGeD

云数据库 Redis 版使用教程

课程介绍 云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore 课时列表 • 课时1:Redis总体介绍 • 课时2:pub/sub应用场景与使用接口 • 课时3:如何使用云Redis控制台 • 课时4:实例创建 • 课时5:数据库管理 • 课时6:连接数据库 • 课时7:数据迁移 • 课时8:备份与恢复 开始学习http://click.aliyun.com/m/27849/ ...阅读全文

Bytom设计结构解读

一、引文 设计Bytom 数据结构,组合了许多技术点,如 patricia tree,utxo, bvm, account model,protobuf,sql,memcache 等。本文会对一些技术点做以下两点分析。 Bytom 为什么要采用该技术点? Bytom 如何应用该技术点? 最后介绍综合这些技术点如何实现Bytom。 [patricial tree](http://www.allisons.org/ll/AlgDS/Tree/PATRICIA/) 二、为什么要采用PAT树? •PAT树具有[基数树](https://en.wikipedia.org/wiki... 的特点,内容可快速追踪。 •PAT树具有[merkle树](https://en.wikipedia.org/wik...阅读全文

博文 2018-07-26 16:34:56 比原链Bytom

ECS从[共享型]升级「独享型」

摘要: 云服务器ECS在2016年全面推出独享型服务器家族,提供了提供更好的SLA,更强的带宽,更稳定的计算能力。非常适合对业务稳定性具有高要求的严肃企业场景使用,有效保障核心服务器的性能指标 云服务器ECS在2016年全面推出独享型服务器家族,提供了提供更好的SLA,更强的带宽,更稳定的计算能力。非常适合对业务稳定性具有高要求的严肃企业场景使用,有效保障核心服务器的性能指标。具体细节参见 独享型实例与共享型实例FAQ。 主力的独享规格包含: 通用型 (sn1):处理器与内存资源配比为1:2,高计算资源占比, 适用于Web 前端服务器、数据分析、批量计算、视频编码、高性能科学和工程应用 计算型 (sn2):处理器与内存资源配比为1:4,具有均衡的计算、内存、网络资源, 适...阅读全文

阿里云新一代关系型数据库 PolarDB 剖析

摘要: 本文通过描述关系型数据库发展的背景以及云计算的时代特征,分享了数据库计算力的螺旋式上升的进化理念。并且结合阿里云 RDS 产品的发展路径,阐述了自主研发的新一代云托管关系型数据库 PolarDB 的产品整体设计思想,同时也对一些关键技术点进行了解读。 本文通过描述关系型数据库发展的背景以及云计算的时代特征,分享了数据库计算力的螺旋式上升的进化理念。并且结合阿里云 RDS 产品的发展路径,阐述了自主研发的新一代云托管关系型数据库 PolarDB 的产品整体设计思想,同时也对一些关键技术点进行了解读。 1. 背景 关系型数据库 谈到关系型数据库,在这个知识日新月异的TMT时代,听起来有些“古董”,这个起源于半个世纪以前的IT技术,事实上一直处于现代社会科技的核心,...阅读全文

最简单的教程:在Ubuntu操作系统里安装Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 今天这篇文章咱们就来将Docker安装到Ubuntu上。 1. 由于Ubuntu里apt官方库里的docker版本可能比较低,因此先用下面的命令行卸载旧版本(如果有的话) sudo apt-get remove docker docker-engine docker-ce docker.io 2. 更新apt包索引: sudo apt-get update 3. 执行下列命令行,使apt可以通过HTTPS协议去使用存储库: sudo apt-get install -y apt-tran...阅读全文

博文 2018-10-27 14:34:38 JerryWangSAP

兄弟连区块链入门教程分享区块链POW证明代码实现demo

这里强调一下区块链的协议分层应用层合约层激励机制共识层网络层数据层上 一篇主要实现了区块链的 数据层,数据层主要使用的技术就是对数据的校验,求hash。这里介绍工作量证明POW, POW是属于共识机制的内容。PoW机制中根据矿工的工作量来执行货币的分配和记账权的确定。算力竞争的胜者将获得相应区块记账权和比特币奖励。因此,矿机芯片的算力越高,挖矿的时间更长,就可以获得更多的数字货币。优点:算法简单,容易实现;节点间无需交换额外的信息即可达成共识;破坏系统需要投入极大的成本。缺点:浪费能源;区块的确认时间难以缩短;新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;容易产生分叉,需要等待多个确认;永远没有最终性,需要检查点机制来弥补最终性。目前基于PoW共识机制的数字...阅读全文

博文 2018-10-17 12:34:40 兄弟连区块链培训

简单工厂模式--Golang版本

目录结构:   | -- calculater-simpleFactory     | -- main.go     | -- Calculater     |   | -- Calculater.go main.go package main import ( "calculater-simpleFactory/Calculater" "fmt" ) func main() { numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} opreate := Calculater.NewCalculate("+") sum, _ := opreate.Opreation(numbers) fmt.Println("sum = ", sum) opreat...阅读全文

博文 2020-03-22 22:32:44 韩小禹

Linux有什么不一样?Linux技术学习

Linux的广泛应用,使得更多人来学习Linux这一操作系统,而为什么Linux这么的与众不同呢?是什么让它在发展迅速的互联网行业中大放异彩? Linux 是一款免费的操作系统,也就是说,不论何时何地,只要有需要,相较于其他操作系统,Linux操作系统都是容易安装的。而且不用受购买授权的约束,对所有类型的组装机器和服务器配置的测试也就变的直接了。 Linux 可以实现多用户操作系统,它具有很好的私密性和稳定性,整个团队可以同时从本地或远程登录进行工作,使得团队合作更加和谐和便捷。而且Linux 的构建采用了一些与 UNIX 操作系统相同的技术,而且带有大多数与深度成熟的 UNIX 操作系统相一致的工具,也大大的增加了Linux操作系统的稳定性与安全性。此外,Linux 的发行版还提供了复杂的...阅读全文

博文 2019-11-13 16:31:51 zhouzhou2018

加密货币的本质

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 去年,比特币暴涨,其他币也像雨后春笋一样冒出来,已经有1000多种了。 很多人都在问,加密货币(cryptocurrency)的时代,真的来临了吗?将来会不会人类不再使用美元、人民币,改用加密货币?那么多品种,我应该使用哪一种币?要不要现在就去投资一些? 这些问题的答案,我也想知道,就花了很多时间查阅资料、研究协议。前两周发表的《区块链入门教程》和《比特币入门教程》,是我的学习心得。但是,那两篇教程主要介绍基本概念、探讨协议的可行性,没回答一个根本的问题:加密货币到底是什么? 下面就是我对这个问题的思考。阅读之前,如果你已经了解区块链和比特币,那很好;如果不了解,也没关系,本文不涉及技术,只讨论最基本的原理。 一...阅读全文

go语言能干什么?关于go语言要怎么学习?

Go语言由于自身天生支持并发的特点完美契合当下的互联网环境,所以Go语言自发布之后便迅速风靡全球。 很多朋友可能知道Go语言的优势在哪,却不知道Go语言适合用于哪些地方?Go能干什么? Go语言目前在云计算、容器虚拟化、分布式存储、网络爬虫、运维开发、Web开发、服务端开发、区块链、IoT等领域都有所应用。 服务端开发 以前你使用 C 或者 C++ 做的那些事情,用 Go 来做很合适,例如日志处理、文件系统、监控系统等; 爬虫及大数据 Go语言天生支持并发,所以十分适合编写分布式爬虫及大数据处理; 网络编程 大量优秀的Web框架如Echo、Gin、Iris、beego等,而且 Go 内置的 net/http 包十分的优秀; Paas云平台领域 Kubernetes和Docker Swarm等...阅读全文

博文 2019-11-12 17:30:54 zhouzhou2018

Tikye(TIY)知识科普之技术架构

设计思路考虑到Tikye对于区块链系统的性能、安全等需求远比一般的公有链性能更高,为了保证交易场景下的公开透明,交易各方皆能参与到区块链的共同监管与治理,同时能兼顾高频交易需要较高的TPS,我们设计了一套支持可插拔、可扩展的高性能应用级区块链系统。在下文中,该区块链系统简称Tikye。该系统为开发者提供便捷的SDK工具包,同时还将为外部系统提供可兼容的API接口,基于Tikye的特性解决传统问题。主要依靠智能合约来解决基于Tikye的事务性问题,智能合约在区块链环境中运行,保证了事务执行的可行性、高效性和安全性。为了区块链系统的处理能力,我们通过引入多条平行链组成链路由系统。平行链和主链保持既独立又统一的关系,所有平行链可以拥有自己的超级节点、状态机和原始交易数据,由主链来存储关键数据以及完...阅读全文

博文 2019-09-19 11:02:46 逗币狗

在阿里云上轻松部署Kubernetes GPU集群,遇见TensorFlow

摘要: Kubernetes在版本1.6后正式加入了Nvidia GPU的调度功能,支持在Kubernetes上运行运行和管理基于GPU的应用。而在2017年9月12日,阿里云发布了新的异构计算类型GN5,基于P100 nvidia GPU, 提供灵活强悍的异构计算模型,从基础设施到部署环境全面升级,可有效提升矩阵运算、视频识别、机器学习、搜索排序等处理计算效率。当Kubernetes和GPU在阿里云上相遇,会有什么样美好的事情发生呢? 在阿里云的GN5上部署一套支持GPU的Kubernetes集群是非常简单的,利用ROS模板一键部署,将阿里云强大的计算能力便捷的输送到您的手中。不出10分钟,您就可以开始在阿里云的Kubernetes集群上开始您的Kubernetes+GPU+Tens...阅读全文

作为云计算 2.0 时代的里程碑,云数据库PolarDB 还需要做什么?

随着用户、业务和数据的增长,由于I/O瓶颈(存储和网络)导致的备份、性能、迁移、升级、只读实例、磁盘容量、Binlog延迟等相关问题渐渐显现;过多数据库存储引擎的类型导致的工程效率以及运维成本显著上升,最好有一种通用的产品技术架构能兼顾不同用户场景的需求。针对以上关系型数据库在云托管环境逐渐暴露出一些问题,阿里云将在9月下旬推出自研通用云数据库PolarDB,是国内首个能从根本解决两大痛点的关键里程碑产品。 阿里云PolarDB是国内首个自主研发的通用云数据库,它拥有商业数据库一样的性能,但价格仅为前者的1/10,进一步降低用户的上云成本,大幅度提升OLTP性能,满足用户在业务连续性、在线业务扩展能力、数据安全上的需求,将彻底颠覆商业数据库的暴利时代。 在产品架构上放弃了通用分布...阅读全文

go微服务框架go-micro深度学习(三) Registry服务的注册和发现

服务的注册与发现是微服务必不可少的功能,这样系统才能有更高的性能,更高的可用性。go-micro框架的服务发现有自己能用的接口Registry。只要实现这个接口就可以定制自己的服务注册和发现。 go-micro在客户端做的负载,典型的Balancing-aware Client模式。 服务端把服务的地址信息保存到Registry, 然后定时的心跳检查,或者定时的重新注册服务。客户端监听Registry,最好是把服务信息保存到本地,监听服务的变动,更新缓存。当调用服务端的接口是时,根据客户端的服务列表和负载算法选择服务端进行通信。 go-micro的能用Registry接口 type Registry interface { Register(*Service, ...RegisterOpti...阅读全文

博文 2019-08-01 13:58:39 li-peng

软件技术-Golang零基础开发网站服务器

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】 如何开始一个最简单的Golang项目? 请先参照上一篇文章搭建Golang的vsCode开发环境 项目结构 在$GOPATH目录下一般都要有两个文件夹: 存放编译结果的bin, 存放代码文件的src。 而src文件夹又一般会包含两类代码文件 go get和go install安装的别人的代码,根据来源不同分为github.com和golang.org两个文件夹; 自己手写的代码,放在任意名字的文件夹,比如app文件夹。 我们编写的程序肯定要从某个代码文件开始,我们可以在自己的文件夹下创建app.go或者叫main.go都可以。 Hello World 打开app.go撰写下面内容: package main import ( "fmt" ...阅读全文

博文 2019-03-25 02:34:39 zhyuzh3d

如何更好的使用阿里云资源编排ROS免费教程

课程介绍 资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/ 课时列表 • 课时1:ROS-控制台功能概览 • 课时2:ROS-编写并运行模板 • 课时3:ROS-使用模板参数 • 课时4:ROS-更新资源栈 • 课时5:ROS-使用样例模板部署应用 开...阅读全文

官方教程 A Tour of Go Excercises 我的答案总结及讲解

这两天学完了 A Tour of Go 官方的语法教学,里面有很多的 Excercise(训练题)。希望对大家有用,如果有其他人也写过,并觉得我写的不对的,求教!❤️ Exercise: Loops and Functions 题目 给一个 number x,我们通过 loop 和 function 来找到其平方根 z,即 z² = x tour.golang.org/flowcontrol… 解答 package main import ( "fmt" "math" ) func Sqrt(x float64) float64 { z := x/2 for i:= 0; math.Abs(z*z - x) > 0.0000000001; i++ { z -= (z*z - x) / (2*...阅读全文

博文 2019-07-31 18:05:26 阴明

软件技术-零基础-MD5加密处理和自动跳

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】 如何将用户的密码加密之后再存储? MD5 加密的目的是保护用户的隐私,尤其是一些很敏感的密码,原则上这些密码的明文只能出现在用户电脑上,不能在网络上传输,更不能存储在网站服务器上。 MD5是一种不可逆的加密算法,就是说它可以把用户密码变为一串新字符,而原则上没有任何方法可以把这串新字符再变回去找到用户真实的密码。(但没有什么是绝对的,只是相对来说是这样) MD5总是生成32个英文字符和字母混合的字符串。 前端加密 实际上我们只需要在网页端将用户所有输入的密码都处理一下就可以了,不涉及后端服务器程序,因为用户密码到底是什么格式,对于服务器来说都是一样的存储、验证。 需要为前端相关页面register.html,login.html,rese...阅读全文

博文 2019-04-03 20:34:38 zhyuzh3d

golang中接口的面向对象(二)--继承

在上一节 golang中接口的面向对象(一)--多态特征中,我们学习了galang中的多态,参考https://blog.51cto.com/91235688/2499405 继承那么这一节中,我们继续用上一节中的例子,来学习继承。我们修改上一节中的示例代码,如下所示:type geometry interface { sayHi() //geometry 只有一个方法sayHi()}type rect struct { geometry //这里使用匿名字段,使得rect 继承了 geometry 类型 len, wid float32}func (r rect) sayHi() { //这里rect 作为继承者,重写了sayHi方法 fmt.Println("i am a rect")}...阅读全文

博文 2020-05-30 23:34:00 roddger

go 的程序控制

go 的程序控制大致分成三种 if for case 语句 1、 if 循环 if-else 语句之间可以有任意数量的 else if。条件判断顺序是从上到下。如果 if 或 else if 条件判断的结果为真,则执行相应的代码块。 如果没有条件为真,则 else 代码块被执行。 语法结构 if condition{}else if condition{ }else{ } 定义示列 package main import "fmt" func iftest() { score :=61 if score > 60{ fmt.Println("成绩合格") } else if score >90{ fmt.Println("成绩优秀") }else if score<0 { fmt.Print...阅读全文

博文 2020-01-11 17:33:11 水滴石川1

从零开始的数组,这么设计么是为什呢?

为什么数组要从零开始? 如题,数组第一个元素为什么要从零开始,而不从一开始?感觉这很反人类呀,正常来讲,一个集合的开始,不应该从一吗? 对于这个问题,我觉得可以从以下两方面来考虑。 1设计层面 我们先了解一下数组最基本的结构和寻址方式(即实现方式)。 现在市面上无论是C、Java、PHP,还是Go或者其他编程语言,他们数组的实现方式,应该都是一样的:一段连续的内存。 file 数组在分配内存的时候,我们会知道数组的 开始地址 (PS:在目前下标为零的情况下,也等同于数组的第一个元素的地址) 111.png 因为数组中每个元素的类型都是相同的,所以每种类型所占的内存大小是固定的,因而导致数组中每个元素的所占的内存大小都是相同的 file 由此我们可以得出,数组中每个元素地址的计算公式: // ...阅读全文