小机灵鬼|42 张图带你揭秘后端技术都要学啥?( 五 )
反向代理负载均衡
这里典型的就是Nginx提供的反向代理和负载均衡功能 。 用户的请求直接叨叨反向代理服务器 , 服务器先看本地是缓存过 , 有直接返回 , 没有则发送给后台的应用服务器处理 。
反向代理负载均衡
IP负载均衡
上面一种方案是基于应用层的 , IP很明显是从网络层进行负载均衡 。 TCP./IP协议栈是需要上下层结合的方式达到目标 , 当请求到达网络层的黑猴 。
负载均衡服务器对数据包中的IP地址进行转换 , 从而发送给应用服务器 。
IP负载均衡
注意 , 这种方案通常属于内核级别 , 如果数据比较小还好 , 但是大部分情况是图片等资源文件 , 这样负载均衡服务器会出现响应或者请求过大所带来的瓶颈 。
数据链路负载均衡
它可以解决因为数据量他打而导致负载均衡服务器带宽不足这个问题 。 怎么实现的呢 。 它不修改数据包的IP地址 , 而是更改mac地址 。
应用服务器和负载均衡服务器使用相同的虚拟IP 。
数据链路负载均衡
以上介绍了几种负载均衡的方式 , 但是很重要的负载均衡算法却没有设计 , 其中包含了轮询 , 随机 , 最少连接 , 下面分别对此进行介绍 。
数据存储公司存在的价值在于流量 , 流量需要数据 , 可想而知数据的存储 , 数据的高可用可说是公司的灵魂 。 那么改善数据的存储都有哪些手段或方法呢?
- 数据主从复制
然后其它线程会从Binlog中读取并通过远程通讯的方式复制到另外服务器 。 服务器收到这更新日志后加入到自己Relay Log中 , 然后SQL执行线程从Relay Log中读取次日志并在本地数据库执行一遍 , 从而实现主从数据库同样的数据 。
主从复制
主从复制可以方便进行读写分离 , 可以使用一主多从的方式保证高可用 , 如果从数据库A挂了 , 可以将读操作迁移到从数据库完成高可用 。
但是如果主数据库挂了咋搞 , 那就Mysql的主主复制 。 可是不管上面说的那种方式都不是提升它的存储能力 , 这就需要进行数据库的分片了 。
- 数据库分片
最开始使用"硬编码"的方式 , 此方式从字面上可以理解为直接在代码中指定 。 假定表为用户表 , 通过ID的奇偶存放在不同的服务器上 , 如下图:
这种方式的缺点很明显 , 当需要增加服务器的时候 , 就需要改动代码 , 这就不友好了 。 比较常见的数据库分片算法是通过余数Hash算法 , 根据主键ID和服务器的数量取模 , 根据余数确定服务器 。
推荐阅读
- 小机灵鬼|干货速来!透彻剖析微服务架构设计模式,深入开发Java有奇效
- 萌小糸说历史|他腹背受敌的时候,刘备为何见死不救(二),揭秘关羽死得很蹊跷
- 王者荣耀|王者重开机制揭秘:钻石段位以上必看,五战士,四辅助可重开,巅峰赛不能
- 雷军揭秘小米实验室1800台手机 2020智能手机和直播行业现状及发展前景趋势分析研究报告
- 国潮|国韵经典潮茶——韵茶获得满堂好评!揭秘TA一路高歌猛进的背后
- 时尚广州|T恤的标语你了解过吗?揭秘衣服上那些奇怪的字句
- 湖人|死守联防包夹哈登!名嘴揭秘湖人如何赢球:坚信红队三分球会力竭
- 《他其实没有那么爱你》不想给观众放大贫富差距丨揭秘
- |死守联防包夹哈登!名嘴揭秘湖人如何赢球:坚信红队三分球会力竭
- 落叶知秋|揭秘,IT培训行业营销拓客秘籍