soda97

soda97 @soda97

  • http
    HTTP:HyperText Tansfer Protocol,超文本传输协议,基于TCP的关于数据如何在万维网中通信的协议 1)对网址www.baidu.com进行DNS域名解析,得到对应的IP地址 2)根据IP找到对应的服务器,发起TCP三次握手 3)建立TCP连接后发起HTTP请求 4)服务器响应HTTP请求,浏览器得到HTML代码 5)浏览器解析HTML代码,请求HTML代码中的资源(如图
  • 做消息队列
    https://github.com/doocs/advanced-java/blob/main/docs/high-concurrency/why-mq.md
  • plarform
    你好,我叫刘岩涛,目前在网易游戏从事平台开发相关的工作,对文件存储和私服相关的,面试的目的主要是希望有一个更大的平台和空间去探索,希望可以遇到更多的挑战 文件存储这块: cdn:提供了文件存储的功能,使用了mongo的分布式存储,使用两个集合来存储GridFS文件,一个是fs.files,另一个是fs.chunks,对于大于16mb的文件进行分布式的存储,并使用副本集模式,保障数据的安全,如果使用
  • 使用mongo的优点
    mongo是基于分布式文件存储的,性能高,存储数据便捷,面向集合存储,存储格式是bson,可以存储对象类型的数据,数据被分组存储在数据集当中,每个集合在数据库里都有一个唯一的标识,并可以包含无限数目的文档,是使用二进制进行数据存储,像我们的一些视频文件,同时也可以使用compact命令自动处理碎片,而且模式非常自由,不用知道结构的定义,可以将不同数据结构的文件存储到一起,储存到集合中的文档,被存储
  • 数据结构
    https://juejin.cn/post/6844903644798664712 1. 字符串: / 保存字符串对象的结构 / struct sdshdr { // buf 中已占用空间的长度 int len; // buf 中剩余可用空间的长度 int free; // 数据空间 char buf[
  • socket
    socket是对tcp/ip协议的一种封装,是应用层和tcpip协议族同学的中间软件抽象层,把复杂的tcpip隐藏再socket接口后面,对用户来说,接口就是全部,让socket去组织数据,还可以认为是网络间不同计算机上的进程通信的方法,利用三元组(ip协议,协议,端口)来标识网络中的进程,用这个三元组和其他进程进行交互 本地进程通信: 消息传递:管道,fifo,消息队列 同步: 互斥量,条件变
  • 分布式缓存
    缓存由于其高性能和高并发,被广泛使用。 如果给缓存设置过期时间,是保证最终一致性的解决方案,所有写操作都是以数据库为准, 如果数据库写成功,缓存更新失败,当缓存到过期时间后,还是会从数据库里读取新值然后更新缓存 如果不设置过期时间,对于缓存的更新方式,常见的有如下几种方案: 1. 先更新数据库,再更新缓存 2. 先删除缓存,再更新数据库 3,先更新数据库,再删除缓存 先更新数据库,再更
  • 水平触发和边缘触发
    水平触发与边缘触发 水平触发(level-trggered) 只要文件描述符关联的读内核缓冲区非空,有数据可以读取,就一直发出可读信号进行通知, 当文件描述符关联的内核写缓冲区不满,有空间可以写入,就一直发出可写信号进行通知 边缘触发(edge-triggered) 当文件描述符关联的读内核缓冲区由空转化为非空的时候,则发出可读信号进行通知, 当文件描述符关联的内核写缓