性能超越IGBT,北汽新能源国内首家高频SiC电机控制器强势来袭

性能超越IGBT,北汽新能源国内首家高频SiC电机控制器强势来袭,第1张

北汽新能源作为中国新能源 汽车 行业的领军企业,是国内最早整车搭载SiC材料控制器并进行量产的企业之一。日前,搭载第三代半导体SiC电机控制器的北汽新能源实车,在吐鲁番即将完成夏季高温试验,并在后续开展里程可靠性试验和冬季高寒可靠性试验,将SiC材料控制器在极端环境下的可靠性进一步的验证。

SiC控制器研发困难重重,北汽新能源提早布局直面挑战

为了提供更好的产品给客户,北汽新能源在开发SiC电机控制器的路上直面挑战。早在2018年,北汽新能源就开始了对SiC控制器的开发。通过全新一代主控芯片的应用、软件架构和代码执行效率的进一步优化,并基于SiC模块进行了包括驱动能力、短路保护在内的一系列驱动电路的深度优化设计,在2019年初即开发出了第一台完全自主开发的SiC电机控制器样机。目前,北汽新能源开发的SiC控制器开关频率已从最初的10kHz提升到25kHz,控制器功率达到220kW以上功率等级,在量产产品边界下,控制器达到了43kW/L以上的功率密度,最高效率从985%提升到992%,同时控制器具备多核运行、电源管理、主动短路、高压辅电等多种功能安全相关模块,为整车安全运行提供基础保障。

在整车技术上,仅搭载SiC控制器一项措施优化,整车NEDC效率就提升3个百分点。就控制器频率的提升所带来更为关键的技术突破——电机转速的提升而言,北汽新能源已开发出2万转以上的高极对数永磁电机,正在紧锣密鼓的测试中,预计未来搭载完整超高频应用SiC控制系统的整车NEDC效率至少可提高5%,整车减重10%以上,从而实现经济收益提升,达到既提高了整车收益性,又提升了整车综合性能的应用目标。

众多巨头企业为之倾心,SiC将是PK的全新竞技场

SiC材料凭借较Si材料相比具有3倍的禁带场强、10倍的临界击穿场强、2倍的电子饱和漂移速率和3倍的热导率等优势,具有更高频、高效、耐高压、耐高温等特点。新能源 汽车 的选择从Si材料转变到SiC材料,主要目的就是通过改变控制器的控制方式、温度、体积、效率等参数,提升整个系统的效率指标,从而进行整车系统优化,达到续航里程的提升或相同里程下的成本优势。根据相关测试结果分析,采用SiC材料的控制器组件与Si基器件相比,控制器体积可以减少1/5,重量减轻35%,电力损耗从20%降低到5%,效率达到99%以上,整车续航里程提升5%以上, 社会 经济效益十分明显。

凭借对于性能的显著提升,众多巨头企业纷纷加入了SiC材料研发的战场。行业巨头的科锐在2019年对外宣布,将投入10亿美元用以扩大SiC产能,在其公司总部建造一座采用最先进技术的自动化碳化硅产品超级工厂,预计于2024年全部完工。与此同时,博世 汽车 宣布将在2020年生产用于电动 汽车 的下一代节能芯片,争取在未来三年内寻找到SiC产品的量产路径,这是博世133年 历史 上最大的一笔投资。作为第一家将SiC模块批量应用到电动 汽车 上的整车厂,特斯拉每年预计消耗50万片6寸SiC晶圆,ST已经无法满足其供应需求,特斯拉正在寻求其它等晶圆厂家为其提供充足稳定的货源。SiC材料控制器的前景迎来可预见的爆发期。

但是,SiC材料的优势也为它带来了相应的挑战。从材料成本上,SiC材料价格成本偏高,导致产品无法大规模推广;在应用技术上,如何提高SiC控制器开关频率、增强驱动技术的高安全性、解决EMC与EMI(电磁兼容与干扰)问题和降低SiC系统热损耗等都是SiC产品批量应用上需要克服的困难。北汽新能源日前完成的夏季高温试验,未来即将开展的里程可靠性试验和冬季高寒可靠性试验,正是在克服困难的征程上,不断的前行,只为用户带来更为畅快的驾驶体验。

since是意大利弗洛伦萨品牌。
品牌的本质是品牌拥有者的产品、服务或其它优于竞争对手的优势能为目标受众带去同等或高于竞争对手的价值。其中价值包括:功能性利益、情感性利益。
广义的“品牌”是具有经济价值的无形资产,用抽象化的、特有的、能识别的心智概念来表现其差异性,从而在人们意识当中占据一定位置的综合反映。品牌建设具有长期性。
狭义的“品牌”是一种拥有对内对外两面性的“标准”或“规则”,是通过对理念、行为、视觉、听觉四方面进行标准化、规则化,使之具备特有性、价值性、长期性、认知性的一种识别系统总称。这套系统我们也称之为CIS(corporate identity system)体系。


