- 博客(9)
- 收藏
- 关注
原创 gRPC使用
RPC 即远程过程调用协议(Remote Procedure Call Protocol),可以让我们像调用本地对象一样发起远程调用。RPC 凭借其强大的治理功能,成为解决分布式系统通信问题的一大利器。解决了单体架构的弊端,但同时引入了新的问题服务拆分后,服务和服务之间发生的是之间的调用,之间的调用,那么就需要发起网络调用。网络调用我们能立马想起的就是http,但是在微服务架构中,http虽然便捷方便,但性能较低。这时候就需要引入RPC(远程过程调用),通过自定义协议发起TCP调用,来加快传输效率。
2025-05-26 16:18:27
784
原创 Golang —— channel
在go语言中的goroutine是可以支持高并发操作的,而且go语言对高并发支持做的是非常好的一种语言,线程与线程之间或者协程与协程之间实现如果需要实现并发,那么不可或缺的就是需要进行通信,那么go语言协程间如何实现高性能通信的呢?——Channel。Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯。go语言中有一种很经典的说法,我们如何理解上面这段话呢?其实我们知道在内核视角下,线程是内核调度的最小单位。
2025-05-10 21:23:09
761
原创 Nginx 代理与conf文件
Nginx(发音类似“Engine-X”)是一款高性能的开源网页服务器和反向代理服务器,最初由俄罗斯程序员Igor Sysoev开发,现广泛应用于各种网站和应用的服务器端。是一款用于搭建网站、实现请求转发和负载均衡的高效Web服务器,因其速度快、占用资源少和扩展性强而广受欢迎。
2025-05-07 15:01:32
835
原创 Golang —— Slice
Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。切片中的元素存放在一块内存地址连续的区域,使用索引可以快速检索到指定位置的元素;切片长度和容量是可变的,在使用过程中可以根据需要进行扩容。
2025-05-01 14:48:33
1076
原创 数据传输序列化 Json和protobuf
序列化 (Serialization)将对象的可以,与之相对应的过程称之为反序列化(Unserialization)。。
2024-11-21 18:57:39
1342
原创 Tcp粘包分析
使用过TCP的通信的都可能会遇到这样的问题,代码写的没有问题,但是每次接收到的数据总是怪怪的。有时候接受的长,有时候接收到的数据又比较短。反正数据就是得不到正确的解析,接下来我们分析一下究竟是什么原因导致的?又应该如何解决呢?最后作者还想补充一点关于http协议如何解决TCP粘包问题。
2024-11-15 22:40:57
1273
原创 C++线程池思想
C++线程池是一种并发的技术,它能有效的管理并发线程、减少资源占用和提高程序的性能。本文基于linux的 <pthread> 线程库,使用C++对线程池进行封装,并对底层实现方式进行描述。
2024-11-10 15:31:15
900
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人