通信协议 – 常见软件/服务通信协议 – 学习/实践

1.应用场景

主要用于学习那些日常开发中,经常听到用到的软件/服务通信协议,弄清楚协议,通信协议有哪些,本质是什么,以及各自的应用场景。

2.学习/操作

1.文档阅读

08 | 数据库优化方案(一):查询请求增加时,如何做主从分离极客时间

2.整理输出

作为程序开发人员,日常开发中,听到的和用到的协议有很多。

从 络模型,四层或者七层OSI模型来划分。

他们会属于不同的层级。协议有很多,有些已经不用了,废弃了,有些还是一如既往地发挥作用,有些也在制定当中, 但是不管如何,有些面对他们,总会感到陌生,甚至有点不知所措,他们是什么,发挥什么作用,如何使用他们,这都是问题,但是我们能做的也许就只有,去了解,学习他们,然后使用他们,发挥他们的价值,解答内心的疑问。— 个人想法,有时候就是想到什么写什么。 

TCP 络通信时需要设定通信协议。

常见的 TCP 通用 络通信协议有:「基于TCP协议」

、、、、、、、、、 。

但是协议不单单只有涉及到 络通信的协议,还有其他协议,比如文件协议等。

比如:

File协议:本地文件传输协议

2.1 

这个暂时不多说,是我们最常见的应用层 络通信协议

在会话层&表现层中做了安全加密。

络/Network – 会话层&表现层 – HTTPS协议[SSL/TLS] – 学习/实践_穿素白衫的中少年的博客-CSDN博客

2.2 MySQL通信协议

通信协议 – MySQL – 通信协议 – 学习/实践_穿素白衫的少年的博客-CSDN博客

2.3 Redis通信协议

TBD

2.4 

TBD

2.5 JDBC 协议

34 | 动手实现一个简单的RPC框架(四):服务端-极客时间

TBD

临时插入

调用 RpcAccessPoint.getNameService() 方法,获取注册中心实例时,传入的参数就是 JDBC 的 URL,比如:“jdbc:mysql://127.0.0.1/mydb”;

2.6 

TBD

2.7 

TBD

2.8 File协议

本地文件传输协议。

File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样。

应用:要使用File协议,基本的格式如下:file:///文件路径,比如要打开D盘images文件夹中的pic.gif文件,那么可以在资源管理器或IE地址栏中键入:file:///D:/images/pic.gif 然后回车。

*nix 下也是如此.

如下:「Mac」

file:///Users/huangbaoyin/Documents/Code/swoole/learning_of_swoole/2-%E5%BF%AB%E9%80%9F%E5%90%AF%E5%8A%A8/client/ws/ws-1.html

后续补充

3.问题/补充

1. 数据库主从读写分离「一定会涉及到主从复制,也伴随着主从同步的延迟问题,然后就引出了主从同步的数据一致性问题和取舍方案」

本节课,我带你了解了查询量增加时,我们如何通过主从分离和一主多从部署抵抗增加的数据库流量的,你除了掌握主从复制的技术之外,还需要了解主从分离会带来什么问题以及它们的解决办法。这里我想让你明确的要点主要有:

1. 主从读写分离以及部署一主多从可以解决突发的数据库读流量,是一种数据库横向扩展的方法;

2. 读写分离后,主从的延迟是一个关键的监控指标,可能会造成写入数据之后立刻读的时候读取不到的情况;

3. 业界有很多的方案可以屏蔽主从分离之后数据库访问的细节,让开发人员像是访问单一数据库一样,包括有像 TDDL、Sharding-JDBC 这样的嵌入应用内部的方案,也有像 Mycat 这样的独立部署的代理方案。

其实,我们可以把主从复制引申为存储节点之间互相复制存储数据的技术,它可以实现数据的冗余,以达到备份和提升横向扩展能力的作用。

在使用主从复制这个技术点时,你一般会考虑两个问题:

1. 主从的一致性和写入性能的权衡,如果你要保证所有从节点都写入成功,那么写入性能一定会受影响;如果你只写入主节点就返回成功,那么从节点就有可能出现数据同步失败的情况,从而造成主从不一致,而在互联 的项目中,我们一般会优先考虑性能而不是数据的强一致性。

2. 主从的延迟问题,很多诡异的读取不到数据的问题都可能会和它有关,如果你遇到这类问题不妨先看看主从延迟的数据。

我们采用的很多组件都会使用到这个技术,比如,Redis 也是通过主从复制实现读写分离;Elasticsearch 中存储的索引分片也可以被复制到多个节点中;写入到 HDFS 中文件也会被复制到多个 DataNode 中。只是不同的组件对于复制的一致性、延迟要求不同,采用的方案也不同。但是这种设计的思想是通用的,是你需要了解的,这样你在学习其他存储组件的时候就能够触类旁通了。

一课一思

我们提到,存储节点间互相复制数据是一种常见的,提升系统可用性和性能的方式,那么你还了解哪些组件有使用这种方式呢们的复制方式又是如何的呢迎在留言区与我分享你的经验。

4.参考

参见文档阅读列表

后续补充

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树首页概览31851 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月26日
下一篇 2022年9月26日

相关推荐