Fork me on GitHub
摘要: 前言 俗话说的好,架构从来都不是一蹴而就的,没有什么架构一开始设计就是最终版本,其中需要经过很多步骤的变化,今天我们就从一个最简单的例子来看看,究竟架构这个东西是怎么变的。 我将从一个最简单的聊天室的功能来实现,看看这样一个说起来好像很简单但的功能,我们需要考虑哪些问题。 我使用golang实现,从 阅读全文
posted @ 2019-04-26 22:23 LinkinStar 阅读(3220) 评论(1) 推荐(3) 编辑
摘要: 前言 想要构建一个Linux文件服务器?看看下面几个要求是不是你想要的? 1、只需要单节点部署就够了 2、部署启动简单,下载之后,一键启动,一键关闭 3、不需要任何其他的依赖安装,而且运行时占用内存资源少 4、上传和下载文件速度快,支持的并发高 5、支持yml方式配置 如果以上是你所需要的,那么试试 阅读全文
posted @ 2019-02-25 11:32 LinkinStar 阅读(4458) 评论(14) 推荐(1) 编辑
摘要: 前言 经过当前服务端的洗礼之后,市场出现了一波微服务的热潮。然后就出现了很大的一个问题,无论什么项目,很多人想都不想,都直接开始说我们使用微服务架构来完成吧,用这个、这个组件很简单就能实现。。。而且,现在市场上很多学习教程都直接教授微服务的架构使用。很多学习的人看到这样的趋势就会随大流,就导致了当前 阅读全文
posted @ 2018-05-08 23:07 LinkinStar 阅读(576) 评论(0) 推荐(1) 编辑
摘要: 前言 经过大约两个月的磨蹭,我终于是把设计模式打下来了。 具体详细在:http://www.cnblogs.com/linkstar/category/1087887.html 那么当我学习完成之后,所想到的第一件事,也就是你们标题上面所看到的一样 学设计模式到底有啥用啊?在我学习完成之后为了写这个 阅读全文
posted @ 2017-11-19 15:55 LinkinStar 阅读(16617) 评论(7) 推荐(8) 编辑
摘要: 前言这次我们来说说,有关于etcd原理的一些事情。之前我们已经了解到了etcd是一个分布式的k-v存储,那么它究竟是如何保证数据是如何复制到每个节点上面去的呢?又是如何保证在网络分区的情况下能正常工作下去?raft协议到底是什么?带着这些问题我们继续往下看。raft选举策略我们知道etcd使用raft协议来保证整个分布式的节点网络能正常的运转并且能正确的将数据复制到每个节点上面去。那么什么是raf... 阅读全文
posted @ 2019-06-14 11:12 LinkinStar 阅读(872) 评论(0) 推荐(0) 编辑
摘要: 前言之前说了etcd的简介,命令行使用,一些基本原理。这次来说说现实一点的集群部署和golang版本的客户端使用。因为在实际使用过程中,etcd的节点肯定是需要2N+1个进行部署的,所以有必要说明一下集群的部署。集群部署网上有很多集群部署的教程,有的很复杂,其实对于我们实际使用来说,其实配置并不复杂,下面举例一种最简单的集群配置。(简单到你想不到~)下载https://github.com/etc... 阅读全文
posted @ 2019-06-14 11:12 LinkinStar 阅读(1176) 评论(0) 推荐(0) 编辑
摘要: 前言 我们知道在golang中是存在指针这个概念的。对于指针很多人有点忌惮(可能是因为之前学习过C语言),因为它会导致很多异常的问题。但是很多人学习之后发现,golang中的指针很简单,没有C那么复杂。所以今天就详细来说说指针。 因为博客园发布markdown格式存在问题,请移步http://www 阅读全文
posted @ 2019-06-10 14:57 LinkinStar 阅读(1680) 评论(0) 推荐(0) 编辑
摘要: 前言 你知道etcd吗?随着k8s的使用广泛之后,etcd被非常多的人所知道,同时又因为它可靠的分布式特性被很多人喜欢。所以,我准备有几篇博文来记录一下,从基本使用到线上部署再到原理分析,做一个系列。那么,今天先来说说它的简介与命令行的使用。 简介 ETCD是什么 我个人总结为下面用几个要点: 高可 阅读全文
posted @ 2019-06-10 14:51 LinkinStar 阅读(849) 评论(1) 推荐(0) 编辑
摘要: 前言 网上分析golang中map的源码的博客已经非常多了,随便一搜就有,而且也非常详细,所以如果我再来写就有点画蛇添足了(而且我也写不好,手动滑稽)。但是我还是要写,略略略,这篇博客的意义在于能从几张图片,然后用我最通俗的文字,让没看过源码的人最快程度上了解golang中map是怎么样的。 当然, 阅读全文
posted @ 2019-06-03 19:43 LinkinStar 阅读(1477) 评论(3) 推荐(0) 编辑
摘要: 前言 Golang中有两种类型的锁,Mutex (互斥锁)和RWMutex(读写锁)对于这两种锁的使用这里就不多说了,本文主要侧重于从源码的角度分析这两种锁的具体实现。 引子问题 我一般喜欢带着问题去看源码。那么对于读写锁,你是否有这样的问题,为什么可以有多个读锁?有没有可能出现有协程一直无法获取到 阅读全文
posted @ 2019-05-23 17:56 LinkinStar 阅读(1681) 评论(0) 推荐(0) 编辑
摘要: 错误信息 Initializing gradle... Resolving dependencies... Running Gradle task 'assembleDebug'... /Users/LinkinStar/flutterProject/xxxxxxxxx/android/app/sr 阅读全文
posted @ 2019-05-21 10:21 LinkinStar 阅读(8190) 评论(0) 推荐(0) 编辑
摘要: 前言 不知从什么时候rpc这个东西开始进入我们的视野,一开始做开发的时候经常使用的都是http,偶尔使用的是socket进行通信,使用的是restful的方式。但是,一次偶然的机会你会发现RPC这个东西进入了你的视野,而且由于微服务的兴起然他迅速被人们所知,那么它是什么,又如何使用呢? RPC定义 阅读全文
posted @ 2019-05-20 18:31 LinkinStar 阅读(7750) 评论(0) 推荐(0) 编辑
摘要: 本系列不定期更新,用于记录平常开发过程中出现的一些小问题 Array 类型的值作为函数参数    可以理解slice是对array的一个视图,底层还是array所以会被修改 通过map的ok来确定是否存在key if _, ok := maps["xxx"]; !ok { .... } 修改一 阅读全文
posted @ 2019-05-17 14:03 LinkinStar 阅读(504) 评论(0) 推荐(0) 编辑