11月21日,哪吒汽车举行了“浩智战略2025”全球技术品牌发布会,发布了浩智超算、浩智电驱、浩智增程三大技术品牌,同时推出了中央超算平台、800V SiC高性能电驱系统、高效三合一增程器等产品。


浩智智能汽车中央超算平台



浩智中央超算平台,采用中央计算架构,协同4个区域控制器,以及SOA服务软件架构,能适配不同平台车型,将于2024年搭载上车。


浩智中央超算平台算力最高达1000Tops,支持从智能驾驶+座舱功能一体化的L4级自动驾驶;内存为8~64GB,存储高达1TB,可存储高精地图、影音娱乐、车内大数据等数据;其2路25Gb、8路1Gb、6路100Mb的以太网,可支持5G–V2X Tbox接入,支持车路协同;18路摄像头接口,可实现全部800万摄像头环视、侧视、前后视、舱内监控;20路CANFD接口,为主干以太网提供通信冗余,确保整车通信安全。



除此之外,该平台还具有自动驾驶、影音娱乐、车控一体化解决方案;并拥有车端的AI自学习能力,能不断适应用户使用习惯,提供个性化的服务;且按功能安全架构设计,满足高阶智能驾驶的安全要求;同时内置国密芯片、按照国密标准开发设计,以保证信息安全;还可结合5G TBOX实现端云之间高带宽、低延时通信,可超快OTA升级,云端深度学习与算法迭代。


浩智中央超算平台有2个产品形态,浩智超算10和浩智超算20。浩智超算10由智驾域单元和智能控制单元两块板卡组成,将搭载在哪吒S的升级款上。浩智超算20采用“中央+区域”架构,由驾舱一体域单元和智能控制单元两块板卡组成,将应用于哪吒汽车的下一代平台车型。


浩智800V SiC高性能电驱系统



浩智800V SiC高性能电驱系统由三部分组成:SiC电控单元、油冷扁线电机、细高齿减速器,系统采用三合一高集成设计、行业领先的一体式全内置冷却循环结构。其电机峰值功率250Kw,电机最高转速21000rpm,电机最大扭矩420Nm,百公里加速达到3s级;适用于400V中压平台和800V高压平台,整车只需充电5分钟,就可续航200km,综合续航提升8%;同时,系统噪声降低5-8分贝。


基于此,哪吒汽车还将逐步推出中压/高压135kW~270kW永磁电驱系统和异步电驱系统,永磁系统和异步系统将进行转子的差异化设计,控制器实现模块化设计和制造。


浩智高效三合一增程器



增程器即有四大技术特点——体积小、成本优、效率高、静谧性好。它体积小,高度集成发动机、发电机、发电机控制器,比同级增程器尺寸小5-10%,优化零部件数量,降低成本10%;在5kW-25kW的常用工况区,比业内平均高5%;比行业平均低噪音低3-5分贝。



该套系统还可以实现“前哨节能”模式,即基于人-车-路的智能“预测能量管理”,能够根据路况的交通流车速、道路坡度、剩余里程等,智能调节电动和燃油驱动,实现全工况智能能效控制。



浩智高效三合一增程器拥有四种动力运行模式,包括纯电、增程驱动+电池充电、增程+电池共同驱动、安全卫士:在纯电模式,300公里纯电续航,不用预留电量;在增程驱动+电池充电模式,电池亏电时,确保电池处于最低状态时不下降;在增程+电池共同驱动的模式,急加速或上坡时,能满足车辆大功率行驶和长途需求;在安全卫士模式,当电量严重不足,或极端低温,或动力电池有充放电故障等特殊情况下,增程器可单独工作,自动进入安全运行模式。


写在最后


进入2022年以来,哪吒汽车月销量连续4个月位列造车新势力第一,全新中大型轿车哪吒S发布,从小型SUV到中大型轿车,哪吒汽车的产品线在不断完善,覆盖车型也越来越多,动力形式上增程和纯电两手抓,丰富产品线的同时也给了用户多种选择。在未来,技术将会成为推动整个品牌的原动力,技术品牌浩智的发布展示哪吒汽车对于技术探索的决心,也标志着哪吒汽车全面迈入技术的体系化竞争时代。 

