Kratos kratos在启动的时候,不同的server由内置的errgroup进行管理,如果app的ctx被cancel,errgroup的ctx也会被销毁 kratos在new的时候,需要传入对应的grpc和http服务,在run时,就是遍历app的servers来实现的,不管是grpc还是http,都是属于kratos的transport模块下,他们都是实现了server的start和stop方法 在 2022-11-22 Kratos #Kratos
GMP调度模型 一、Goroutine 1. 定义 goroutine 是 Go语言中的轻量级线程实现,由 Go 运行时(runtime)管理。Go 程序会智能地将 goroutine中的任务合理地分配给每个 CPU。 goroutine是一个与其他goroutines并行运行在同一地址空间的go函数或者方法。一个运行的程序由一个或者更多个goroutine组成。它与线程、协程、进程等不同。它是一个gorouti 2022-11-02 Go #Go
GC机制 垃圾回收机制 1. Mark & Sweep 两个主要概念: STW: stop the world, GC 的一些阶段需要停止所有的 mutator 以确定当前的引用关系。这便是很多人对 GC 担心的来源,这也是 GC 算法优化的重点。 Root: 根对象是 mutator 不需要通过其他对象就可以直接访问到的对象。比如全局对象,栈对象中的数据等。通过Root 对象,可以追踪到其 2022-10-27 Go #Go
sync包 data race 需要注意代码中得data race行为,这时候需要锁来控制,同时产生了读写,通常我们可以使用go test -race来查询竞争行为。 detecting race conditions with go sync.Pool 1. 概要 Go 并发相关库 sync 里面有一个有趣的 package Pool,sync.Pool 是个有趣的库,用很少的代码实现了很巧的功能。第一眼看 2022-10-08 Go #Go
errgroup 一、errgroup 把一个复杂的任务,尤其是依赖多个微服务rpc需要聚合数据的任务,分解为依赖和并行,依赖的意思是:需要上游a的数据才能访问下游b的数据进行组合。但是并行的意思为:分解为多个小任务并行执行,最终等全部执行完毕。 《待补充》 2022-10-08 Go #Go
简历 个人总结 工作经历:拥有4年软件开发经验,Golang 开发经验 4年,拥有多个完整项目从需求到落地的开发经验,完成微服务的划分、开发,独立完成代码的编辑和重构,熟悉常用开发组件,拥有良好编码规范,熟悉分布式高并发场景下的开发工作,熟悉CI/DI开发流程。 综合能力:拥有全局思维和良好的计划、组织、协调、沟通协调能力,擅长发现和直击问题本质并解决问题,富有团队精神,具备较强的逻辑分析能力和学习能力 2022-09-26 简历 #简历
kafka 一、前言 Kafka已被多家不同类型的公司作为多种类型的数据管道和消息系统使用。行为流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。 2022-09-25 kafka #kafka
mutex 同步锁 当一个 Goroutine(协程)获得了 Mutex 后,其他 Goroutine(协程)就只能乖乖的等待,除非该 Goroutine 释放了该 Mutex。RWMutex 在读锁占用的情况下,会阻止写,但不阻止读。RWMutex在写锁占用情况下,会阻止任何其他Goroutine(无论读和写)进来,整个锁相当于由该 Goroutine 独占同步锁的作用是保证资源在使用时的独有性,不会因为并 2022-07-08 Go #Go
Java面试题 Java基础 1.JDK和JRE有什么区别? JDK 是java开发工具包,提供了java的开发环境 JRE 是java运行环境,为java的运行提供了所需环境 2.== 和 equals 的区别 == 对于基本类型来说是值比较,对于引用类型来说比较的是引用 equals 本质也是==,默认情况下是引用比较,只是在很多类中重写了equals方法,比如String,Integer等把它变成了值比较, 2022-07-01 Java #Java
Keepalived 一、简介 Keepalived一个基于VRRP协议来实现的 LVS 服务高可用方案,可以利用其来解决单点故障。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而 2022-06-23 Keepalived #Keepalived