使用ETCD官方提供的API实现分布式锁

此文的目的是我在使用etcd分布式锁的一些记录。

阅读全文

数据库操作不仅仅是CURD

在常见的数据库操作中,大多数业务都是CURD,公司业务,所属岗位都有可能造成这个问题,这些属于OLTP应用。

而对应到现在,天级数据量数据库分析操作,替代大部分数据分析的代码,就是OLAP,直接使用sql语句进行逻辑操作。

阅读全文

errgroup,对一组子任务goroutine的同步,错误取消功能

在go中使用goroutine,协程中函数是无法对返回数据直接处理error的。官方库中,有着这么一个收纳子任务error的包:errgroup

errgroup 包为一组子任务的 goroutine 提供了 goroutine 同步,错误取消功能。

阅读全文

rabbitMq知识小结

对rabbitMq概念的一次小结:

基础操作的代码:RabbitMQ Tutorials

阅读全文

训练模型中的引入测试数据集

使用一批训练数据集进行模型训练,需要将训练数据分为:一份训练数据以及一份测试数据。

image-20200617163328931

这样做的目的,也是为了解决模型过拟合,欠拟合的问题。

阅读全文

Go协程调度以及协程运行的问题

Go调度器,Goroutine是如何调度的,Go协程运行在用户态还是内核态?

这篇文章大概是要解决这几个问题,整理起来有点麻烦,其实前面的问题,大神们已经讲了很多了,我主要是碰到其中最后一个问题,这算是一道面试题,很有意思的面试问题,估计很少有人会深入考虑这个问题,嗯,其中也包括了我。。。

刚学习Goroutine时,就应该会看到一些文章说过,goroutine是非抢占式的,或者称之为协作式抢占调度,其运行在用户态。

阅读全文

部署配置中心之Apollo服务

访问策略如图,Apollo整体由三个部件Portalapollo-configserviceapollo-adminservice(占用端口8070, 8080, 8090)组成:

阅读全文

使用etcd搭建OTA服务

快速的部署和更新底层设备需要一个类似于分发二进制文件的平台,根据这个需求,依托于etcd做了一个简略的OTA平台。

ETCD又类似于消息发布和订阅的操作,通过key的目录,可以划分不同的空间,执行不同的任务,可以满足我们的需求。

整体设计如下:

阅读全文

Go context源码学习

context出现在各种组件之中,作为上下文传递数据、控制程序运行。在实际代码coding中,也是经常用到。

阅读全文