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

Erlang 之父 Joe Armstrong 逝世,如何评价他在计算机领域的贡献?

[转载]https://juejin.im/post/5ccd596e51882540d472aa54 Make it work ,then make it beautiful,then if you really,really have to,make it fast. 90% of the time,if you make it beautiful,it will already be fast. So really,just make it beautiful. Joe Armstrong 不必说 erlang 与 OTP, 光他的论文《面对软件错误构建可靠的分布式系统》就足以载入史册——领先现在几十年,提出了OOP 等思想本质上不是并发的正确处理方法。 Joe Armstrong 在...阅读全文

博文 2019-10-21 18:33:03 aside section._1OhGeD

如何成为一名大数据工程师?成都大数据培训

数据工程师都做什么?数据工程师负责创建和维护分析基础架构,该基础架构几乎可以支持数据世界中的所有其他功能。他们负责大数据架构的开发、构建、维护和测试,例如数据库和大数据处理系统。大数据工程师还负责创建用于建模,挖掘,获取和验证数据集合等流程。因此,数据工程师需要掌握通用脚本语言和工具,利用和改进数据分析系统,不断提高数据数量和质量。 数据工程师与数据科学家有何区别虽然在技能和角色方面存在一定程度的重叠,但这两个职位正日益分化为不同的角色。数据科学家更关注与数据基础设施的互动,而不是去创建和维护数据基础设施。通常负责进行市场和业务运营研究,以确定趋势和关系,数据科学家用各种复杂的机器和方法与数据进行交互并对其采取行动。数据科学家通常精通机器学习和高级数据建模,因为他们希望借助高级数学模型和算法...阅读全文

golang-raft算法理论与实践

前言 我计划写raft的一系列文章,包含从理论到代码实践,此文章依托于MIT的研究生课程。 背景 raft 是一种分布式的共识算法,其目的是要实现多个节点集群的容错性,一致性从而能够构建大规模的软件系统。 在raft之前,比较有名的是Paxos。但是paxos难于理解。 raft的诞生是为了让共识算法更容易理解,在工程上更容易实现。 和其他的共识算法不同的是,raft具有下面的特点: leader:raft中会有一个领导者具有超级权限,可以把自己的log 复制到其他节点中。 leader election: raft每隔一段随机的时间就会进行leader的选举 raft允许集群配置变化时正常运行。 Replicated state machine 状态机是分布式系统中的一个重要概念,任何一个...阅读全文

博文 2020-02-12 07:32:56 唯识相链2

老司机带你用 Go 语言实现 Raft 分布式一致性协议

老司机带你用 Go 语言实现 Raft 分布式一致性协议  随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。   为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。任何一个分布式系统都无法同时满足 Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性)这三个基本需求,最多只能满足其中两项。 但是,一个分布式系统无论在 CAP 三者之间如何权衡,都无法彻底放弃一致性(Consistency),如果真的放弃一致性,那么就说明这个系统中的数据根本不可信,数据也就没有意义,那么这个系统也就没有任何价值可言。所...阅读全文

博文 2017-03-23 08:20:49 chauncy

算法:时间复杂度+二分查找法(Java/Go/Python)实现

导读 曾几何时学好数据结构与算法是我们从事计算机相关工作的基本前提,然而现在很多程序员从事的工作都是在用高级程序设计语言(如Java)开发业务代码,久而久之,对于数据结构和算法就变得有些陌生了,由于长年累月的码砖的缘故,导致我们都快没有这方面的意识了,虽然这种论断对于一些平时特别注重学习和思考的人来说不太适用,但的确是有这样的一个现象。 而在要出去面试找工作的时候,才发现这些基础都快忘光光了,所以可能就“杯具”了!实际上,对于数据结构和算法相关的知识点的学习,是程序员必须修炼的一门内功,而要掌握得比较牢靠除了需要在写代码的时候时刻保持这方面的意识外,也需要日常的训练,换一个目前比较流行的词叫刻意练习。 这就像打乒乓球一样,虽然大家都会打,但是要打得好,打出水准就得经常训练。而学习算法的过程也...阅读全文

博文 2020-02-03 23:33:10 wx5d9ed7c8443c3