下载安装samp18破解版,安装proxymotar,防跳自己选择使用,防跳脚本ip填127001端口统一60880就好了,记得排除samp的uid,自带的默认排除了。proxymotar填1000172端口80。这些东西的安装使用你不会别问我,基础知识论坛有教程搜索看帖,这里我只跟大家讨论下本坛目前没有的知识。另外贴子里的附件因为楼主没有转发贴的习惯,论坛搜索也都有我就偷懒只给个名字或衔接了哈,希望我所做的能够起到抛砖引玉的作用,大家为了同一个兴趣遇上就是缘分,之前就懂的大神,先学会的朋友大家互相帮助,不然玩免流有什么意思?就为了每个月省几块钱吗?学会了装装大神吗?没用的,像我这等小白再怎么装最后也只有拆穿丢脸的份,你信不信?我不敢不信!
请仔细看帖,编辑这个帖子我已经浪费了很多时间,不会再一一回复,抱歉。
说一下的简单步骤就是安装samp18,安装proxymproa,防跳脚本必须有,自带还是外置自己选择,先开启samp以及防跳然后再开poxymproa,复制htp模式到文本窗口保存,自带浏览器输入csbaiducom进去后台检测连接,然后测试抓包确认查流量,这些不懂不要问我我也不知道。可以发帖相互交流嘛,妖友大神多的很。再者这些基本知识有些是必须自己通过时间来积累经验的,所以到时我也会不知道该怎么帮你了。
都不懂的新人懒人论坛搜索关键词推荐
1抓包 2脚本 2htp 4防跳 5后台ip 6网络日志,然后自己慢慢积累经验,相信我,这些基本没人可以随时实际帮得到你,得靠自己。
前面两天应该有朋友已经发了些htp资源,还有防跳脚本和主工具samp18破解版,至于>

当前前沿科学或技术有:反隐身技术、基因技术、脑科学、生命科学、谷歌支持的“延长人类寿命计划”、空气屏幕、直接投影到视网膜、透明手机、VR技术,纳米材料等技术、

反隐身技术,是研究如何使隐身措施的效果降低甚至失效的技术。隐身技术实质上就是尽量降低飞机的雷达、红外、激光、电视、目视及声学特性,使敌方各种探测设备很难发现、探测和跟踪,降低敌方的精确制导武器的作战效果,从而提高飞机的生存能力。

雷达隐身是首先发展和使用的隐身技术,因此反雷达隐身也是当前重点发展的反隐身技术。现代战场上的侦察探测系统主要是雷达、红外、电子、可见光、声波等探测系统,因此武器的隐身技术除了传统的雷达隐身和红外隐身外,还有光学隐身、等离子体隐身等。

前沿科技热点:

1、量子信息处理

量子信息处理,其基本思想是以原子、电子、光子层次微观世界的粒子的存在状态及相互作用规律来编码和处理信息,借助量子叠加和量子纠缠等独特物理现象,以经典理论无法实现的方式获取、传输和处理信息。量子信息处理技术主要包括量子计算和量子通信。

量子计算包含处理器、编码和软件算法等关键技术。近年来,这些技术发展较快,但仍面临量子比特数量少、相干时间短、出错率高等诸多挑战,目前处于技术研究和原理样机研制验证的关键阶段,超过经典计算的性能优势尚未得到充分证明。

量子通信与现有通信技术不同,可以实现量子态信息的传输,主要分量子隐形传态(Quantum Teleportation,QT)和量子密钥分发(Quantum Key Distribution,QKD)两类。

基于QT的量子通信和量子互联网仍将是未来量子信息技术领域的前沿研究特点。QKD从理论协议到器件系统初步成熟,目前已进入产业化应用的初级阶段。

2、第三代半导体

国际上一般将禁带宽度(Eg)大于或等于23电子伏特(eV)的半导体材料称为第三代半导体。常见的第三代半导体材料包括碳化硅(SiC)、氮化镓(GaN)、金刚石、氧化锌、氮化铝等。

第三代半导体材料具有高禁带宽度、高热导率、高击穿场强、高饱和电子漂移速率和高键合能等特点,其器件具有高频、大功率、低损耗、耐高压、耐高温、抗辐射能力强等优势。

关键技术点包括:大尺寸、低缺陷衬底、外延制备技术;硅基GaN外延技术;高质量SiC厚外延技术;高可靠封装技术。

技术发展的竞争态势表现为:产业链(衬底、外延片、器件、模组、下游应用等)各环节主要由美欧日主导;全球SiC市场由美国、欧洲、日本等垄断;GaN市场由日本厂商主导,住友电工、三菱化学及住友化学3家企业占据超过85%的市场份额。

第三代半导体材料的应用前景十分广阔,主要应用领域包括半导体照明、电力电子器件、激光器和探测器以及水制氢、生物传感器等。

3、增强分析

增强分析是将人工智能技术赋能商业智能,具体而言,是将机器学习技术和自然语言处理技术应用在BI领域的数据与分析中。增强分析增强了人类智力和情境感知,改变了数据管理、分析和商业智能的方法,改变了数据科学的面貌和机器学习/人工智能模型的开发利用。

