• Fastflow - 基于golang的轻量级工作流框架

    Fastflow 是什么?用一句话来定义它:一个 基于golang协程、支持水平扩容的分布式高性能工作流框架。 它具有以下特点: 易用性:工作流模型基于 DAG 来定义,同时还提供开箱即用的 API,你可以随时通过 API 创建、运行、暂停工作流等,在开发新的原子能力时还提供了开箱即用的分布式锁功能 ...
    golang framework Workflow   2022-05-23 14:55
  • Go到底能不能实现安全的双检锁?

    从其他语言转入Go语言的同学经常会陷入一个思考:如何创建一个单例?有些同学可能会把其它语言中的双检锁模式移植过来,双检锁模式也称为懒汉模式,首次用到的时候才创建实例。 ...
    双检锁 指令重排 Golang   2022-05-27 08:26
  • k8s client-go源码分析 informer源码分析(4)-DeltaFIFO源码分析

    k8s client-go k8s informers实现了持续获取集群的所有资源对象、监听集群的资源对象变化功能,并在本地维护了全量资源对象的内存缓存,以减少对apiserver、对etcd的请求压力。Informers在启动的时候会首先在客户端调用List接口来获取全量的对象集合,然后通过Wat... ...
    client-go kubernetes源码解析   2022-05-22 10:33
  • 为什么 Go 语言 struct 要使用 tags

    原文链接:为什么 Go 语言 struct 要使用 tags 在 Go 语言中,struct 是一种常见的数据类型,它可以用来表示复杂的数据结构。在 struct 中,我们可以定义多个字段,每个字段可以有不同的类型和名称。 除了这些基本信息之外,Go 还提供了 struct tags,它可以用来指定 ...
    go 为什么go   2023-03-11 14:13
  • .NET生成MongoDB中的主键ObjectId

    前言 因为很多场景下我们需要在创建MongoDB数据的时候提前生成好主键为了返回或者通过主键查询创建的业务,像EF中我们可以生成Guid来,本来想着要不要实现一套MongoDB中ObjectId的,结果发现网上各种各样的实现都有,不过好在阅读C#MongoDB驱动mongo-csharp-drive ...
    【ASP.NET】 【C#】 【MongoDB】   2023-03-23 23:04
  • 单机Linux下搭建MongoDB副本集-三节点

    前言说明 Linux下安装MongoDB副本集我基本上是一次搭建,几百年不再碰,也记不住具体的命令,偶尔需要搭建都是直接网上找的教程。 有些教程很精简,有些又版本不一样,所以索性我整合下别人的教程,把linux下搭建副本集的步骤记录下并分享出来,希望能够帮到你们。 参考以下文章:https://de ...
    linux mongodb nosql   2023-03-13 16:08
  • DRF的filter组件

    DRF的Filter组件 如果某个API需要传递一些条件进行搜索,其实就在是URL后面通过GET传参即可,例如: /api/users?age=19&category=12 在drf中filter组件可以支持条件搜索。 1. 自定义filter # models.py from django.db ...
    Django   2023-04-23 11:17
  • Django自定义storage上传文件到Minio

    首先新建一个MyStorage.py,自定义Storage类 from io import BytesIO from django.core.files.storage import Storage from django.conf import settings from utils.minioC ...
    django   2023-05-24 14:41
  • Django自定义视图类及实现请求参数和返回参数加解密

    django rest_framework中GenericAPIView配合拓展类mixin或者视图集viewset可以复用其代码,减少自己编写的代码量。下面我要实现自己的视图类,以减少代码量新建一个myView.py from collections import OrderedDict from ...
    django   2023-05-25 09:53
  • 组合搜索组件文档

    组合搜索组件 1. 先展示一下使用效果: 2. 使用方法 第一步: 在views.py中配置和传参 search_group = NbSearchGroup( request, models.TransactionRecord, # 传入表 Option('charge_type'), # 传入ch ...
    Django   2023-04-15 00:14
  • DRF版本控制(源码分析)

    DRF中版本控制的五种情况(源码分析) 在restful规范中要去,后端的API中需要体现版本。 drf框架中支持5种版本的设置。 1. URL的GET参数传递(*) 示例: user/?version=v1 # settings.py REST_FRAMEWORK = { "VERSION_PAR ...
    Django   2023-04-17 00:06
  • Django的message组件(源码分析)

    Django的Message组件(源码分析) 1. 配置 # MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage' # MESSAGE_STORAGE = 'django.contrib.messag ...
    Django   2023-04-30 11:15
  • Golang:将日志以Json格式输出到Kafka

    在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://gith...
    Go   2022.05.17 07:48
  • Golang:手撸一个支持六种级别的日志库

    Golang标准日志库提供的日志输出方法有Print、Fatal、Panic等,没有常见的Debug、Info、Error等日志级别,用起来不太顺手。这篇文章就来手撸一个自己的日志库,可以记录不...
    Go   2022.05.16 07:37
  • golang泛型实现--双hash表

    一、写在前面 现代编程语言一般都提供了hash表的容器, 比如c++的std::hash_map, golang的map底层都使用了hash table, 是什么魔法让hash table在编程中占有一席之地,下面...
    Go 数据结构   2022.05.22 14:55
  • go-micro集成RabbitMQ实战和原理

    在go-micro中异步消息的收发是通过Broker这个组件来完成的,底层实现有RabbitMQ、Kafka、Redis等等很多种方式,这篇文章主要介绍go-micro使用RabbitMQ收发数据的方法和原理...
    Go   2022.05.07 07:19
  • sqlx操作MySQL实战及其原理

    sqlx是Golang中的一个知名三方库,其为Go标准库database/sql提供了一组扩展支持。使用它可以方便的在数据行与Golang的结构体、映射和切片之间进行转换,从这个角度可以说它...
    Go   2022.05.06 07:41
  • go-micro集成链路跟踪的方法和中间件原理

    前几天有个同学想了解下如何在go-micro中做链路跟踪,这几天正好看到wrapper这块,wrapper这个东西在某些框架中也称为中间件,里边有个opentracing的插件,正好用来做链路...
    Go   2022.05.05 07:37
  • DM 是如何处理 DML 的丨TiDB 工具分享

    背景 TiDB 的一键水平伸缩特性,帮助用户告别了分库分表查询和运维带来的复杂度,但是在从分库分表方案切换到 TiDB 的过程中,这个复杂度转移到了数据迁移流程里。TiDB DM...
    Go 大数据 架构   2022.04.28 11:26
  • 类型安全的 Go HTTP 请求

    对 Gopher 来说,虽然我们基本都是在写代码让别人来请求,但是有时候,我们也需要去请求第三方提供的 RESTful 接口,这个时候,我们才能感受到前端同学拼接 HTTP 请求参数的痛苦。 ...
    go go-zero web开发 微服务 Go   2022-05-23 09:17