Go 中的一些问题

go 语言中的分段栈和连续栈 go并发模式管道和取消,主要讲解channel,非常好,首先会好好地研究一下 go tips在做什么 go 中的package ‘os’ go 中的 package ‘syscall’ 计算机软件中,只有读真正的代码,才会得到真正的理解,否则是永远不会理解的。看书就看经典书,看代码就看经典的代码, 写代码就要重构,就要不停地检查,这样子才是永恒的进步之道。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

博文 2016-04-18 20:00:06 xiaorenwuzyh

GO语言学习--tcp服务器、客户机的通信

一、服务器设计 1. 注册端口; 2. 监听端口 —— ListenTCP( ); 3. 接收请求 —— Accept( ); 4. 接收数据 或 发送数据 —— Read( ) 或 Write( ); 二、客户端设计 1. 获取地址; 2. 发送请求; 3. 接收数据 或 发送数据 —— Read( ) 或 Write( ); 4. 关闭连接 —— Close( )...阅读全文

字节跳动广告平台实习 & 应届生招聘JD

后台开发实习生(可转正) - 核心广告系统职位描述1、广告团队是公司核心团队,负责商业变现,为公司年度收入目标而奋斗; 2、负责字节跳动广告系统,代理商系统, 审核系统等平台开发; 3、完善对内对外广告API的实现; 4、表现优秀有转正机会。职位要求1、计算机相关专业,本科及以上学历,硕士生优先; 2、良好的算法、数据结构基础,熟悉计算机操作系统、网络、数据库等课程,至少熟悉一门编程语言; 3、要求有后台开发的实习/项目经验,热爱后台技术,熟悉mysql,memcache,redis,消息队列等常用WEB组件者优先; 4、有大规模系统开发经验者优先,熟悉计算广告,或者有相关开发经验者优先。前端开发实习生(可转正) - 核心广告系统职位描述1、广告团队是公司核心团队,负责商业变现,为公司年度收...阅读全文

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

用了30天整理的一些GO语言学习资料,2019请你加油

因为极其优秀的并发性能,Google的亲儿子Go语言站上了风潮之巅。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发,不得不说,Golang早已深入人心。而对于一个没有历史负担的新项目,Golang或许就是个不二的选择。抛开已经被讲烂了的语言特性,学习一门新语言,特别一门刚刚被业界认可、接受并被广泛使用的新语言,对于每一个技术人都是一个很好的机会:说不定你就因此站上风口,成为什么GO语言布道师了呢?从年初开始,我一直在研究Go语言的入门学习,整理了一些资料,分享给大家。1.官方文档https://golang.google.cn/doc/第一个当然首推...阅读全文

博文 2019-06-29 01:32:41 Linux小小咖

[北京] [滴滴云] 招聘Golang高级后端研发工程师

>职位描述 ###### 参与滴滴基础架构业务系统的设计、研发工作,提升滴滴产品稳定性; ###### 有良好的拆解需求,分析问题能力; ###### 进行相关产品的技术文档编写,方案设计; ###### 学习研究业界先进技术,保持技术进步。 >任职要求 ###### 本科及以上学历,计算机相关专业,两年以上服务端研发经验; ###### 深入理解计算机原理,有扎实的数据结构和算法基础; ###### 深入理解linux系统及其原理,熟悉TCP/IP、HTTP协议以及网络编程; ###### 良好的编码和文档习惯,对代码美感的追求孜孜不倦,并能持续的关注和优化自己做的项目; ###### 精通Go/C/C++/Python等至少一...阅读全文

以太坊源码分析—交易的执行

前言 以太坊是一个运行智能合约的平台,被称作可编程的区块链,允许用户将编写的智能合约部署在区块链上运行。而运行合约的主体便是以太坊虚拟机(EVM) 区块 交易 合约 区块链由区块(Block)组成,而区块中打包一定数量的交易(Transaction),交易可能是一个单纯的转账操作,也可能是调用一个智能合约,无论是哪一种,EVM在运行(excute)交易时都会创建合约(Contract) 外部账户 合约账户 以太坊中的账户有两类 外部账户 由账户持有人的私钥控制的真实存在的账户 合约账户 由合约代码控制,保存着合约代码 一笔交易包含发送方(sender) 接收方(recipient) 和数额(value) 三要素。发送方将一定数额的ETH转移到接收方的账户,这里的转账交易中,接收方是外部账户。...阅读全文