与传统的人工数据挖掘相比,增强分析采用一系列的算法和集成学习技术,向用户解释可执行的结果,降低了丢失重要数据结论的风险。

高德纳咨询公司预测,未来2~5年,增强分析将成为BI市场的主导趋势。采用了增强分析技术生成的机器学习模型正在被越来越多地植入企业的应用程序中,帮助人力资源、金融、销售、市场、售后服务、采购和资产管理部门的员工进行商业决策与执行。

4、人工智能芯片

人工智能芯片通常是指针对人工智能算法做了特殊加速设计的芯片。人工智能芯片按技术架构分为图像处理单元(GPU)、半定制化的现场可编程逻辑门阵列(FPGA)、全定制化专用集成电路(ASIC)、神经拟态芯片;按功能分为训练环节芯片、推断环节芯片;按应用场景分为服务器端(云端)、移动端(终端)。

目前,GPU已经发展到较为成熟的阶段。谷歌、脸书、微软、推特和百度等公司都在使用GPU分析、视频和音频文件,以改进搜索和图像标签等应用功能。很多汽车厂商也在使用GPU发展无人驾驶。

虽然人工智能芯片技术发展较快,但是其在现阶段还处于产业化早期。各企业之间的水平有差距,但基本还处于同一起跑线,只有那些技术有重大突破、能够先一步产业化的企业才能引领行业的发展。

电动 汽车 成为碳化硅技术创新重要平台

在未来十年, 汽车 产业将逐渐完成从内燃机向电动化的转变,新能源 汽车 市场将取得高速发展。这极大推动了SiC等市场的发展与技术创新。在谈到技术创新趋势时,Jean-Marc Chery表示,从最终应用模块、芯片制造工艺,到晶圆外延层和原材料等多个层面,第三代半导体都有着大量的创新发展空间。

“我们一方面在模块层面进行技术改进,电动 汽车 特别是与SiC相关的车用场景对改进逆变器、车载充电机和DC/DC变换器性能的要求十分强烈。另一方面,在制造工艺层面,我们量产的第三代SiC采用平面制造技术,已累计生产了成千数万片片晶圆,积累了大量的研制经验。我们的用户都能受益于这种可靠且高性能的第三代技术。同时我们也在开发第四代制造技术,并计划不断提高MOSFET的高应力和电气性能。”Jean-Marc Chery表示。

“原材料和外延层方面也是实现碳化硅技术发展的重要环节。意法半导体两年前收购了 Norstel公司,填补了6 英寸晶圆的制造技术。试验结果证明,我们的产品技术性能高于竞争对手。最近,我们还交付了首个8英寸碳化硅晶圆,并计划在8英寸碳化硅晶圆上率先制造测试二极管,进行MOSFET流片和测试。” Jean-Marc Chery说。

电动 汽车 的应用与发展已成为碳化硅等第三代半导体技术创新的重要平台。Jean-Marc Chery表示,从应用模块、芯片制造工艺,到晶圆外延和材料,ST将成为为数不多的供应链完全垂直整合的半导体公司之一。这种全垂直整合的发展模式对供应链的掌控与在市场中的竞争都是一个重要的优势。

特斯拉Model 3是第一个采用碳化硅功率器件的电动车车型,据悉采用的就是来自意法半导体的650V SiC MOSFET器件。相比Model s/x上采用的IGBT,SiC MOSFET能带来5% 8%的逆变器效率提升,对电动车的续航能力有着显著提升。

半导体技术朝多元化演进

第二部分是存储器,包括NAND闪存和DRAM内存。它们在存储容量和能耗方面也遵循上述原则,产品变得越来越节能,性能越来越好。

第三类是多元化半导体世界。在这个世界,并不追求极致的先进工艺,但却需要特色的工艺技术。首先是成熟的 05 微米到110 纳米的8英寸晶片制造技术,其次是成熟的19纳米到28纳米的12英寸晶片制程。我们将28 纳米视为晶体管栅极的创新技术,用于制造成熟的12英寸晶片。当然,这个多元化产品的半导体世界很快就会开始用16 纳米 FinFET技术设计制造嵌入式处理解决方案和电源管理解决方案,以满足 汽车 和某些特定工业应用需求。另外,还有一条技术路线是10/12纳米的FD-SOI技术。

“在这个多元化的世界里,技术节点分布的非常广泛,从05微米到110纳米的8英寸,再从19纳米到28纳米成熟的12英寸,然后再到FinFET双重图形和三重图形工艺。这就是我所看到的现状和趋势。”Jean-Marc Chery表示。

