# Go **Repository Path**: mostshadowless/go ## Basic Information - **Project Name**: Go - **Description**: 中间件原理实践(GO) - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-09-23 - **Last Updated**: 2023-11-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 中间件原理实践(Go) ### 轻量级服务器框架-Zinx实践 > 基于Golang编写的TCP服务器框架(基于Zinx框架作者——刘丹冰Aceld开源的课程) ### 分布式锁 >在分布式系统中,由于分布式系统多线程、多进程并且分布在不同的机器上,这将使原单机并发控制锁策略失效,为了解决这个问题需要一种不依赖JVM的互斥机制来控制共享资源的访问,这就是分布式锁的由来。 ### 时间轮算法 >时间轮是一种利用线程资源进行批量化、高效率调度的调度模型。把大批量的调度任务全部都绑定到同一个调度器上面,使用这一个调度器来进行所有任务的管理 、触发以及运行。能够高效地管理各种延时任务、周期任务、通知任务。 ### 消息队列 >利用redis stream数据结构实现mq,stream中保证了消息的持久性,引入了消费组和消费端ACK的功能,具备消息投递的可靠性。 ### 布隆过滤器 >布隆过滤器由一个bitmap和一系列随机映射函数组成,它不存放数据的明细内容,仅仅标识一则数据是否存在的信息,其最大的优点是拥有很良好的空间利用率和查询效率。 ### 动态路由(Radix Tree) > 在路由匹配时,除了需要根据请求路径进行精确匹配之外,还有着模糊匹配的诉求. 比如请求路径末尾 '/' 符号的增减、通配符 '*' 的使用等,radix tree 自身的特性能够很好的满足上述需求。