博文 2018-11-13 19:34:39 187J3X1

一行 Golang 代码引发的血案——全网最详细分析 2020 年 3 月 Let’s Encrypt 证书吊销事故

Let's Encrypt 作为一家免费提供 SSL 证书的组织,旨在推进互联网向更安全的 HTTPS 迁移,受到了大量小型网站的支持和认可。然而很多站长在 3 月 3 日收到了来自 Let's Encrypt 名为 ACTION REQUIRED: Renew these Let's Encrypt certificates by March 4 的邮件,警告站长尽快更新证书。那么为什么需要更新证书?不更新证书有什么危害?如何更新证书?本文将为读者分析本次 Let's Encrypt 证书漏洞事故的真相。 一、事故概览 首先摘录一下邮件中的部分内容: We recently discovered a bug in the Let's Encrypt certificate authorit...阅读全文

博文 2020-03-19 17:33:07 思否编辑部

HEXA 机器人怎么玩?本次推荐的 Skill(机器人应用)给了大家一些小思路

这次的Skill精选,没有像上次推荐的Light Chaser和Fire Marshall Rob一样,具备类似追寻光线、预警火情这样实际应用的功能。但从可玩性来说,今天我们推荐的两款工具类Skill却不输前两者,经过今天的介绍,你或许会对HEXA的玩法又多一些想象。 下面正式进入今天的Skill精选: ![输入图片说明](https://static.oschina.net/uploads/img/201712/13111218_JGB6.png "在这里输入图片标题") **Simulator Kit** 熟悉HEXA的朋友应该知道,HEXA在开发方面的友好程度,除了在系统方面降低了机器人爱好者和开发者学习和探索机器人开发的门槛外,对于小白用户,我们还提供了3D...阅读全文

go语言学习笔记之冒泡排序的实现

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 算法原理 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 算法稳定性 冒泡排序是就地排序,且它是稳定的。 算法描述 go语言 package bubblesort //冒泡排序 func BubbleSort(values []int) { flag := true for i := 0; i < len(values)-1; i++ { flag = true for...阅读全文

博文 2015-06-17 23:01:47 wuwenxiang91322

golang panic: non-positive interval for NewTicker

image.png 原因:随机的时间为0 package main import ( "fmt" "math/rand" "sync" "time" ) func ReadLock(ch chan struct{}, lock sync.RWMutex) { fmt.Println("wait Rlock") lock.RLock() fmt.Println("start Rlock") rand.Seed(time.Now().UnixNano()) randNum := rand.Intn(2) t1 := time.NewTicker(time.Second * time.Duration(randNum)) for { select { case <-t1.C: fmt.Printl...阅读全文

博文 2020-04-05 20:32:50 anthonydan

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

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

[上海|15-30K]开发者工具平台招募全栈开发者/机器学习实习生

### 关于我们: 程序员客栈(https://proginn.com),程序员的经纪人,技术众包领域的领军者。 相关报道:http://36kr.com/p/5070975.html 基于业务的发展,开发者们对于开发工具的需求也越来越迫切,因此我们希望能邀请有志于为程序员开发出优秀工具产品的你来加入我们,和我们一起打造出一个业内领先的开发工具平台! ### 需要人才 -------------- #### 1 - (全职)全栈工程师,15-30K,上海 工作内容: 1. 负责新产品架构设计,功能开发 2. 维护完善现有的系统功能 岗位要求: 1. 理工科专业(物理/数学/计算机相关专业优先),本科以上学历, 3 年以上代码编写与...阅读全文

【上海】蝴蝶互动招聘GOLANG开发工程师

#### **岗位职责** 1. 负责公司基础平台建设,包括账号/认证/支付等系统 2. 负责平台网站开发 3. 搭建平台监控体系 #### **岗位要求** 1. 计算机相关专业本科及以上学历,3年以上相关工作经验 2. 计算机基础扎实,有较好的数据结构与算法功底,熟悉Linux系统和网络编程 3. 熟练掌握Golang,有实际项目开发经验 4. 熟悉NoSQL技术(redis,memcached等) 5. 有Web安全意识,熟悉常见的Web安全问题以及防御措施 6. 具有分布式/高性能系统设计和开发经验者优先 **简历请投至** wangling01@hoodinn.co...阅读全文

2018.9.11 从0到1,你准备好了吗?

最近两天又接到一个任务,给一家区块链公司招聘go开发的人才。于是便在一些社区发了招聘帖子,没多久就有人加我微信,立即通过了。对方是一位前端开发工程师,对区块链感兴趣,想转做区块链后端开发,对于这样的转行跳槽者,我觉得她是有勇气的。她跟我了解了区块链行业的人才需求以及薪酬情况,我也一一解答向她了。她还问了我一个问题:你们招区块链培训机构出来的人么?我说:这个和培训机构没关系的,主要看你自己的技术功底的,不过我个人觉得区块链培训机构,目前应该都不是很成熟的,不太建议你去,大部分不太靠谱。她还和我说,听培训机构说有很多hr跟他们要人。我第一感觉就是她被这些机构忽悠了,区块链技术处于起步阶段,大家都还在摸索,并没有完全成熟的模式,他们这些机构哪能一下子掌握呢?这些都是要靠实践才行的,不是去短时间培训...阅读全文

2018.8.30你是这些公司青睐的人才吗?

最近一个案例引发了我对区块链公司用人要求的思考。一周前推荐了一位我认为不错的候选人,985院校计算机专业硕士学历,两年工作经验,毕业后一直在一家知名的互联网公司上班,技术也比较扎实,近期两个月在持续关注区块链并看好区块链行业,想趁年轻进入这个行业,看看有没有更好的发展机会。他的条件不错,我帮他推荐了业内三家不错的区块链公司。当初拿到他的简历时,我挺满意的,认为他很大概率上会拿到这几家公司的offer,因为之前操作过类似的case,这种背景的人一般都会被offer。等待了一周,结果却在我的意料之外。那么问题到底出现在哪里呢?我这几天一直在思考。直到今天和一位区块链公司的招聘聊天中她的一句话提醒了我:请尽量帮我找资深一点的人吧,要来了就能干活的那种,薪资不是问题,都能谈。从去年年底到现在,半年多...阅读全文

软件技术-零基础Golang编写文件服务器

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】 当用户请求一个网页的时候,如何让服务器把网页文件发送给用户? 文件服务器 首先我们要知道,用户在浏览器中看到的页面其实就是一个.html文件,就是我们上一篇文章时候撰写的...代码。 但我们最初用Golang写的服务器只是简单返回Hello world!字符串,而不是文件。所以,正确的做法是: 让Golang读取硬盘上的文件内容,然后发送给用户。 这就是文件服务器要干的事情,你要login.html页面,我就给你login.html文件。 在Golang里面,已经提供了快速建立文件服务的功能,就是http.FileServer方法,但是首先要知道我们的web文件夹放在哪里。 获取当前文件路径 在Gola...阅读全文

博文 2019-03-27 02:34:38 zhyuzh3d

【go共识算法】-Raft

介绍 Raft 状态 一个 Raft 集群包含若干个服务器节点;通常是 5 个,这允许整个系统容忍 2 个节点的失效,每个节点处于以下三种状态之一: follower :所有结点都以 follower 的状态开始。如果没收到 leader消息则会变成 candidate状态。 candidate:会向其他结点“拉选票”,如果得到大部分的票则成为leader。这个过程就叫做Leader选举(Leader Election)。 leader:所有对系统的修改都会先经过leader。 Raft 一致性算法 Raft通过选出一个leader来简化日志副本的管理,例如,日志项(log entry)只允许从leader流向follower。 基于leader的方法,Raft算法可以分解成三个子问题: L...阅读全文

博文 2018-10-10 20:34:39 jincheng828

程序员的自我修养 IO/CUP密集型线程

有关进程线程协程的概念在上一篇文章 golang协程为什么比线程轻量https://www.jianshu.com/p/dd4a480a1410已经解释,有需要的同学可以查看。 多进程与单进程相比的优势: 1.某个操作可能会陷入长时间等待,等待的线程会进入睡眠状态,无法继续执行。多线程执行可以有效利用等待时间。典型的例子是等待网络响应,这可能要花费数秒甚至数十秒。 2.某个操作(常常是计算)会消耗大量的时间,如果只有一个线程,程序和用户之间的交互会中断。多线程可以让一个线程负责交互,另一个线程负责计算。 3.程序逻辑本身就要求并发操作,例如一个多端下载软件(例如Bittorrent) 4.多CPU或多核计算机,本身具备同时执行多个线程的能力,因此单线程程序无法完全全面地发挥计算机的全部计算能...阅读全文

博文 2019-08-04 17:32:39 one_zheng

Hyperledger Fabric 1.2系列:1. 环境准备

简介 当前主机信息: Ubuntu16.04 x86_64 root@JDu4e00u53f7:~# uname -a Linux JDu4e00u53f7 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 我们需要准备的环境有: cURL Docker Compose Docker Golang Nodejs 安装 安装cURL sudo apt-get install curl //Ubuntu系统一般默认会安装 安装Docker Hypreledger Fabric1.2 要求Docker的版本最低为 Docker 17.06.2-ce 安装方法请参考:...阅读全文

博文 2018-07-31 19:34:47 空白格灬

为何专注于流媒体领域?PPIO 技术揭秘续篇

在各种音视频应用充斥着市场的时候,毫无疑问,流媒体领域将会非常适合区块链技术进行场景落地。在上一篇文章中,我们主要讨论了 PPIO 的 PCDN 架构,接下来将介绍 PPIO 的中 P2SP 的下载逻辑和 IaaS 层的流量计数。 下载逻辑 上图为 PPIO 的 CDN 和 P2SP 的传输架构图。这里将会重点讲解 PPIO 中 P2SP 的下载逻辑,它主要分三个部分,Buffer 管理,下载状态机,和下载算法。接下来会对这三部分一一解释。 Buffer 管理 Buffer 管理,即理解为本地设备管理着资源情况,从而决定需要下载的 Piece 的优先级。Buffer 管理也是和实际应用场景是相关的,对于流媒体来说,存在一个视频播放位置,播放位置附近的内容就是紧急内容,该内容则会被优先下载。 ...阅读全文

Go语言==接口(interface)

7. 接口(interface) 接口本身是调用方和实现放均需要遵守的一种协议,按统一方法命名参数类型和数量来协调逻辑处理。Go语言中使用组合实现对象特性的描述,对象内部使用结构体内嵌组合对象应具有的特性,对外通过接口暴露能使用的特性。Go语言的接口设计是非入侵式的,开发者无需知道哪些类型被实现。而接口实现者只需要知道实现的是什么样子的接口,但无需指明实现哪一个接口。编译器知道接口应该由谁来实现。 非入侵式的设计让接口与实现者真正解耦。编译速度提高。 1.声明接口 + 接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式、类型及结构 ``` //1.1 接口声明格式 //每个接口类型由数个方法组成 type 接口类型名 interface { 方法名1(args[]) 返回值列表1 方法...阅读全文

用 Go 语言实现一个 telegram 的 bot - 成功复读

telegram bot(复读机) 尝试 用 Go 语言做了一个 telegram 的 bot . 用来简单实现对话(复读)。 获得 telegram bot token 和 BotFather 交谈即可中途需要设置一下名字和查找路径 go get 首先获取 api 包 go get -u github.com/go-telegram-bot-api/telegram-bot-api code package main import ( "log" "os" "github.com/go-telegram-bot-api/telegram-bot-api" ) func main() { bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_A...阅读全文

博文 2019-07-26 19:02:37 yhyddr

实现Raft协议:Part 0 - 介绍

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

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

图解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 代码仔

兄弟连区块链入门教程以太坊源码分析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 兄弟连区块链培训

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

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

怎样创建一个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文件夹路径。 修改代码为: 阅读全文

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

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

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

云数据库 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

最简单的教程:在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

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

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

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

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

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

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

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

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

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

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