意法半导体将专注三大趋势:智能出行、电力和能源、物联网和5G。2020年以来,这三大趋势加速发展,并推动市场对半导体产品的需求。随着混合动力和插电式电动 汽车 及其支持基础设施的互联、数字服务和应用的普及,未来将会从传统 汽车 转向更智能的移动解决方案。意法半导体可以提供广泛的产品组合,如基于碳化硅技术的功率器件和用于电动 汽车 的电池管理解决方案,以及多核微控制器等。在电力和能源方面,随着人们越来越依赖互联网和云服务,数据中心容量不断扩大,进一步增加了对能源需求,需要大幅提高基础设施的运营效率,升级配电网络,布署智能电网。在物联网和5G方面,意法半导体希望支持智能、互联的物联网设备发展,为设备制造商提供产品和相关开发生态系统。

承诺2027年日常运营100%使用可再生能源

绿色发展越来越受到全球各国重视。在今年全国两会期间,碳达峰和碳中和被首次写入我国政府工作报告。意法半导体对绿色理念也十分重视,在采访中Jean-Marc Chery宣布,意法半导体将于2027年实现碳中和目标,承诺到2027年,日常运营中100%使用可再生能源。

“凭借我们的处理器解决方案、电力电子解决方案和模拟器件解决方案,意法半导体将成为减少排放和建设美好地球的重要推动者。” Jean-Marc Chery说。为了达到这个目标,意法半导体将升级改造Crolles和Agrate工厂的PFC处理设备,让这两处工厂的PFC 排放为零,同时优化电力和能源消耗。在制定严格的降低电力和能源消耗计划同时,意法半导体承诺100%使用可再生能源。意法半导体还尽力降低货物运输和员工出行产生的排放,尽量采用线上的方式开展业务,和客户交流。

Jean-Marc Chery强调,半导体技术有助于实现更低的功耗和更少温室气体包括二氧化碳的排放。半导体不会引起这些问题,而是解决这些问题。如果世界想要大幅节能减排,并增加设备数量和服务,满足 社会 需求,那么半导体行业是解决方案。

redis主从复制总结整理

主题 Redis

Redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件全量传输给slave,然后再将dump后的 *** 作实时同步到slave中。让从服务器(slave server)成为主服务器(master server)的精确复制品。官方文档ReplicationHowto中提到以下特点:

一个master支持多个slave,slave可以接受其他slave的连接,作为其他slave的master,从而形成一个master-slave的多级结构

复制功能不会阻塞主服务器: 即使有一个或多个从服务器正在进行初次同步, 主服务器也可以继续处理命令请求。复制功能不会阻塞从服务器: 只要在 redisconf 文件中进行了相应的设置, 即使从服务器正在进行初次同步, 服务器也可以使用旧版本的数据集来处理命令查询。不过, 在从服务器删除旧版本数据集并载入新版本数据集的那段时间内, 连接请求会被阻塞。

复制被利用来提供可扩展性,比如可以将slave端用作数据冗余,也可以将耗时的命令(比如sort)发往某些slave从而避免master的阻塞,另外也可以用slave做持久化,由从服务器去执行持久化 *** 作,这只需要将master的配置文件中的save指令注释掉。

Redis 使用异步复制。 从 Redis 28 开始, 从服务器会以每秒一次的频率向主服务器报告复制流的处理进度。

复制功能的实现

redis的主从复制分为两个阶段:

1)同步 *** 作:将从服务器的数据库状态更新至主服务器当前所处的数据库状态。

2)命令传播:在主服务器的数据库状态被修改,导致主从服务器的数据库状态出现不一致时,让主从服务器重新回到一致状态。

同步

当客户端向从服务器发送 SLAVEOF 命令, 要求从服务器复制主服务器时, 从服务器首先需要执行同步 *** 作, 也即是, 将从服务器的数据库状态更新至主服务器当前所处的数据库状态。

从服务器对主服务器的同步 *** 作需要通过向主服务器发送 SYNC 命令来完成, 以下是 SYNC 命令的执行步骤:

从服务器向主服务器发送 SYNC 命令。

收到 SYNC 命令的主服务器执行 BGSAVE 命令, 在后台生成一个 RDB 文件, 并使用一个缓冲区记录从现在开始执行的所有写命令。

当主服务器的 BGSAVE 命令执行完毕时, 主服务器会将 BGSAVE 命令生成的 RDB 文件发送给从服务器, 从服务器接收并载入这个 RDB 文件, 将自己的数据库状态更新至主服务器执行 BGSAVE 命令时的数据库状态。

主服务器将记录在缓冲区里面的所有写命令发送给从服务器, 从服务器执行这些写命令, 将自己的数据库状态更新至主服务器数据库当前所处的状态。

下图展示了 SYNC 命令执行期间, 主从服务器的通信过程:

命令传播

