2026年4月8日

veo ride

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

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

2026年4月5日

nacos

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

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

2026年4月3日

枫叶互动

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

posted @ 2026-04-03 23:18 koushr 阅读(5) 评论(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 阅读(8) 评论(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 阅读(7) 评论(0) 推荐(0)

2026年3月24日

移卡科技

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

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

2026年3月23日

nginx高可用

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

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

k8s第一篇:service mesh、sidecar、istio

摘要: 服务发现 阅读全文

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

2026年3月21日

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

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

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

2026年3月20日

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

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

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

2026年3月19日

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

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

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

ES高级第一篇:倒排索引

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

posted @ 2026-03-19 13:02 koushr 阅读(84) 评论(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年12月26日

python第一篇:基础语法

摘要: rt 阅读全文

posted @ 2025-12-26 00:18 koushr 阅读(22) 评论(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 阅读(110) 评论(0) 推荐(0)

2025年4月28日

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

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

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

2025年3月31日

clickhouse第三篇:安装

摘要: SELECT database, table, formatReadableSize(sum(bytes_on_disk)) as disk_space FROM system.parts GROUP BY database, table ORDER BY disk_space DESC; 可以看到 阅读全文

posted @ 2025-03-31 10:09 koushr 阅读(181) 评论(0) 推荐(0)

2025年3月19日

clickhouse第二篇:MergeTree引擎

摘要: https://clickhouse.com/docs/engines/table-engines/mergetree-family/mergetree 新建MergeTree引擎表示例: use default;drop table if exists app_project_click;crea 阅读全文

posted @ 2025-03-19 23:31 koushr 阅读(134) 评论(0) 推荐(0)

clickhouse第一篇:引擎

摘要: https://clickhouse.com/docs/engines/table-engines clickhouse表的引擎决定了: 数据如何存储,写入到哪里,以及从哪里读取; 支持哪些查询,以及如何支持; 并发数据访问; 索引的使用,如果有的话; 是否可以多线程请求执行; 数据复制参数。 cl 阅读全文

posted @ 2025-03-19 22:04 koushr 阅读(60) 评论(0) 推荐(0)

2024年9月15日

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

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

posted @ 2024-09-15 00:43 koushr 阅读(113) 评论(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 阅读(37) 评论(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 阅读(49) 评论(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 阅读(249) 评论(0) 推荐(0)

2024年7月18日

https

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

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

2023年2月17日

分布式事务管理器dtm第四篇:TCC模式

摘要: TCC:T是Try,第一个C是Confirm,第二C是Cancel。 AP向dtm注册全局事务后, 阅读全文

posted @ 2023-02-17 00:00 koushr 阅读(172) 评论(0) 推荐(0)

2023年2月2日

分布式事务管理器dtm第三篇:二阶段消息模式

摘要: 二阶段消息的英文是2-phase message。 AP先向dtm发送prepare消息,如果成功,则继续执行本地事务,如果成功,则继续向dtm发送submit消息。如果成功,则dtm调用各RM的接口,如果成功,则全局事务成功。 时序图如下: dtm服务端处理prepare时,会在dtm_barri 阅读全文

posted @ 2023-02-02 21:00 koushr 阅读(378) 评论(0) 推荐(0)

分布式事务管理器dtm第二篇:saga模式

摘要: 参考官方中文文档:https://dtm.pub/practice/saga.html saga核心思想是把一个长事务拆分多个短事务,由dtm协调,如果每个短事务都成功提交,那么全局事务就正常完成,如果某个步骤失败,则根据相反顺序调用补偿操作。 以转账为例,saga的时序图如下: AP把事务的编排信 阅读全文

posted @ 2023-02-02 20:10 koushr 阅读(335) 评论(0) 推荐(0)

2023年1月31日

分布式事务管理器dtm第一篇:介绍

摘要: https://dtm.pub/guide/start.html dtm全称是distributed transaction manager。dtm是cs架构。 dtm服务端部署: docker run --name dtm -p 36789:36789 -p 36790:36790 -e STOR 阅读全文

posted @ 2023-01-31 11:46 koushr 阅读(762) 评论(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 阅读(286) 评论(0) 推荐(0)

2021年6月28日

时序数据库

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

posted @ 2021-06-28 23:29 koushr 阅读(106) 评论(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 阅读(117) 评论(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 阅读(121) 评论(0) 推荐(0)

2020年11月16日

IO多路复用

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

posted @ 2020-11-16 20:05 koushr 阅读(575) 评论(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 阅读(392) 评论(0) 推荐(0)

2020年9月29日

go基础第四篇:GMP

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

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

2020年9月7日

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

摘要: 1、纯内存操作。 2、高效的数据结构。 3、使用I/O多路复用模型epoll。 见https://chuna2.787528.xyz/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 阅读(200) 评论(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 阅读(755) 评论(0) 推荐(0)

2020年7月27日

go基础第二篇:并发之channel

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

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

2020年5月22日

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

摘要: defer defer用于延迟函数的调用,每次defer都会把一个函数压入栈中,函数返回前再把延迟函数取出并执行。值得注意的是,延迟函数可能有参数。 题目1: func main() { deferFuncParameter() } func deferFuncParameter() { var a 阅读全文

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

导航