后端go笔记7:网络交互,框架,架构 | 青训营

84 阅读3分钟

在上一个http笔记的基础上,梳理了网络交互,框架,架构相关的知识,了解了网络交互的更多知识,以及企业常用的框架,架构等

参考资料:青训营材料

网络交互

网络交互是现代应用程序的基础,通过各种协议和技术实现数据传输和通信。

路由

  • 决定了数据包在网络中的路径:涉及选择最佳路径以及处理数据包的下一步
  • 通过比较目标MAC地址来确定下一跳的

例子:路由器在收到数据包时,会检查目标IP地址,并根据路由表决定应该将数据包发送到哪个网关或接口

ARP协议

ARP协议用于解析IP地址与MAC地址之间的关系

例子:当主机A要向主机B发送数据时,主机A首先需要知道主机B的MAC地址。它会广播ARP请求,询问"谁的IP是B的IP?",然后主机B会响应包含自己的MAC地址的ARP响应。

IP

  • 互联网通信中的唯一标识
  • 确保数据包能正确到达目标主机

例子:一个Web服务器可以通过IP地址来接收来自全球各地的请求。例如,访问Google的网站时,浏览器会使用Google服务器的IP地址来发送请求

NAT服务器

NAT服务器是一种常见的网络设备:它允许多个内部设备通过单个公共IP地址访问外部网络

例子:在家庭网络中,多个设备(如手机、笔记本电脑、平板电脑)可以共享同一个公共IP地址,通过NAT服务器实现局域网内部和外部的通信。

框架

使用框架可以加速应用程序开发,提供了现成的工具和结构来处理常见的问题

Kitex(RPC框架)

Kitex是一个RPC框架,用于在分布式系统中实现不同程序之间的函数调用

例子:假设你有一个用户服务和一个订单服务,你可以使用Kitex在这两个服务之间进行远程函数调用,例如从用户服务获取用户信息,然后在订单服务中使用

Hertz(HTTP框架)

Hertz是一个HTTP框架,用于构建和处理HTTP请求和响应

例子:你可以使用Hertz创建一个简单的Web服务器,并注册不同的路由来处理GET、POST等HTTP请求,例如创建一个处理用户登录的路由

Gorm(ORM框架)

Gorm是一个强大的ORM框架,用于在Go中实现对象关系映射,简化数据库操作

例子:你可以使用Gorm定义一个模型,如用户模型,然后进行数据库操作,如查询用户、创建用户等,而无需手动编写SQL查询语句

架构

选择适当的架构对于应用程序的可扩展性和维护性至关重要

单体架构 vs 微服务架构

单体架构将所有功能组件集成在一个应用程序中,而微服务架构将功能拆分成多个小型服务

例子:在单体架构中,一个应用程序可能包括用户管理、订单管理和支付功能。在微服务架构中,这些功能可能分别作为独立的服务存在

虚拟化和云计算

虚拟化技术和云计算为企业提供了灵活性和资源管理的解决方案

例子:使用云计算平台,你可以在需要时创建虚拟机,以满足临时的计算需求,然后在不需要时将其销毁,从而节省成本