在同步 *** 作执行完毕之后, 主从服务器两者的数据库达到一致状态, 但这种一致并不是一成不变的。当主服务器执行客户端发送的写命令时,主服务器的数据库就有可能会被修改, 并导致主从服务器状态不再一致。为了让主从服务器再次回到一致状态,主服务器需要对从服务器执行命令传播 *** 作: 主服务器会将自己执行的写命令 —— 即造成主从服务器不一致的那条写命令发送给从服务器执行, 当从服务器执行了相同的写命令之后, 主从服务器将再次回到一致状态。但是这样的复制功能有缺陷:在主从服务器断线重连之后执行同步动作时,生成完整的RDB文件并且发送到从服务器载入,但主从服务器的数据库状态在断线前基本上是一致的,不一致的部分只有断线后主服务器执行那一部分修改数据库的命令,所以这时SYNC命令就非常浪费,因为生成RDB文件时一个非常消耗CPU、内存和IO资源的过程,发送RDB文件到从服务器会占用大量的网络带宽资源,从服务器在载入RDB文件的过程中会阻塞不会响应任何命令,所以大部分情况下执行SYNC命令是没有必要也是非常不合理的。

为了解决28之前版本SYNC命令的性能问题,28版本设计了一个新的命令PSYNC,PSYNC命令分为 完整重同步 和 部分重同步 ,完整重同步过程用于从服务器初始化时初次复制的情况和SYNC命令基本一致,PSYNC则用于断线后重新复制,在条件允许的情况下,它不会生成RDB文件,而是给从服务器回复一个+Continue表示执行部分重同步,并且把从服务器断线后主服务器执行的修改数据库的命令发送到从服务器,从服务器执行这些命令同步数据库。

部分重同步功能由下面几个部分构成:

主服务器的复制偏移量 和 从服务器的复制偏移量 :当主服务器在向从服务器进行命令同步时,主服务器和从服务器会各自记录一个复制偏移量,当主从服务器的数据库状态一致时这两个复制偏移量是相同的,如果这两个偏移量不一致说明当前主从服务器的状态不一致。

主服务器的复制积压缓冲区 :复制积压缓冲区是一个固定大小的FIFO队列,当队列已满时会d出最早插入的数据,在主服务器进行命令传播时会同时把命令放到缓冲区中,缓冲区包含两部分数据,偏移量和字节。在进行复制时从服务器会将偏移量上报到主服务器,主服务检查当前偏移量是否还存在缓冲区中,如果存在进行部分重同步,如果不存在进行完整重同步。因为这个积压缓冲区是一个固定大小的队列,所以当从服务器长时间断线时,从服务器的复制偏移量很可能已不再缓冲区中,这时候只能进行完整重同步。

服务器的运行ID :初次同步时主服务器会把ID发给从服务器,从服务器保存主服务器ID,当断线重连后,会把之前保存的主服务器ID上报给主服务器,主服务器检查从服务器之前复制的主服务器ID是否和自己的ID相同,如果相同,执行部分重同步,如果不同说明从服务器之前记录的状态不是当前主服务器,这时候需要执行完整重同步。

PSYNC命令实现

初始复制或者之前执行过SLAVEOF no one命令,执行完整重同步:发送PSYNC -1命令到主服务器。如果从服务器已经复制过某个主服务器,在开始新复制时向主服务器发送PSYNC <runid> <offset>命令,runid是上次复制的主服务器id,offset是从服务器的复制偏移量,主服务器会根据这个两个参数来决定做哪种同步,判断服务器id是否和本机相同,复制偏移量是否在缓冲区中,主服务器有三种回复:

回复+FULLRESYNC <runid> <offset>执行完整重同步,从服务器把offset当做初始复制偏移量

回复+CONTINUE,表示执行部分重同步,从服务器等待主服务器发送缺少的数据

回复-ERR,表示主服务器版本低于28,不支持PSYNC命令

新版本复制过程:

设置主服务器地址和端口,通过调用SAVEOF <master_ip> <master_port>命令。

建立套接字连接。

发送PING命令,检查主从服务器是否能够正常处理命令。

身份验证,从服务器设置了masterauth并且主服务器设置了requirepass是需要进行身份验证。这两个选项要么都设置要么都不设置,如果只设置了一个从服务器向主服务器发送命令时会报错。

发送端口信息,通过执行命令REPLCONF listening-port <port-number>,向主服务器发送从服务器的监听端口号。

同步,从服务器向主服务器发送PSYNC命令。

命令传播,完成同步之后主服务器会把之后执行的写命令传播到从服务器保证主从服务器的状态一致。

心跳检测

在命令传播阶段,从服务器默认每秒一次的频率向主服务器发送命令:REPLCONF ACK <replication_offset>,replication_offset是从服务器的复制偏移量,该命令有三个作用:

检测从服务器的网络连接状态,检测主从服务器连接是否正常,如果主服务器超过一定时间没有收到从服务器的REPLCONF ACK 命令,那么它们的连接可能出了问题。

