Go语言(golang)的一个很大的优势,就是很容易的开发出网络后台服务,而且性能快,效率高。在开发后端HTTP网络应用服务的时候,我们需要处理很多HTTP的请求访问,比如常见的API服务,我们就要处理很多HTTP请求,然后把处理的信息返回给使用者。对于这类需求,Golang提供了内置的nethttp包帮我们来处理这些HTTP请求,让我们可以比较方便的开发一 …
listen函数
目录前言cache缓存服务接口cache包实现golang http包使用介绍hello.goRedirect.gohttp-cache-server 实现cacheHandler程序测试与redis的比较前言这个月我想学一下go语言,于是决定学习一个go实现的缓存服务。首先本文基于golang的http包实现一个简单http的缓存服务,因为用golang自 …
进行网络通信的时候,需要建立一个socket,这是大家都知道的。如果一个套接字只能被一个监听进(线)程监听,那么岂不是同一时刻httpd只能处理一个请求,处理完这个请求之后,释放80端口在给其他请求使用。可是显然httpd 没有那么笨,那么apache httpd 是如何支持高并发的呢?简单的说就是有两种套接字,一种是监听套接字,供监听进(线)程监听使用。另 …
本节,我们介绍IO复用,通过简单的例子演示IO复用的使用,以及实现原理,这个技术是目前构建目前的高性能服务器必备技术,在后面我们介绍到各种网络编程模型的时候,会用到IO复用。看完本文,您将了解到:IO复用的执行流程;select函数的使用和优缺点,以及实现原理;poll函数的使用和优缺点,以及实现原理;epoll函数的使用和优缺点,以及实现原理;epoll的 …
Linux实例常用内核网络参数介绍与常见问题处理概述本文主要介绍常见的Linux内核参数及相关问题的处理方式。详细信息注意:Linux从4.12内核版本开始移除了tcp_tw_recycle配置。即移除sysctl.conf中关于net.ipv4.tcp_tw_recycle的配置内容,首先需要确认您的系统内核低于4.12版本才可以使用net.ipv4.tc …
Pingu 是一个用 Go 语言编写的命令行工具,实现了 ping 命令的功能,但是输出结果有彩色和可爱的 Pingu ASCII 艺术字。它支持 Windows、macOS 和 Linux 操作系统,可以轻松安装,支持 IPv4 和 IPv6。Pingu 的特点是输出结果有趣,使得使用者在测试网络时更加轻松愉快。此外,Pingu 还支持更改传输次数,启用特 …
TCP 是一种面向连接的单播协议,在 TCP 中,并不存在多播、广播的这种行为,因为 TCP 报文段中能明确发送方和接受方的 IP 地址。在发送数据前,相互通信的双方(即发送方和接受方)需要建立一条连接,在发送数据后,通信双方需要断开连接,这就是 TCP 连接的建立和终止。TCP 连接的建立和终止如果你看过我之前写的关于网络层的一篇文章,你应该知道 TCP …
Go语言凭借其出色的并发性能和简洁的语法,成为构建高性能接口服务的热门选择。与其他语言相比,Go标准库内置的nethttp包提供了完整的HTTP服务实现,让开发者无需依赖第三方框架就能快速搭建接口服务。本文将通过5个核心函数,带您从零开始构建一个完整的RESTful接口服务,全程无需复杂概念,只需基础Go语法知识。一、HTTP服务的基石:nethttp包核心 …
20大进阶架构专题每日送达前面几周,讲过Nginx的日志配置:Nginx | 超详细!Nginx 日志配置实践,然后也讲了Nginx的进程模型,底层原理等:Nginx为什么快到根本停不下来?没看过的可以先看看(链接点击可跳转)。例如:Nginx 的进程模型本篇,我们则来讲讲Nginx的几种性能优化方式。目录[-]1、Nginx运行工作进程数量Nginx运行工 …
写了这么多篇关于 TCP 和 UDP 的文章,还没有好好聊过这两个协议的区别,这篇文章我们就来开诚布公的谈一谈。关于 TCP 和 UDP ,想必大家都看过一张这样的图。有一个小姑娘在对着瓶口慢慢的喝水,下面写着可靠的传输,少女的衣服没有被水浸湿,这张图被称为 TCP 。然后又有一个小姑娘在举着水瓶以很快的速度向下倒水,少女的头发凌乱,脸色泛红,衣服也被水浸湿 …
