Harry's Blog
博客
分类
标签
归档
友链
关于
博客
分类
标签
归档
友链
关于
Harry 的个人空间
博客
分类
标签
归档
关于
Docker 安装 Elasticsearch 和 Kibana 实践
2023-08-16
阅读全文
依赖反转(DIP)原则在整洁架构中的应用
整洁架构 DIP 整洁架构简介 直接上图 整洁架构从外到内分为四层,源码中的依赖关系必须只指向同心圆的内侧,即由底层机制指向高层策略 业务实体这一层封装整个系统的关系业务逻辑,能被系统中的其他不同应用复用。对应领域驱动设计中的概念就是领域模型。 用例用例通常包含的是特定应用场景下的业务逻辑,这一层封装了整个系统所有用例。这些用例引导了数据在业务实体之间的流入/流出,通过编排...
2023-07-19
架构设计
架构设计
阅读全文
VSCode 项目多窗口改为多 Tab 样式
环境 macOS Ventura 13.4 VSCode 1.79.2 问题当打开多个项目时,每个项目都占一个新的窗口,日常工作经常会打开至少五个以上项目,多窗口切换不方便,个人更习惯只开一个窗口,多个项目分多个 Tab 的模式 解决方法按如下方式可以切换到分 Tab 模式: 打开 Mac 系统偏好设置,找到「桌面与程序坞」选项(低版本系统在「通用」里),将「打开文稿时首选标签页」选项改...
2023-07-01
工具
工具
阅读全文
Go 语言 Channel 最佳实践
简介 Channel 基本概念介绍 基本使用方法参见 Go指南 Go 语言中的通道(channel)是一种特殊的类型。通道像一个传送带或者队列,总是遵循先入先出(First In First Out)的规则,保证收发数据的顺序。每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。 不带缓冲的通道创建不带缓冲的通道语法如下 ch := make(chan i...
2023-05-14
Golang
Golang
阅读全文
Go 语言中的值方法和指针方法
概念函数和方法在 Go 语言中,我们可以为自定义类型定义方法。方法是一个与特定类型关联的函数。方法可以被定义在值类型上或指针类型上。这两种方法分别称为值方法和指针方法。 // 函数 func Hello() { fmt.Println("Hello World!") } type Welcome struct{} // ...
2023-05-14
Golang
Golang
阅读全文
数据结构(6): 单调栈
特性单调栈是一种特殊的栈数据结构,它满足元素的单调性(单调递增或单调递减)。与普通栈相比,单调栈在出栈时有一定的规则,使得出栈后栈中的元素仍然保持单调性。 单调栈主要有两个操作:入栈和出栈。入栈时,先判断栈顶元素是否符合单调性,如果不符合,则将其弹出,一直重复此过程直到符合单调性后再入栈;出栈时,弹出栈顶元素即可。 算法应用单调栈在算法中有许多应用,例如在求解 Next Greater El...
2023-04-02
数据结构
数据结构
阅读全文
Go 协程调度原理及应用
什么是协程?进程和线程一个应用程序时运行在操作系统上的一个进程。进程是一个运行在自己独立内存空间的独立执行体,是操作系统进行资源分配的最小单位。一个进程则有一个或多个线程组成,这些线程是共享进程内存地址空间的执行体,是操作系统进行任务调度的最小单位。而使用多线程进行工作时,由于共享父进程的内存空间等资源,访问同一个数据需要对其进行加锁,保证同一时间只有一个线程操作一个数据。这样不仅会提高编码...
2023-03-25
Golang
Golang
阅读全文
Go 实战: 基于Thrift框架的 RPC 服务 Demo
Thrift架构简介Thrift自顶向下可分为四层 Server(single-threaded, event-driven)服务器进程调度 Processor(compiler generated)RPC接口处理函数分发,IDL定义接口的实现将挂接到这里面 Protocol (JSON, compact etc)协议,定义数据传输格式 TBinaryProtocol(二进制格式) ...
2023-03-25
Golang
Golang
阅读全文
Go 实战: Socket 编程
Socket如何通信在网络中要唯一确定一个进程需要用一个三元组(Protocol,IP,Port),IP地址唯一确定一台主机,再通过协议和端口唯一确定一个进程,这里也可以看到TCP和UDP可以绑定同一个端口。能唯一确定网络中的进程了,便可以利用这个标志在他们之间进行数据交互。 Socket基础TCP/IPGo支持的IP类型 IPv4 IPv6 Go支持的协议类型 TCP UD...
2023-03-25
Golang
Golang
阅读全文
一致性哈希算法原理
传统哈希算法的局限性在分布式系统中,通常使用多个节点来保存数据,以提高并发能力和容量,那么如果决定数据保存到哪个节点上呢?一般的做法是通过一个哈希函数对数据key进行计算,然后对节点数量取模,从而得到数据分配的节点:node_id = hash(key) % N但是这种做法在节点数量N变化的时候,大部分key的计算的节点都会重新分配。如果是应用在分布式缓存,就会导致大规模的缓存失效,引起缓存...
2023-03-25
分布式系统
分布式系统
阅读全文
1 / 5
下一页