辅助实现min-slaves选项,min-slaves-to-write和min-slaves-max-lag两个选项可以防止主服务器在不安全的情况下执行写命令,min-slaves-to-write 3 min-slaves-max-lag 10 表示如果从服务器少于3个,或者3个从服务器的延迟都大于10秒时,主服务器拒绝写命令。

检测命令丢失,主服务器接收到从服务器的REPLCONF ACK 命令之后会检查从服务器的偏移量是否和主服务器的一致,如果不一致会把积压缓冲区中的从服务器偏移量后面的命令发送到从服务器。

关闭主服务器持久化时,复制功能的数据安全

当配置Redis复制功能时,强烈建议打开主服务器的持久化功能。 否则的话,由于延迟等问题,部署的服务应该要避免自动拉起。为了帮助理解主服务器关闭持久化时自动拉起的危险性,参考一下以下会导致主从服务器数据全部丢失的例子:

假设节点A为主服务器,并且关闭了持久化。 并且节点B和节点C从节点A复制数据

节点A崩溃,然后由自动拉起服务重启了节点A 由于节点A的持久化被关闭了,所以重启之后没有任何数据

节点B和节点C将从节点A复制数据,但是A的数据是空的, 于是就把自身保存的数据副本删除。

在关闭主服务器上的持久化,并同时开启自动拉起进程的情况下,即便使用Sentinel来实现Redis的高可用性,也是非常危险的。 因为主服务器可能拉起得非常快,以至于Sentinel在配置的心跳时间间隔内没有检测到主服务器已被重启,然后还是会执行上面的数据丢失的流程。无论何时,数据安全都是极其重要的,所以应该禁止主服务器关闭持久化的同时自动拉起。

只读从服务器

从 Redis 26 开始, 从服务器支持只读模式, 并且该模式为从服务器的默认模式。

只读模式由 redisconf 文件中的 slave-read-only 选项控制, 也可以通过 CONFIG SET 命令来开启或关闭这个模式。

只读从服务器会拒绝执行任何写命令, 所以不会出现因为 *** 作失误而将数据不小心写入到了从服务器的情况。

即使从服务器是只读的, DEBUG 和 CONFIG 等管理式命令仍然是可以使用的, 还是不应该将服务器暴露给互联网或者任何不可信网络。 不过, 使用 redisconf 中的命令改名选项, 可以通过禁止执行某些命令来提升只读从服务器的安全性。

一些不重要的临时数据, 仍然是可以保存在从服务器上面的。 比如说, 客户端可以在从服务器上保存主服务器的可达性信息, 从而实现故障转移策略。所以仍然要让一个从服务器变得可写。

从服务器相关配置

如果主服务器通过 requirepass 选项设置了密码, 那么为了让从服务器的同步 *** 作可以顺利进行, 我们也必须为从服务器进行相应的身份验证设置。

对于一个正在运行的服务器, 可以使用客户端输入以下命令:

config set masterauth <password>

要永久地设置这个密码, 那么可以将它加入到配置文件中:

masterauth <password>

详细的信息可以参考 Redis 源码中附带的redisconf 示例文件。

主服务器只在有至少 N 个从服务器的情况下,才执行写 *** 作

从 Redis 28 开始, 为了保证数据的安全性, 可以通过配置, 让主服务器只在有至少 N 个当前已连接从服务器的情况下, 才执行写命令。不过, 因为 Redis 使用异步复制, 所以主服务器发送的写数据并不一定会被从服务器接收到, 因此, 数据丢失的可能性仍然是存在的。以下是这个特性的运作原理:

从服务器以每秒一次的频率 PING 主服务器一次, 并报告复制流的处理情况。

主服务器会记录各个从服务器最后一次向它发送 PING 的时间。

用户可以通过配置, 指定网络延迟的最大值 min-slaves-max-lag , 以及执行写 *** 作所需的至少从服务器数量 min-slaves-to-write 。

如果至少有 min-slaves-to-write 个从服务器, 并且这些服务器的延迟值都少于 min-slaves-max-lag 秒, 那么主服务器就会执行客户端请求的写 *** 作。你可以将这个特性看作 CAP 理论中的 C 的条件放宽版本: 尽管不能保证写 *** 作的持久性, 但起码丢失数据的窗口会被严格限制在指定的秒数中。

如果条件达不到 min-slaves-to-write 和 min-slaves-max-lag 所指定的条件, 那么写 *** 作就不会被执行, 主服务器会向请求执行写 *** 作的客户端返回一个错误。

以下是这个特性的两个选项和它们所需的参数:

min-slaves-to-write <number of slaves>
min-slaves-max-lag <number of seconds>

