2026年5月6日

go基础第六篇:sync包

摘要: sync.WaitGroup 如果一个任务可以分解成多个子任务,且各子任务之间没有依赖,那么就可以用sync.WaitGroup,并发处理每个子任务,等到全部子任务都执行完毕后,再进行下一步处理。 func main() { var wg sync.WaitGroup wg.Add(3) go ha 阅读全文

posted @ 2026-05-06 14:31 koushr 阅读(2) 评论(0) 推荐(0)

2026年4月30日

doris脚本

摘要: partition by distributed by date_trunc 将datetime按照指定的时间单位截断,即保留指定单位及更高层级的时间信息,将低层级的时间信息清零。 如select date_trunc('2010-12-02 19:28:30', 'hour'),返回'2010-1 阅读全文

posted @ 2026-04-30 14:31 koushr 阅读(3) 评论(0) 推荐(0)

2026年4月29日

es

摘要: 1、es集群有几种角色,分别是什么作用? es集群有三种角色,coordinator、master和data。 coordinator节点作用是请求分发、结果聚合、排序。请求分发:客户端直连coordinator,coordinator负责把请求转到对应的data节点上。结果聚合:聚合查询的话,先在 阅读全文

posted @ 2026-04-29 10:12 koushr 阅读(4) 评论(0) 推荐(0)

2026年4月27日

es语法

摘要: 创建索引(指定settings + mappings): 创建一个2个副本3个分片的索引,名字是user,有以下字段: integer类型的age,keyword类型的name,keyword类型的gender,text类型的desc,date类型的birthday(格式要求型如2026-04-28 阅读全文

posted @ 2026-04-27 22:53 koushr 阅读(5) 评论(0) 推荐(0)

2026年4月8日

veo ride

摘要: 面试时间:2026年3月26日线上一面,2026年3月31日线上二面,2026年4月7日线下连续三轮技术面。MD,一共五轮技术面,不知道的还以为在面试董事长呢。 面试结果:线下第三轮挂。 线上一面做了算法题,不考虑时间复杂度。 线下第二轮面试时做了算法题,考虑时间复杂度。 MySQL事务的ACID分 阅读全文

posted @ 2026-04-08 22:38 koushr 阅读(4) 评论(0) 推荐(0)

2026年4月5日

nacos

摘要: 作为注册中心,nacos默认使用客户端主动上报心跳,服务端如果长时间没收到某一个实例的心跳,则会先标记此实例为不健康,之后再剔除该实例。服务启动时,要调用nacos的注册接口(/nacos/v1/ns/instance),入参ephemeral要设为true,表示这是临时实例,需要心跳。客户端会定期 阅读全文

posted @ 2026-04-05 19:56 koushr 阅读(4) 评论(0) 推荐(0)

2026年4月3日

枫叶互动

摘要: 面试岗位:push中台Golang开发工程师,面试时间:2026年4月3日,面试结果:一面挂。 es如何与其数据源保持数据一致性? goroutine泄露如何定位? mongodb副本集和分片集群分别用于什么场景? 阅读全文

posted @ 2026-04-03 23:18 koushr 阅读(9) 评论(0) 推荐(0)

2026年3月31日

极光矩阵

摘要: 面试时间:2026年3月31日,面试结果:一面挂。 注册中心选型。 zookeeper、nacos 是ap还是cp?redis是ap还是cp?如何提高es的写入速度? redis string底层结构,是c语言的,还是自己实现的? 阅读全文

posted @ 2026-03-31 14:36 koushr 阅读(12) 评论(0) 推荐(0)

2026年3月26日

富途

摘要: 面试岗位:增长业务Go后端开发工程师(用户全生命周期平台管理),面试时间:2026年3月26日,面试结果:一面挂。没有算法题,自己感觉自己答的像坨屎。 1、点赞模块用的zset,score值相同怎么办? zrangebyscore key min max [withscores] [limit of 阅读全文

posted @ 2026-03-26 15:15 koushr 阅读(10) 评论(0) 推荐(0)

2026年3月24日

移卡科技

摘要: 面试时间:2026年3月23日,面试结果:一面挂。 面试评价 : 1、项目规模小,工作经验主要表现在业务实现上,对系统容灾、稳定性优化缺乏相关经验 2、常用组件有一定了解,但是不够深入。 面试题: 1、支付单过期时间是多久?支付单主动查单怎么做的? 2、延迟消息队列的选型。 如果消息队列只用于削峰填 阅读全文

posted @ 2026-03-24 10:46 koushr 阅读(6) 评论(0) 推荐(0)

2026年3月23日

nginx高可用

摘要: 通过keepalived维护一个vip,即虚拟ip。域名解析到这个vip上。 阅读全文

posted @ 2026-03-23 15:26 koushr 阅读(4) 评论(0) 推荐(0)

k8s第一篇:k8s集群架构组件

摘要: k8s集群节点分为Master节点和Worker节点。Master节点又被称为控制面,Worker节点又被称为数据面。 Master节点有4个组成部分: API Server,集群唯一入口,提供REST API,负责认证、鉴权、准入控制。 Scheduler,根据资源情况和调度策略将Pod调度到合适 阅读全文

posted @ 2026-03-23 10:46 koushr 阅读(4) 评论(0) 推荐(0)

2026年3月21日

架构设计第二篇:支付模块架构设计

摘要: 支付模块要解决的问题 用户发起支付 系统创建支付单 调用第三方支付渠道 接收支付结果通知 同步支付状态给订单模块 退款、对账、补单、风控 可分为如下子模块: 1、支付网关层。给上游的订单系统提供统一接口,如创建支付单接口、查询支付状态接口、申请退款接口、查询退款状态接口。 2、支付核心服务。负责支付 阅读全文

posted @ 2026-03-21 15:05 koushr 阅读(70) 评论(0) 推荐(0)

2026年3月20日

可观测性体系设计第一篇:可观测性体系基本概念

摘要: 可观测性包括三个部分:指标(metrics)、日志(log)和链路追踪(tracing)。 我们项目基于Prometheus+Grafana搭建监控体系,主要监控接口的QPS、延迟、错误率,以及Go Runtime指标,如goroutine数量、gc耗时等。通过AlertManager实现告警,按P 阅读全文

posted @ 2026-03-20 11:36 koushr 阅读(4) 评论(0) 推荐(0)

2026年3月19日

架构设计第一篇:点赞模块功能设计

摘要: 内容类app的点赞功能设计 点赞功能即用户对内容点赞,点赞后用户可以看到该内容最新的点赞数。用户可以查询自己的点赞列表,可以查看内容的点赞列表。 level1:用户对内容点赞时,往数据库中插入一条记录。取消点赞时,删除此条记录。 表结构是:id、user_id(用户id)、content_id(内容 阅读全文

posted @ 2026-03-19 17:39 koushr 阅读(63) 评论(0) 推荐(0)

ES高级第一篇:倒排索引

摘要: ES的倒排索引是词到文档列表的映射结构,结合位置、词频、逆文档频率,实现高速的全文搜索和相关度评分,是搜索引擎高性能查询的核心。 ES在索引文档时,text和 keyword类型字段会建立倒排索引,其中text会经过分词用于全文搜索,keyword不分词用于精确匹配;而数值和日期类型使用BKD树结构 阅读全文

posted @ 2026-03-19 13:02 koushr 阅读(86) 评论(0) 推荐(0)

2026年3月18日

山海星辰

摘要: 面试时间:2026年3月17日,面试结果:一面挂。面试时觉得自己答的不错,面试完一查答案感觉自己答的像坨屎。 问题1:channel的分类,使用场景以及底层数据结构。 channel的使用场景: 1、goroutine间通信、任务分发(生产者-消费者模型,一个goroutine作为生产者,只负责往c 阅读全文

posted @ 2026-03-18 10:45 koushr 阅读(27) 评论(0) 推荐(0)

2025年5月15日

pulsar基础第二篇:命令行

摘要: pulsar-admin --admin-url http://xxx:8080 1、tenant管理(租户管理) 查看列表:pulsar-admin tenants list 创建:pulsar-admin tenants create xndm 2、namespace管理 查看某租户的names 阅读全文

posted @ 2025-05-15 23:20 koushr 阅读(122) 评论(0) 推荐(0)

2025年4月28日

pulsar基础第一篇:pulsar安装及基本概念

摘要: 介绍 Apache Pulsar是一款开源的云原生消息流系统,它提供了统一的消费模型,支持消息队列和流两种场景,既能为队列业务提供企业级的读写服务和强一致性保障,又能为流业务提供高吞吐、低延迟。同时,得益于存储、计算分离的云原生架构设计,以及支持大集群、多租户、百万级Topic、跨地域数据复制等关键 阅读全文

posted @ 2025-04-28 11:01 koushr 阅读(182) 评论(0) 推荐(0)

2024年9月15日

redis高阶第一篇:令牌桶算法限流

摘要: 令牌桶算法核心思想是: 1、以恒定速率向桶中添加令牌 2、桶中令牌数有上限,为桶的容量,超过容量后令牌会直接丢弃 3、请求到来时会尝试从桶中取一个令牌,取成功则通过,服务端会处理此请求,否则拒绝。 token_bucket.lua,内容如下: redis.replicate_commands() l 阅读全文

posted @ 2024-09-15 00:43 koushr 阅读(114) 评论(0) 推荐(0)

2024年8月27日

http2.0

摘要: 在nginx中的配置: upstream xxx_service { server host.docker.internal:10003; } server { listen 443 ssl; http2 on; ssl_certificate /path/xxx.com.pem; ssl_cert 阅读全文

posted @ 2024-08-27 17:25 koushr 阅读(39) 评论(0) 推荐(0)

2024年7月27日

gin入参多次获取

摘要: 在middleware层不要用ShouldBind函数绑定body中的参数,因为ShouldBind执行完后,request中body就空了,业务层就拿不到body了。用下面的代码即可,先拿后放。 userIdReq := new(UserIdReq) var err error if c.Requ 阅读全文

posted @ 2024-07-27 18:10 koushr 阅读(50) 评论(0) 推荐(0)

2024年7月22日

docker第二篇:docker安装常用中间件

摘要: 1、mysql docker run --name mysql -h mysql -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=sBL2y7Uuxqyi -e MYSQL_DATABASE=test -p 3306:3306 --restart=always 阅读全文

posted @ 2024-07-22 19:31 koushr 阅读(255) 评论(0) 推荐(0)

2024年7月18日

https

摘要: https是Hypertext Transfer Protocol Secure,超文本传输协议安全,是http over tls。 阅读全文

posted @ 2024-07-18 23:40 koushr 阅读(21) 评论(0) 推荐(0)

2022年9月8日

redis基础第三篇:script、function

摘要: redis执行lua脚本涉及到的命令: 1、eval 语法:eval "脚本" numkeys [key [key ...]] [arg [arg ...]] numkeys是key的个数,redis服务端通过这个参数知悉脚本后面哪些参数是key,哪些参数是arg。在脚本中,通过KEYS[1]、KE 阅读全文

posted @ 2022-09-08 20:05 koushr 阅读(289) 评论(0) 推荐(0)

2021年6月28日

时序数据库

摘要: 时序数据库是专门用于存储和管理时间序列数据的数据库。时序数据库和传统关系库一样,是行式数据库,而不是列式数据库。时序数据库,开源代表是InfluxDB。 InfluxDB采用rust语言编写,占用内存较小。 阅读全文

posted @ 2021-06-28 23:29 koushr 阅读(107) 评论(0) 推荐(0)

2021年5月31日

列数据库

摘要: 行数据库用于OLTP,联机事务处理。而列数据库用于OLAP,联机分析处理。 开源的列数据库有ClickHouse和Druid。 ClickHouse是俄罗斯一家公司开源的,c++语言开发,占用内存较小,docker部署方便。docker run --name clickhouse -e TZ=Asi 阅读全文

posted @ 2021-05-31 22:38 koushr 阅读(118) 评论(0) 推荐(0)

2021年3月11日

go基础第五篇:context

摘要: 1、带取消的context context.WithCancel(parent Context) (ctx Context, cancel CancelFunc) 传入一个父context,返回一个可以手动取消的子context及其取消函数。 我们可以手动调用cancel()函数来取消子contex 阅读全文

posted @ 2021-03-11 11:01 koushr 阅读(124) 评论(0) 推荐(0)

2020年11月16日

IO多路复用

摘要: IO多路复用是一种同步IO模型,旨在实现一个线程可以监视多个文件句柄。一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作。没有文件句柄就绪就会阻塞应用程序,交出CPU。多路是指网络连接,复用指的是同一个线程。 多路复用有三种实现方式: 1、select实现 select仅仅知道有IO发生了, 阅读全文

posted @ 2020-11-16 20:05 koushr 阅读(576) 评论(0) 推荐(0)

2020年10月20日

linux基础第五篇:curl、wget、grep使用

摘要: curl curl -v -X GET http://127.0.0.1:9000/helloWorld curl -v -H "Content-Type:application/json" -X POST --data '{"name":"zhangsan"}' http://127.0.0.1: 阅读全文

posted @ 2020-10-20 12:31 koushr 阅读(396) 评论(0) 推荐(0)

2020年9月29日

go基础第四篇:GMP

摘要: 首先明确一点,goroutine不是线程,线程是操作系统管理的,而goroutine其实是Go runtime管理的用户态协程。 一个go程序可以开几十万个goroutine,但操作系统只看到几个线程在跑。goroutine在用户态调度,线程在内核态调度,这就是goroutine为什么能这么轻量。 阅读全文

posted @ 2020-09-29 20:09 koushr 阅读(621) 评论(0) 推荐(0)

2020年9月7日

redis基础第二篇:redis为什么那么快

摘要: 1、纯内存操作。 2、高效的数据结构。 3、使用I/O多路复用模型epoll。 见https://www.cnblogs.com/koushr/p/13986873.html 阅读全文

posted @ 2020-09-07 00:44 koushr 阅读(108) 评论(0) 推荐(0)

2020年9月4日

websocket协议及应用

摘要: websocket协议是一个应用层协议,地位和http协议是一样的。 websocket最主要的作用是实现 <!DOCTYPE html> <html lang="en"> <script> // 向后端发送一个websocket连接请求 let ws = new WebSocket('ws://1 阅读全文

posted @ 2020-09-04 09:57 koushr 阅读(202) 评论(0) 推荐(0)

2020年7月29日

go基础第三篇:利用pprof定位cpu和内存问题

摘要: 在项目的main.go文件中引入 _ "net/http/pprof" 在main函数中加入: go func() { _ = http.ListenAndServe(":6060", nil) }() 保证6060端口能访问到,如在容器中部署的话,别忘了添加端口映射。如果有防火墙的话,别忘了放开端 阅读全文

posted @ 2020-07-29 14:45 koushr 阅读(757) 评论(0) 推荐(0)

2020年7月27日

go基础第二篇:并发之channel

摘要: go不推荐使用共享内存机制,而是推荐使用CSP并发模型机制。 CSP全称是Communicating Sequential Processes,可以翻译成通信顺序进程(Communicating翻译成通信的意思)。简单解释就是,CSP模型由并发执行的实体组成,实体之间通过发送消息进行通信,发送消息时 阅读全文

posted @ 2020-07-27 19:05 koushr 阅读(248) 评论(0) 推荐(0)

2020年5月22日

go基础第一篇:defer、select、range

摘要: defer defer用于延迟函数的调用,每次defer都会把一个函数压入栈中,函数返回前再把延迟函数取出并执行。 题目1: func main() { test1() } func test1() { var aInt = 1 defer fmt.Println(aInt) aInt = 2 re 阅读全文

posted @ 2020-05-22 18:16 koushr 阅读(438) 评论(0) 推荐(0)

2020年3月22日

kafka基本概念

摘要: 1、主题 Kafka将一组消息抽象归纳为一个主题(topic),也就是说,一个主题就是对消息的一个分类。生产者将消息发送到特定主题,消费者订阅主题或主题的某些分区进行消费。 2、消息 消息是Kafka通信的基本单位,由一个固定长度的消息头和一个可变长度的消息体构成。每一条消息称为Record。 3、 阅读全文

posted @ 2020-03-22 13:33 koushr 阅读(358) 评论(0) 推荐(0)

2019年11月26日

grpc第四篇:grpc-go、grpc-java桩代码生成及服务端、客户端开发

摘要: 假设有一个proto文件,内容同https://github.com/grpc/grpc-go/blob/master/examples/helloworld/helloworld/helloworld.proto,如何生成golang或者java的桩代码? 生成golang桩代码: 1、安装pro 阅读全文

posted @ 2019-11-26 20:55 koushr 阅读(368) 评论(0) 推荐(0)

kafka副本同步机制

摘要: kafka的复制机制,既不是单纯的同步复制,也不是单纯的异步复制。同步复制要求所有的follower都复制完,这条消息才会被commit,这种复制方式对吞吐率影响较大。异步复制,数据只要被leader写入log就认为已经commit,这种情况下,如果follower都还没有复制完,leader突然宕 阅读全文

posted @ 2019-11-26 18:44 koushr 阅读(265) 评论(0) 推荐(0)

2019年8月29日

grpc第一篇:What is gRPC

摘要: 本文将介绍gRPC和protocol buffers。gRPC可以利用protocol buffers作为其接口定义语言(Interface Definition Language,IDL)和信息交换格式。 预览 在gRPC中,一个客户端应用可以直接调用不同机器上的服务端应用的方法,就好像调用本地方 阅读全文

posted @ 2019-08-29 11:39 koushr 阅读(215) 评论(0) 推荐(0)

导航