详细的信息可以参考 Redis 源码中附带的 redisconf 示例文件。

Redis可扩展集群搭建

1 主动复制避开Redis复制缺陷。

既然Redis的复制功能有缺陷,不妨放弃Redis本身提供的复制功能,我们可以采用主动复制的方式来搭建我们的集群环境。所谓 主动复制 是指由业务端或者通过代理中间件对Redis存储的数据进行双写或多写,通过数据的多份存储来达到与复制相同的目的,主动复制不仅限于 用在Redis集群上,目前很多公司采用主动复制的技术来解决MySQL主从之间复制的延迟问题,比如Twitter还专门开发了用于复制和分区的中间件gizzard( >

主动复制虽然解决了被动复制的延迟问题,但也带来了新的问题,就是数据的一致性问题,数据写2次或多次,如何保证多份数据的一致性呢?如果你的应用 对数据一致性要求不高,允许最终一致性的话,那么通常简单的解决方案是可以通过时间戳或者vector clock等方式,让客户端同时取到多份数据并进行校验,如果你的应用对数据一致性要求非常高,那么就需要引入一些复杂的一致性算法比如Paxos来保证 数据的一致性,但是写入性能也会相应下降很多。

通过主动复制,数据多份存储我们也就不再担心Redis单点故障的问题了,如果一组Redis集群挂掉,我们可以让业务快速切换到另一组Redis上,降低业务风险。

2 通过presharding进行Redis在线扩容。

通过主动复制我们解决了Redis单点故障问题,那么还有一个重要的问题需要解决:容量规划与在线扩容问题。我们前面分析过Redis的适用场景是全部数据存储在内存中,而内存容量有限,那么首先需要根据业务数据量进行初步的容量规划,比如你的业务数据需 要100G存储空间,假设服务器内存是48G,至少需要3~4台服务器来存储。这个实际是对现有 业务情况所做的一个容量规划,假如业务增长很快,很快就会发现当前的容量已经不够了,Redis里面存储的数据很快就会超过物理内存大小,如何进行 Redis的在线扩容呢?Redis的作者提出了一种叫做presharding的方案来解决动态扩容和数据分区的问题,实际就是在同一台机器上部署多个Redis实例的方式,当容量不够时将多个实例拆分到不同的机器上,这样实际就达到了扩容的效果。

拆分过程如下:

在新机器上启动好对应端口的Redis实例。

配置新端口为待迁移端口的从库。

待复制完成,与主库完成同步后,切换所有客户端配置到新的从库的端口。

配置从库为新的主库。

移除老的端口实例。

重复上述过程迁移好所有的端口到指定服务器上。

以上拆分流程是Redis作者提出的一个平滑迁移的过程,不过该拆分方法还是很依赖Redis本身的复制功能的,如果主库快照数据文件过大,这个复制的过程也会很久,同时会给主库带来压力。所以做这个拆分的过程最好选择为业务访问低峰时段进行。

新浪微博的replication改进思路:

首先写Redis的AOF文件,并对这个AOF文件按文件大小进行自动分割滚动,同时关闭Redis的Rewrite命令,然后会在业务低峰时间进行内存快照存储,并把当前的AOF文件位置一起写入到快照文件中,这样我们可以使快照文件与AOF文件的位置保持一致性,这样我们得到了系统某一时刻的内存快照,并且同时也能知道这一时刻对应的AOF文件的位置,那么当从库发送同步命令时,我们首先会把快照文件发送给从库,然后从库会取出该快照文件中存储的AOF文件位置,并将该位置发给主库,主库会随后发送该位置之后的所有命令,以后的复制就都是这个位置之后的增量信息了。

Redis的复制由于会使用快照持久化方式,所以如果Redis持久化方式选择的是日志追加方式(aof),那么系统有可能在同一时刻既做aof日志文件的同步刷写磁盘,又做快照写磁盘 *** 作,这个时候Redis的响应能力会受到影响。所以如果选用aof持久化,则加从库需要更加谨慎。

总结

Master最好不要做任何持久化工作,包括内存快照和AOF日志文件,特别是不要启用内存快照做持久化。

如果数据比较关键,某个Slave开启AOF备份数据,策略为每秒同步一次。

为了主从复制的速度和连接的稳定性,Slave和Master最好在同一个局域网内。

尽量避免在压力较大的主库上增加从库

为了Master的稳定性,主从复制不要用图状结构,用单向链表结构更稳定,即主从关系为:Master<–Slave1<–Slave2<–Slave3……,这样的结构也方便解决单点故障问题,实现Slave对Master的替换,也即,如果Master挂了,可以立即启用Slave1做Master,其他不变。

参考资料:

《redis设计与实现》


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13438224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-06
下一篇 2023-08-06

发表评论

登录后才能评论

评论列表(0条)

保存