• 关于

    开发V2P技术

    的搜索结果

回答

1、Java Java编程语言(第三版)---Java四大名著----James Gosling(Java之父) Java编程思想(第2版)----Java四大名著----Bruce Eckel Java编程思想(第3版)----Java四大名著----------------Bruce Eckel JAVA 2核心技术 卷I:基础知识(原书第7版)---Java四大名著-----Cay Horstmann JAVA 2核心技术 卷II:高级特性(原书第7版)----Java四大名著-----Cay Horstmann Effective Java中文版------Java四大名著--------Joshua Bloch 精通Struts:基于MVC的Java Web设计与开发---孙卫琴 精通Hibernate:Java对象持久化技术详解---孙卫琴 Tomcat与Java Web开发技术详解------------孙卫琴 Java与模式------------------------------阎宏 2、c# C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言“倚天屠龙双剑” C# Primer中文版--------Stanley B.Lippman---C#语言“倚天屠龙双剑” .NET框架程序设计(修订版)--------Jeffrey Richter“windows编程泰山北斗”---.NET平台四大天王 c#Windows程序设计----------Charles Petzold“windows编程泰山北斗”------.NET平台四大天王 .NET程序设计技术内幕-------------Jeff Prosise---.NET平台四大天王 .NET本质论--第1卷:公共语言运行库(中文版)--------Chris Sells---.NET平台四大天王 3、C++ C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父” C++ Primer (第3版)中文版----c++八大金刚---Stanley B.Lippman C++ Primer (第4版)中文版----c++八大金刚---Stanley B.Lippman C++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai M.Josuttis C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父” 深度探索C++对象模型---c++八大金刚----Stanley B.Lippman Essential C++中文版---c++八大金刚---Stanley B.Lippman Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers More Effective C++中文版----c++八大金刚------Scott Meyers C++编程思想(第2版) 第1卷:标准C++导引--------Bruce Eckel C++编程思想(第2版)第2卷:实用编程技术 --------Bruce Eckel C++程序设计--------------------------谭浩强 C++ 程序设计教程(第2版)--------------钱能 C++ Primer Plus(第五版)中文版---Stephen Prata 广博如四库全书The c++ programming language、c++ Primer 深奥如山重水复Inside the c++ object model 程序库大全The c++ standard libray 工程经验之积累Effective c++、More Effective c++、Exceptional c++ c++八大金刚: 1、Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者 2、The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++百科全书代表,圣经。 3、c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++百科全书代表。 4、Inside the c++ object model-----lippman----揭示c++底层,非常好,非常难。 5、Effective c++-----通过50个编程实例,展示专家经验,行文有趣,深处浅出。 6、More Effective c++----通过35个编程实例,展示专家经验,行文有趣,深处浅出。 7、The c++ standard libray---c++标准库的百科全书。 8、设计模式:可复用面向对象软件的基础------good! 4、c C程序设计语言(第2版·新版)---C语言“倚天屠龙双剑”---Brian W.Kernighan“C语言之父” C Primer Plus中文版(第五版)--------C语言“倚天屠龙双剑”---Stephen Prata C程序设计(第三版)---------------------------谭浩强 C语言大全(第四版)---------------------------HERBERT SCHILDT C语言接口与实现:创建可重用软件的技术-------------DAVID R.HANSON C语言参考手册(原书第5版)--------------------------Samuel P.Harbison C程序设计教程---------------------------------H.M.Deitel/P.J.Deitel C陷阱与缺陷-----------------------------------Andrew Koenig 5、VB Visual Basic .NET技术内幕-----VB编程三剑客-----------Francesco Balena“vb首席大师” Windows程序设计-Visual Basic.NET语言描述--VB编程三剑客-----Charles Petzold“windows编程泰山北斗”--- .NET框架程序设计:Visual Basic.NET语言描述--VB编程三剑客--Jeffrey Richter“windows编程泰山北斗”---,Francesco Balena“vb首席大师” Visual Basic 6编程技术大全------------------------Francesco Balena“vb首席大师” Visual Basic.NET 从入门到精通-------------------------Petroutsos,E. 高级VISUAL BASIC编程-----------------------------------MATTHEW CURLAND 6、Delphi Inside VCL(深入核心——VCL架构剖析)----------李维 Delphi 7高效数据库程序设计--------------李维 面向对象开发实践之路(Delphi版)----------李维 7、VC Windows 程序设计(第5版)-----Charles Petzold“windows编程泰山北斗”--- Windows核心编程----------Jeffrey Richter“windows编程泰山北斗”--- Windows高级编程指南---------Jeffrey Richter“windows编程泰山北斗”--- 深入浅出MFC(第二版)-----“MFC四大天王”-------侯捷 MFC Windows程序设计(第2版)---MFC四大天王”---------Jeff Prosise Visual C++ 技术内幕(第4版)--MFC四大天王”--------David Kruglinski 深入解析MFC-------------MFC四大天王”-----------George Shepherd Visual C++.NET 技术内幕(第6版)-MFC四大天王”------------David Kruglinski 8、VF Visual Foxpro程序设计参考手册-------------------张洪举 专家门诊——Visual FoxPro开发答疑160问-------------------张洪举 Visual FoxPro 6.0/9.0解决方案与范例大全-------------------张洪举 Visual FoxPro软件开发模式与应用案例-------------------张洪举 9、黑客 应用密码学(协议算法与C源程序-----------Bruce Schneier 网络信息安全的真相-----------Bruce Schneier 黑客大曝光:网络安全机密与解决方案(第5版)--------STUART MCCLURE 软件加密技术内幕------------看雪学院 加密与解密——软件保护技术与完全解决方案------------看雪学院 加密与解密(第二版)--------段钢 10、汇编 Intel微处理器结构、编程与接口(第六版)---------Barry B. Brey 80*86、奔腾机汇编语言程序设计---------Barry B. Brey Windows环境下32位汇编语言程序设计(第2版)-----------罗云彬 IBM-PC汇编语言程序设计(第2版) 本书是国内优秀教材--------沈美明 温冬婵 IBM PC汇编语言程序设计(第五版) 这本书籍是国外优秀教材-------PETER ABEL著,沈美明 温冬蝉译 11、驱动开发 Windows WDM设备驱动程序开发指南------------------------------------ Chris Cant Windows 2000/XP WDM设备驱动程序开发(第2版)--------------------------武安河 WINDOWS 2000/XP WDM设备驱动程序开发-------------------------------- 武安河 12、网络 计算机网络第四版中文版----网络编程三剑客--------------Andrew S.Tanenbaum TCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客 UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客 用TCP/IP进行网际互联-----------Douglas E. Comer 高级TCP/IP编程-------------------Jon C. Snader C++网络编程-----------------------Douglas Schmidt UNIX环境高级编程(第2版)--------------------Richard Stevens 13、算法 计算机程序设计艺术-------Donald.E.Knuth----------算法“倚天屠龙”双剑 算法导论-----------------Thomas H. Cormen--------算法“倚天屠龙”双剑 离散数学及其应用----------Kenneth H.Rosen 具体数学—计算机科学基础--------Donald.E.Knuth 14、图形编程 Windows 图形编程----------------FENG YUAN --图形编程界的Charles Petzold之书 15、数据结构 数据结构 C++语言描述》58.00(Data Structures C++) William Ford,William Topp 刘卫东 沈官林 数据结构算法与应用-C++语言描述》49.00Sartej Sahni 汪诗林 孙晓东等机械工业出版社 16、软件工程 设计模式--可复用面向对象软件的基础 重构—改善既有代码的设计 17、操作系统 深入理解计算机系统(修订版)-------RANDAL E.BRYANT 18、Unix UNIX 网络编程 卷I 套接字联网API(英文版第三版 UNIX 编程艺术 UNIX环境高级编程(英文影印第2版-----UNIX编程“圣经 UNIX环境高级编程(英文影印版)(第2版) 99-UNIX环境高级编程(第2版) UNIX环境高级编程(第2版)---UNIX编程“圣经 UNIX网络编程 第1卷:套接口API(第3版) UNIX网络编程卷2:进程间通信(第2版)(英文影印版) UNIX 网络编程(第二版)第2卷:进程间通信 UNIX编程环境 UNIX 网络编程 卷I 套接字联网API(英文版第三版 UNIX系统编程 UNIX环境高级编程 UNIX环境高级编程(英文影印版 88-LINUX内核分析及编程 UNIX 网络编程 卷I 套接字联网API(英文版第三版) UNIX网络编程 第1卷:套接口API(第3版) UNIX 网络编程(第二版)第2卷:进程间通信 UNIX网络编程卷2:进程间通信(第2版)(英文影印版) UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口API UNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版) UNIX环境高级编程 UNIX 环境高级编程(英文版) UNIX环境高级编程(第2版) Unix技术手册 19、Linux Linux内核设计与实现 Linux内核完全注释 LINUX内核分析及编程 GNU/Linux 编程指南(第二版) Linux设备驱动程序(第三版)嵌入式设计及Linux驱动开发指南——基于ARM 9处理器 Linux设备驱动程序 第三版(英文影印版) Linux内核设计与实现(第2版) Linux内核设计与实现(英文影印版)(第2版) linux技术手册 20、游戏编程 Windows游戏编程大师技巧(第二版游戏之旅--我的编程感悟 OpenGL超级宝典:第三版 OpenGL编程指南(第四版) Java 游戏高级编程 J2ME手机游戏编程入门 游戏之旅——我的编程感悟游戏开发中的人工智能(英文影印版) 3D游戏:卷2 动画与高级实时渲染技术面向对象的游戏开发 Java 游戏高级编程 3D游戏编程大师技巧游戏编程精粹面向对象的游戏开发 3D游戏 卷1:实时渲染与软件技术 3D游戏:卷2 动画与高级实时渲染技… J2ME手机游戏编程入门 Direct3D游戏编程入门教程(第二版… 21、移动开发 Windows Mobile手机应用开发 SYMBIAN OS C++手机应用开发 68-Windows Mobile手机应用开发--傅曦 齐宇 徐骏 48-SYMBIAN OS C++手机应用开发 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣译 68-SYMBIAN OS C++手机应用开发---------------RICHARD HARRISON著,周良忠译 Windows CE.net内核定制及应用程序开发---------周毓林 宁杨 陆贵强 付林林 嵌入式系统Windows CE 开发技巧与实例--傅曦 Palm OS编程实践---绝版 22、单片机 单片机轻松入门----------------------------------周坚(平凡老师) 单片机典型模块设计实例导航-----------------------求是科技 例说8051----------------------------------------张义和 陈敌北 KEIL CX51 V7.0单片机高级语言编程与ΜVISION2应用实践-----徐爱钧 单片机应用程序设计技术(修订版)--------------------周航慈 8051单片机实践与应用-------------------------------吴金戎 MCS-51系列单片机实用接口技术---------------------李华 23、串并口通讯 Visual C++/Turbo C串口通信编程实践------------------龚建伟 VISUAL BASIC与RS-232串行通信控制(最新版)----------范逸之 24、电子 无线电识图与电路故障分析轻松入门(第二版) -------------------胡斌 无线电元器件检测与修理技术轻松入门(第二版) -------------------胡斌 图表细说电子技术识图-------------------胡斌 图表细说电子元器件-------------------胡斌 图表细说元器件及实用电路-------------------胡斌

小旋风柴进 2019-12-02 01:20:32 0 浏览量 回答数 0

回答

希望对你有帮助。 一、为何要学编程。 每个人的动机不一样。大致有: 1、为了找个好工作;或为了有更好的机会和更好的发展。 2、看到别人超厉害,所以也想学。 3、实际工作中很多场合需要。 4、从小就立志做个程序员,做软件工程师。 5、振兴中国的软件事业。 。。。。。。 ================================================ 二、如何学编程。 1、多看好书。 差书误人子弟,不但浪费时间和精力,而且打击人的信心,差书使人很久都不会,让会让人怀疑自已的学习能力。 现在的书很多,但好书很少,特别是被大家公认很有价值的好书,更是少之又少。历经多年时间考验和市场风雨不残酷洗礼而仅存的巨著,更是极其稀少。中国历史上文学小说类书本多如牛毛,但仅存的巨著,也只不过<<红楼梦>>等四本名著而已,编程方面也是如此。 2、多动手。 这一点很重要。而且特别重要。“纸上得来终觉浅,绝知此事要躬行。”陆游的千古名句说的就是这个道理,并且同样适合于编程方面。 ================================================ 三、用什么语言最好。 这主要取决于应用领域,每种语言都有自已的长处和不足。 1、汇编语言和C语言在单片机及工控领域用较多。另外C语言也是一种通用语言,是学C++/c#的起点。 2、C++系统编程等多个方面,最常用的编译器是VC。 3、C#/java网络编程方面新兴的。 4、VB通用。 5、还有Delphi等。。。。。。 个人建议:从未编过程的,就从学vb开始。有基础的可直接学c++/VC。 =================================================== 四、有什么好书。 几年前,台湾著名技术作家侯捷先生曾经写过一篇影响很大的书评文章,叫做《MFC四大天王》。文章的意思是说在MFC的浩瀚书海中,只要认真研读和学习其中四本,就可以“五岳归来不看山”。侯先生虽以MFC为例,但是这个道理却同样适合于MFC之外的很多具体技术领域,这不能不说是一个有趣的统计现象。 通常在某一个具体细分的技术领域,会自然而然地出现3-5本顶级著作,它们彼此互相配合,形成一个完整的体系。对于学习者来说,只需要认真研读这几本书,就足以升堂入室。我乐于将这种现称为“四书五经现象”。对于读者来说,如果能够找到该领域中的“四书五经”,则无论在时间上还是金钱上都是最经济的选择。好书几本,胜过烂书几捆,这个体会想必大家都有。在此,帮助大家遴选各个技术领域里的“四书五经”。 编程的书可谓汗牛充栋,其中经典也是不泛其数,但绝大多数的过来人,都一致认为,要想很快的入门并尽快的投入到编程实践中,只要其中的四到五本也就够了,即只看经典中的经典,圣经级的书就可以了。 所谓活到老学到老,程序员是个终身学习的职业,要不断的看书,直到放弃编程的那一天。所以,您要读的好书也绝非以下推荐的这些书哟,呵呵。 一句话,由于我们的时间、精力、金钱都是有限的,如何以最小的代价换得最大的收获。 ================================================================ 五、经典好书分类热销榜 1、java java编程语言(第三版)---java四大名著----James Gosling(java之父) java编程思想(第2版)----java四大名著----Bruce Eckel java编程思想(第3版)----java四大名著----------------Bruce Eckel java 2核心技术 卷I:基础知识(原书第7版)---java四大名著-----Cay Horstmann java 2核心技术 卷II:高级特性(原书第7版)----java四大名著-----Cay Horstmann Effective java中文版------java四大名著--------Joshua Bloch 精通Struts:基于MVC的java Web设计与开发---孙卫琴 精通Hibernate:java对象持久化技术详解---孙卫琴 Tomcat与java Web开发技术详解------------孙卫琴 java与模式------------------------------阎宏 2、c# C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言“倚天屠龙双剑” C# Primer中文版--------Stanley B.Lippman---C#语言“倚天屠龙双剑” .NET框架程序设计(修订版)--------Jeffrey Richter“windows编程泰山北斗”---.NET平台四大天王 C# Windows程序设计----------Charles Petzold“windows编程泰山北斗”------.NET平台四大天王 .NET程序设计技术内幕-------------Jeff Prosise---.NET平台四大天王 .NET本质论--第1卷:公共语言运行库(中文版)--------Chris Sells---.NET平台四大天王 3、C++ C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父” C++ Primer (第3版)中文版----c++八大金刚---Stanley B.Lippman C++ Primer (第4版)中文版----c++八大金刚---Stanley B.Lippman C++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai M.Josuttis C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父” 深度探索C++对象模型---c++八大金刚----Stanley B.Lippman Essential C++中文版---c++八大金刚---Stanley B.Lippman Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers More Effective C++中文版----c++八大金刚------Scott Meyers C++编程思想(第2版) 第1卷:标准C++导引--------Bruce Eckel C++编程思想(第2版)第2卷:实用编程技术 --------Bruce Eckel C++程序设计--------------------------谭浩强 C++ 程序设计教程(第2版)--------------钱能 C++ Primer Plus(第五版)中文版---Stephen Prata 广博如四库全书The c++ programming language、c++ Primer 深奥如山重水复Inside the c++ object model 程序库大全The c++ standard libray 工程经验之积累Effective c++、More Effective c++、Exceptional c++ c++八大金刚: 1、Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者 2、The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++百科全书代表,圣经。 3、c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++百科全书代表。 4、Inside the c++ object model-----lippman----揭示c++底层,非常好,非常难。 5、Effective c++-----通过50个编程实例,展示专家经验,行文有趣,深处浅出。 6、More Effective c++----通过35个编程实例,展示专家经验,行文有趣,深处浅出。 7、The c++ standard libray---c++标准库的百科全书。 8、设计模式:可复用面向对象软件的基础------good! 4、c C程序设计语言(第2版·新版)---C语言“倚天屠龙双剑”---Brian W.Kernighan“C语言之父” C Primer Plus中文版(第五版)--------C语言“倚天屠龙双剑”---Stephen Prata C程序设计(第三版)---------------------------谭浩强 C语言大全(第四版)---------------------------HERBERT SCHILDT C语言接口与实现:创建可重用软件的技术-------------DAVID R.HANSON C语言参考手册(原书第5版)--------------------------Samuel P.Harbison C程序设计教程---------------------------------H.M.Deitel/P.J.Deitel C陷阱与缺陷-----------------------------------Andrew Koenig 5、VB Visual Basic .NET技术内幕-----VB编程三剑客-----------Francesco Balena“vb首席大师” Windows程序设计-Visual Basic.NET语言描述--VB编程三剑客-----Charles Petzold“windows编程泰山北斗”--- .NET框架程序设计:Visual Basic.NET语言描述--VB编程三剑客--Jeffrey Richter“windows编程泰山北斗”--- Visual Basic 6编程技术大全------------------------Francesco Balena“vb首席大师” Visual Basic.NET 从入门到精通-------------------------Petroutsos,E. 高级VISUAL BASIC编程-----------------------------------MATTHEW CURLAND 6、Delphi Inside VCL(深入核心——VCL架构剖析)----------李维 Delphi 7高效数据库程序设计--------------李维 面向对象开发实践之路(Delphi版)----------李维 7、VC Windows 程序设计(第5版)-----Charles Petzold“windows编程泰山北斗”--- Windows核心编程----------Jeffrey Richter“windows编程泰山北斗”--- Windows高级编程指南---------Jeffrey Richter“windows编程泰山北斗”--- 深入浅出MFC(第二版)-----“MFC四大天王”-------侯捷 MFC Windows程序设计(第2版)---MFC四大天王”---------Jeff Prosise Visual C++ 技术内幕(第4版)--MFC四大天王”--------David Kruglinski 深入解析MFC-------------MFC四大天王”-----------George Shepherd Visual C++.NET 技术内幕(第6版)-MFC四大天王”------------David Kruglinski 8、vf Visual Foxpro程序设计参考手册-------------------张洪举 专家门诊——Visual FoxPro开发答疑160问-------------------张洪举 Visual FoxPro 6.0/9.0解决方案与范例大全-------------------张洪举 Visual FoxPro软件开发模式与应用案例-------------------张洪举 9、黑客 应用密码学(协议算法与C源程序-----------Bruce Schneier 网络信息安全的真相-----------Bruce Schneier 黑客大曝光:网络安全机密与解决方案(第5版)--------STUART MCCLURE 软件加密技术内幕------------看雪学院 加密与解密——软件保护技术与完全解决方案------------看雪学院 加密与解密(第二版)--------段钢 10、汇编 Intel微处理器结构、编程与接口(第六版)---------Barry B. Brey 80*86、奔腾机汇编语言程序设计---------Barry B. Brey Windows环境下32位汇编语言程序设计(第2版)-----------罗云彬 IBM-PC汇编语言程序设计(第2版) 本书是国内优秀教材--------沈美明 温冬婵 IBM PC汇编语言程序设计(第五版) 这本书籍是国外优秀教材-------PETER ABEL著,沈美明 温冬蝉译 11、驱动开发 Windows WDM设备驱动程序开发指南------------------------------------ Chris Cant Windows 2000/XP WDM设备驱动程序开发(第2版)--------------------------武安河 WINDOWS 2000/XP WDM设备驱动程序开发-------------------------------- 武安河 12、网络 计算机网络第四版中文版----网络编程三剑客--------------Andrew S.Tanenbaum TCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客 UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客 用TCP/IP进行网际互联-----------Douglas E. Comer 高级TCP/IP编程-------------------Jon C. Snader C++网络编程-----------------------Douglas Schmidt UNIX环境高级编程(第2版)--------------------Richard Stevens 13、算法 计算机程序设计艺术-------Donald.E.Knuth----------算法“倚天屠龙”双剑 算法导论-----------------Thomas H. Cormen--------算法“倚天屠龙”双剑 离散数学及其应用----------Kenneth H.Rosen 具体数学—计算机科学基础--------Donald.E.Knuth 14、图形编程 Windows 图形编程----------------FENG YUAN --图形编程界的Charles Petzold之书 15、数据结构 数据结构 C++语言描述》58.00(Data Structures C++) William Ford,William Topp 刘卫东 沈官林 数据结构算法与应用-C++语言描述》49.00Sartej Sahni 汪诗林 孙晓东等机械工业出版社 16、软件工程 设计模式--可复用面向对象软件的基础 重构—改善既有代码的设计 17、操作系统 深入理解计算机系统(修订版)-------RANDAL E.BRYANT 18、Unix UNIX 网络编程 卷I 套接字联网API(英文版 第三版 UNIX 编程艺术 UNIX环境高级编程(英文影印第2版-----UNIX编程“圣经 UNIX环境高级编程(英文影印版)(第2版) UNIX环境高级编程(第2版) UNIX环境高级编程(第2版)---UNIX编程“圣经 UNIX网络编程 第1卷:套接口API(第3版) UNIX网络编程卷2:进程间通信(第2版)(英文影印版) UNIX 网络编程(第二版)第2卷:进程间通信 UNIX编程环境 UNIX 网络编程 卷I 套接字联网API(英文版 第三版 UNIX系统编程 UNIX环境高级编程 UNIX 网络编程 卷I 套接字联网API(英文版 第三版) UNIX网络编程 第1卷:套接口API(第3版) UNIX 网络编程(第二版)第2卷:进程间通信 UNIX网络编程卷2:进程间通信(第2版)(英文影印版) UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口API UNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版) UNIX环境高级编程 Unix技术手册 19、Linux Linux内核设计与实现 Linux内核完全注释 LINUX内核分析及编程 GNU/Linux 编程指南(第二版) Linux设备驱动程序(第三版) 嵌入式设计及Linux驱动开发指南——基于ARM 9处理器 Linux设备驱动程序 第三版(英文影印版) Linux内核设计与实现(第2版) Linux内核设计与实现(英文影印版)(第2版) linux技术手册 20、游戏编程 Windows游戏编程大师技巧(第二版 游戏之旅--我的编程感悟 OpenGL超级宝典:第三版 OpenGL编程指南(第四版) java 游戏高级编程 J2ME手机游戏编程入门 游戏之旅——我的编程感悟 游戏开发中的人工智能(英文影印版) 3D游戏:卷2 动画与高级实时渲染技术 面向对象的游戏开发 java 游戏高级编程 3D游戏编程大师技巧 游戏编程精粹 面向对象的游戏开发 3D游戏 卷1:实时渲染与软件技术 3D游戏:卷2 动画与高级实时渲染技… J2ME手机游戏编程入门 Direct3D游戏编程入门教程(第二版… 21、移动开发 Windows Mobile手机应用开发 SYMBIAN OS C++手机应用开发 Windows Mobile手机应用开发--傅曦 齐宇 徐骏 SYMBIAN OS C++手机应用开发 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣译 SYMBIAN OS C++手机应用开发---------------RICHARD HARRISON著,周良忠译 Windows CE.net内核定制及应用程序开发---------周毓林 宁杨 陆贵强 付林林 嵌入式系统Windows CE 开发技巧与实例--傅曦 Palm OS编程实践---绝版 22、单片机 单片机轻松入门----------------------------------周坚(平凡老师) 单片机典型模块设计实例导航-----------------------求是科技 例说8051----------------------------------------张义和 陈敌北 KEIL CX51 V7.0单片机高级语言编程与ΜVISION2应用实践-----徐爱钧 单片机应用程序设计技术(修订版)--------------------周航慈 8051单片机实践与应用-------------------------------吴金戎 MCS-51系列单片机实用接口技术---------------------李华 23、串并口通讯 Visual C++/Turbo C串口通信编程实践------------------龚建伟 VISUAL BASIC与RS-232串行通信控制(最新版)----------范逸之 24、电子 无线电识图与电路故障分析轻松入门(第二版) -------------------胡斌 无线电元器件检测与修理技术轻松入门(第二版) -------------------胡斌 图表细说电子技术识图-------------------胡斌 图表细说电子元器件-------------------胡斌 图表细说元器件及实用电路-------------------胡斌 ================================================================ 六、怎样成为一名程序员 通过以下4个阶段的训练, 没有任何编程基础人就可以成为一名普通的程序员。 第一阶段:掌握一种编程语言 学习内容:学习任意一种主流的编程语言。例如C++语言。 学习目标:熟练掌握一种语言的语法和基本的编程技巧。 学习时间:3个月左右 注意事项:编程语言和编程工具是两回事情,编程语言是指C++、Basic、Object Pascal等程序设计语言,它们是像汉语、英语一样的抽象的语法规则,编程工具是指Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代码编辑器、程序编译器在内的集成化、可视化的软件开发工具。C++源程序可以在Visual C++ 6.0里编写,也可以在记事本里编写,而同一个C++源程序可以用Visual C++ 6.0编译、执行,也可以用C++ Builder 5.0 编译、执行,所以: C++ 不等于 Visual C++ 6.0 第二阶段:掌握一种编程工具 学习内容:学习任意一种主流的编程工具。注意编程工具要和第一阶段学习的编程语言一致,例如你学习的编程语言是C++,那么编程工具要选Visual C++ 6.0或者C++ Builder 5.0。 学习目标:熟练掌握这种编程工具基本用法,例如:菜单、组件、程序跟踪调试、编写Windows程序等。 学习时间:3个月左右 注意事项:这个阶段侧重编程工具的使用,同时进一步熟习编程语言,最后达到能熟练编写各种基本的Windows程序。 第三阶段:掌握“算法与数据结构”这门课程 学习内容:算法与数据结构,推荐许卓群的《数据结构》,高等教育出版社出版。 学习目标:熟练掌握各种常用的算法与数据结构 学习时间:4个月左右 注意事项:这是一门不可或缺的软件开发课程,曾经有一本经典计算机专业书籍叫做《数据结构+算法=程序》,这说明了数据结构和算法的重要性。它能帮我们建立良好的程序分析与设计能力。 第四阶段:实现一个模拟的小型软件项目 学习内容:软件项目的开发过程 学习目标:掌握软件项目的基本开发过程和方法 学习时间:4个月左右 注意事项:自己完成一个模拟的小型软件项目,强烈推荐做一个MIS(管理信息系统)软件,参考用书推荐“中小型信息管理系统开发实例系列丛书”,人民邮电出版社,它的例子详实有效,以它为基础再加以扩展,就可以做出实用的MIS软件来。此丛书包括多种开发工具,大家可以选择适合自己的:《VISUAL FOXPRO6.0 数据库系统开发实例导航》 《java数据库系统开发实例导航》 《VISUAL BASIC数据库系统开发实例导航》《VISUAL C++6.0数据库系统开发实例导航》 《ASP.NET数据库管理系统开发实例导航》 《DELPHI数据库系统开发实例导航》《POWERBUILDER 8.0数据库系统开发实例导航》。 最后将完成的模拟软件刻成光盘,作为自己的作品去面试,以此踏上自己光辉的职业程序员之路。

青衫无名 2019-12-02 01:20:33 0 浏览量 回答数 0

回答

OSC 第 128 期高手问答 -- Python3 开发实战 @壁_花 @idisikx @hell0cat @DarkAngel @北京老爷们儿      恭喜以上五位网友或获得《Python Web开发实战》图书一本  请私信 @博文视点   告知快递信息(格式:姓名+电话+地址+邮编号码)!  ######@dongwm :不知作者有没有涉及过大数据方向的?我看部分大数据相关的都要用到python这是为什么?Hadoop整个生态圈都是Java的,python的定位是什么?######@dongwm :其实我是一个狂热的Python爱好者,但是还是想问: 用Python来进行Web开发,与它的其他竞争者相比,有什么优势呢?比如,与Ruby On Rails相比,它能更敏捷(快速)地开发,用写尽量少的代码来完成任务吗?与Node.js和Golang相比,它在支持高并发、多线程、执行性能等方面有什么优势吗?如果一些性能方面的优化可以通过编写C扩展模块,或者通过cffi、Boost.Python、Cython等方式进行优化,Node.js、Ruby等同样可以做到。一句话概括上面的问题就是:是什么原因吸引我们使用Python来进行Web开发呢?######@dongwm : 按照“没有银弹”一说,python应该也有自己的适用范围吧,是不是比较适用于机器学习,不适合于web开发呢?######Python被称为「胶水语言」,虽然没有「统治」哪个领域,但是基本上个个领域都把手伸了进去。 机器学习我不熟不敢妄谈是不是更合适。我只能说,Python很适合web开发######使用豆瓣很多年,很喜欢豆瓣的风格。之前一直是在网页端浏览,后来又到了手机app端。我总体感觉豆瓣的进步很快。我想问的问题是,python web一直作为豆瓣的开发首选,是因为什么?还有关于豆瓣的权限模块的设计时,python web发挥了什么优势。作为手机端app的开发,python web会起到什么作用吗?######回复 @机器猫123 : 会的。也许不会开源,但是酱厂里面确实有很多不错的实现######回复 @dongwm : 未来豆瓣会继续用python web衍生开发新的产品吗?######回复 @dongwm : 谢谢老师的回答。######豆瓣选择Python,其实是公司和语言的风格很相似的缘故吧。我们做事喜欢优雅,清晰,高效,这这好也是Python希望的。 豆瓣的基础设施基本都是使用Python完成,包含权限部分,但是Python web和权限模块设计感觉没啥直接的关系,就是抽出来的库和使用它的关系,我也没懂有什么优势或者劣势。 豆瓣app的API后端是使用PythonWeb完成的###### 引用来自“DarkAngel”的评论 @dongwm :其实我是一个狂热的Python爱好者,但是还是想问: 用Python来进行Web开发,与它的其他竞争者相比,有什么优势呢?比如,与Ruby On Rails相比,它能更敏捷(快速)地开发,用写尽量少的代码来完成任务吗?与Node.js和Golang相比,它在支持高并发、多线程、执行性能等方面有什么优势吗?如果一些性能方面的优化可以通过编写C扩展模块,或者通过cffi、Boost.Python、Cython等方式进行优化,Node.js、Ruby等同样可以做到。一句话概括上面的问题就是:是什么原因吸引我们使用Python来进行Web开发呢? 引用来自“dongwm”的评论ROR我倒没有实际的用过,不敢妄言。Python最大的优势是他是一个「胶水」语言,在工作中的各个方向都能看到Python对应的库的身影,学会Python会让你的路比较宽,但是用ruby,可能在我印象里面就是Web开发比较有名。我现在还没有发现做Web开发有比Python效率高的方式。 其实很多人都担心Python的执行效率,然而其实绝大多数情况Python足够快,不快的话要先看看自己是不是用得不对或者不好。现在硬件资源很廉价,除非上升到BAT那种规模,否者基本还没有到达讨论语言瓶颈的问题。现在豆瓣绝大多数基础设施都是使用Python开发的。在Web开发中,我们很少通过写扩展的方式提高性能,其实编程语言一般都不是网站性能的瓶颈,还可以通过其他方式解决。 之前学ROR是因为老师要求用这个,我没有用Python进行Web开发的经验,稍微有一点了解的也只是Flask或者Falcon这种轻量级的,感觉能够快速开发小巧的应用,但是不知道有哪个特别出名的应用或者网站系统是由Python开发的(比如WordPress和Discuz用的PHP,Gitlab用的Ruby,OSC好像用的是Java吧)。Python确实是一种比较万能的语言,但有点万金油却不够专精的感觉。比如在科学计算方面很流行,但是论效率不如Julia,论支持库的丰富和使用广泛度不如Matlab(特别是学校里面,教授做研究或者教学一般都会用Matlab);在系统管理方面看,能用Python干的脚本化工作,用shell或者perl基本上都能干,而且需要写的代码行数说不定更少。如果说用Python进行Web开发效率高,是有特指某一个框架吗,还是泛指? 我在写程序时首先会想到用Python,是因为喜欢tial-and-error这种方式,能够在正式写代码前确认想法能不能实现,能够让我有兴趣和信心继续下去。但真要说起来,能够提供REPL特性的语言也不少。 Python的执行效率貌似永远是Python热门的讨论话题,比如GIL的存在必须要用特殊的方式来优化。像gevent和Tornado之类的存在也适用于高并发的网络连接(不过Python在这方面的性能不一定是最高的,没有看过相关的测试)。再说Python的实现,除了最出名的CPython和PyPy之外,甚至还有为嵌入式设备开发的MicroPython(这也在另一方面说明了Python的万能性)。Dropbox的技术栈中也使用了Python,并且有开发面向性能的Python实现pyston,此外还有Stackless Python(听名字感觉很厉害,虽然其实我并没有去了解这到底是什么),但它家也在用Golang和Rust开发高性能的东西。那么,豆瓣的基础设施实现中,用Python开发的应用效率如何?也有使用除了CPython之外的实现来进行优化吗?(我是不是扯得有点偏题了?) ######回复 @dongwm : 那么用Python来开发Web,是否属于那种会带来这种优势的选择呢?或者有没有哪家公司通过把技术栈切换到Python而带来了这种进步?######回复 @dongwm : 以现在的硬件发展水平,基本上任何数量级的访问都可以通过硬件的堆砌获得支持。不过经常会看到新闻,比如某某公司将它的某某技术构架从XX语言切换到了YY语言,然后获得了性能提升、提高了稳定性、减少了部署的服务器等优势,(我记忆中有看到Twitter的新闻,PHP 7的新闻,还有一些其他的)。######豆瓣每天服务着千万级别的用户(抱歉不能说具体数字)的请求,绝大多数应用和基础设施都是Python实现的。所以应用效率不用担心。虽然可以使用C/C++的扩展提高运行效率,但是我接触的场景里面很少。相当于写扩展的维护性和成本,大家更愿意从架构,算法等方面来解决。######嚯,你的问题好长。 进行Web开发效率高算是泛指,包含django和flask。效率高也体现在它们的第三方扩展和支持比较完善,基本能想到的都有对应的项目支持,这样少造了很多轮子。###### @dongwm :python的确很好,也很强大,我也一直在用,但我大都做的和web方面没有什么联系.而我对web方面挺感兴趣,但自学起来始终不得要领,进展有点慢,大神能否讲一讲web方面的学习经验,或者flask方面的心得.又或者推荐一些关于web好的学习资源.期待您的回答并致谢.###### @dongwm :了解Python基本知识,希望学习一门Python web框架学习后端开发。之前我对部分主流框架进行了一些了解:Django,Tornado,在知乎上有一个非常活跃的群体。在框架的选择问题上,只有最适合你自己、最适合你的团队的框架。编程语言选择也是一个道理,你的团队Python最熟就用Python好了,其实大部分人是没必要太关心框架的性能的,因为你开发的网站根本就是个小站,能上1万的IP的网站已经不多了,上10万的更是很少很少。在没有一定的访问量前谈性能其实是没有多大意义的,因为你的CPU和内存一直就闲着呢。而且语言和框架一般也不会是性能瓶颈,性能问题最常出现在数据库访问和文件读写上。 ######嗯 赞同你的观点。很多人在杞人忧天。先等活到有必要讨论语言的那一天,那时候早就有钱有人有时间,哪怕Python真的不满足,重构呗######@dongwm :Python确实越来越火了,知乎就是python做的,偶尔搞了一点,发现确实很高级,至少比java语言高级一些某些功能Java只需要写100行,而Python可能只要20行。做一些外维系统还是挺方便的,比如日志的提取等,之前学的是2.7版本,现在python3比之前的版本有哪些新特性呢? ######python 3是相当于站在Python2的肩膀上,摒弃了早年设计python 2的错误思想(所以有的地方向前不兼容),加了一些新的语法,比如asyncio,甚至type hint(我不喜欢)。 具体的内容可以看 https://docs.python.org/3/whatsnew/index.html。 总体上和Python 2区别不大。不用纠结Python 2/3###### @dongwm :初入门python,有c、java基础。再看《python基础教程(第二版)》。请问您有推荐的书籍吗?######我个人在知乎专栏写过一篇推荐书的文章 https://zhuanlan.zhihu.com/p/22198827。我建议有一些其他语言基础的同学好好地看看《Python学习手册》,如果你英语比较好,建议直接看原著。《Python基础教程》虽然是一个经典的入门教程,写作风格也相对轻松幽默,但是由于本书写作于2010年,书中有大量内容已经过时,所以不推荐! ========================== Python "RemoteError: Remote error: UnicodeEncodeError 'ascii' codec can't encode ch:报错 {   "traceback": "  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/st2actions/container/base.py\", line 99, in _do_run\n    LOG.debug('Performing run for runner: %s' % (runner.runner_id), extra=extra)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 49, in wrapped_f\n    def wrapped_f(*args, **kw):\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 206, in call\n    if not self.should_reject(attempt):\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 247, in get\n    else:\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 200, in call\n    try:\n  File \"/opt/stackstorm/runners/mistral_v2/mistral_v2.py\", line 219, in run\n    result = self.start(action_parameters=action_parameters)\n  File \"/opt/stackstorm/runners/mistral_v2/mistral_v2.py\", line 256, in start\n    **options)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/v2/executions.py\", line 56, in create\n    return self._create('/executions', data)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/base.py\", line 95, in _create\n    self._raise_api_exception(resp)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/base.py\", line 143, in _raise_api_exception\n    error_message=error_data)\n",         "error": "RemoteError: Remote error: UnicodeEncodeError 'ascii' codec can't encode character u'\\xae' in position 169: ordinal not in range(128)\n[u'Traceback (most recent call last):\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/server.py\", line 155, in _process_incoming\\n    failure = None\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 222, in dispatch\\n    if hasattr(endpoint, method):\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 192, in _do_dispatch\\n    new_args[argname] = self.serializer.deserialize_entity(ctxt, arg)\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/engine/engine_server.py\", line 98, in start_workflow\\n    (rpc_ctx, workflow_identifier, utils.cut(workflow_input),\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/utils/__init__.py\", line 284, in cut\\n    return cut_dict(data, length=length)\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/utils/__init__.py\", line 198, in cut_dict\\n    v = str(value)\\n', u\"UnicodeEncodeError: 'ascii' codec can't encode character u'\\\\xae' in position 169: ordinal not in range(128)\\n\"]." }

kun坤 2020-06-15 11:08:13 0 浏览量 回答数 0

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

学生动手场景应用,快速了解并掌握云服务器的各种新奇玩法!

回答

MVC MVC模式最初生根于服务器端的Web开发,后来渐渐能够胜任客户端Web开发,能够满足其复杂性和丰富性。 这里写图片描述 MVC是Model-View-Controller的缩写,它将应用程序划分为三个部分: Model: 模型(用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法) View: 视图(渲染页面) Controller: 控制器(M和V之间的连接器,用于控制应用程序的流程,及页面的业务逻辑) MVC特点: MVC模式的特点在于实现关注点分离,即应用程序中的数据模型与业务和展示逻辑解耦。在客户端web开发中,就是将模型(M-数据、操作数据)、视图(V-显示数据的HTML元素)之间实现代码分离,松散耦合,使之成为一个更容易开发、维护和测试的客户端应用程序。 View 传送指令到 Controller ; Controller 完成业务逻辑后,要求 Model 改变状态 ; Model 将新的数据发送到 View,用户得到反馈。 MVC流程: MVC流程一共有两种,在日常开发中都会使用到。 一种是通过 View 接受指令,传递给 Controller,然后对模型进行修改或者查找底层数据,最后把改动渲染在视图上。 这里写图片描述 另一种是通过controller接受指令,传给Controller: 这里写图片描述 MVC优点: 耦合性低,视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码。 重用性高 生命周期成本低 MVC使开发和维护用户接口的技术含量降低 可维护性高,分离视图层和业务逻辑层也使得WEB应用更易于维护和修改 部署快 MVC缺点: 不适合小型,中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。 视图与控制器间过于紧密连接,视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。 视图对模型数据的低效率访问,依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。 MVC应用: 在web app 流行之初, MVC 就应用在了java(struts2)和C#(ASP.NET)服务端应用中,后来在客户端应用程序中,基于MVC模式,AngularJS应运而生。 MVP MVP(Model-View-Presenter)是MVC的改良模式,由IBM的子公司Taligent提出。和MVC的相同之处在于:Controller/Presenter负责业务逻辑,Model管理数据,View负责显示只不过是将 Controller 改名为 Presenter,同时改变了通信方向。 MVP特点: M、V、P之间双向通信。 View 与 Model 不通信,都通过 Presenter 传递。Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现。 View 非常薄,不部署任何业务逻辑,称为”被动视图”(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。 Presenter与具体的View是没有直接关联的,而是通过定义好的接口进行交互,从而使得在变更View时候可以保持Presenter的不变,这样就可以重用。不仅如此,还可以编写测试用的View,模拟用户的各种操作,从而实现对Presenter的测试–从而不需要使用自动化的测试工具。 与MVC区别: 这里写图片描述 在MVP中,View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部。 这里写图片描述 在MVC中,View会直接从Model中读取数据而不是通过 Controller。 MVP优点: 模型与视图完全分离,我们可以修改视图而不影响模型; 可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部; 我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁; 如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)。 MVP缺点: 视图和Presenter的交互会过于频繁,使得他们的联系过于紧密。也就是说,一旦视图变更了,presenter也要变更。 MVP应用: 可应用与Android开发。 MVVM MVVM是Model-View-ViewModel的简写。微软的WPF(Windows Presentation Foundation–微软推出的基于Windows 的用户界面框架)带来了新的技术体验, 使得软件UI层更加细节化、可定制化。与此同时,在技术层面,WPF也带来了 诸如Binding(绑定)、Dependency Property(依赖属性)、Routed Events(路由事件)、Command(命令)、DataTemplate(数据模板)、ControlTemplate(控制模板)等新特性。MVVM模式其实是MV模式与WPF结合的应用方式时发展演变过来的一种新型架构模式。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。 这里写图片描述 MVVM优点: MVVM模式和MVC模式类似,主要目的是分离视图(View)和模型(Model),有几大优点: 低耦合,视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的”View”上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。 可重用性,可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。 独立开发,开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xml代码。 可测试,界面向来是比较难于测试的,而现在测试可以针对ViewModel来写。

景凌凯 2020-04-06 21:07:31 0 浏览量 回答数 0

问题

一台tomcat服务器,应对峰值200人的压力,为何会卡。403.10 禁止访问:配置无效 

kun坤 2020-05-28 13:24:42 3 浏览量 回答数 1

问题

使用 dd 命令实现 SAN 存储的快照数据迁移:报错

kun坤 2020-06-06 12:01:16 1 浏览量 回答数 1

问题

TiDB集群手动安装

mq4096 2019-12-01 21:43:52 2973 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云任何版本的企业邮箱服务禁止发送营销邮件,营销邮件标准及相关规范,参见中国互联网协会反垃圾信息中心的管理规范。中国互联网协会电子邮件营销规范(V1.2)来源:反垃圾信息中心一、总则1.1 为规范电子邮件形式的市场营销行为,统一电子邮件营销[注1]的基本要求,为接收和发送营销内容的电子邮件提供依据,保护电子邮件用户的合法权益,根据我国相关法律法规的规定,制定本规范。1.2 本规范适用于电子邮件营销活动的开展和评价。1.3 本规范基于《互联网电子邮件服务管理办法》(中华人民共和国信息产业部令第38号)制定,从事电子邮件营销除应执行本规范外,还应符合《互联网电子邮件服务管理办法》及其他国家现行的有关标准的规定。二、基本规定2.1 中国互联网协会对电子邮件营销服务提供者[注2]实行登记备案管理。电子邮件营销服务提供者应当在开展电子邮件营销活动前将电子邮件发送服务器所使用的IP地址[注11]及相关信息向中国互联网协会反垃圾信息中心登记备案,并遵守以下规定:2.1.1需报备的 IP 地址及相关信息(1)备案单位基本情况,包括备案单位名称、备案单位地址、备案单位性质、备案单位组织机构代码、备案单位营业执照注册号、备案单位经营范围、备案单位注册资金、备案单位网站域名、备案单位法人代表姓名、备案单位联系人姓名、联系人电话、 联系人电子邮件、联系人即时通信方式等。(2)备案单位电子邮件发送服务器IP地址分配使用信息,包括备案单位用于发送电子邮件的IP地址数量、IP地址、IP地址段、IP地址所属单位名称、IP地址对应域名、IP地址对应发送营销电子邮件[注3]性质/类型(事务性邮件和商业性邮件等);(3)备案单位可自愿报备每次电子邮件营销活动的信息,包括本次营销活动使用IP地址、域名、发件人邮箱地址、电子邮件HELO[注19]信息、收件人数量、发送周期、平均发送速率[注10]、单IP最大发送速率、发送营销电子邮件性质/类型(事务性邮件和商业性邮件等)、营销电子邮件的原信/样信等。(4)其他需要备案的信息。2.1.2 电子邮件营销服务提供者拟变更电子邮件营销服务信息的,应当提前办理变更登记手续。2.1.3 电子邮件营销服务提供者提交的备案信息必须完整、真实、有效且符合我国相关法律法规规定。2.1.4 中国互联网协会反垃圾信息中心负责审核电子邮件营销服务提供者提交的备案资料,对符合要求的备案单位发放电子邮件营销备案资质证书。2.2 电子邮件营销服务提供者应当确保所有与电子邮件服务有关的域名和IP地址注册信息正确、完整和及时更新,并遵守以下规定:2.2.1 发送电子邮件的服务器IP地址必须使用静态IP[注12]地址,并已采取IP反向解析[注13]措施。2.2.2 发送电子邮件的邮箱域名建议与发送电子邮件的服务器IP反向解析的域名信息一致,并已采取SPF解析[注14]。2.2.3 建议使用DKIM[注15]、DMARC[注16]等反垃圾邮件技术,提高与电子邮件发送相关的域名和IP的信誉。2.2.4 关注知名的RBL[注17]组织列表,如果发现与电子邮件发送相关的域名、IP或邮箱地址出现在知名的RBL[注17]组织列表上,应及时采取措施进行申诉和解封。2.2.5 建议发送事务性邮件和商业性邮件的服务器分配不同的IP地址和发送邮箱地址。2.2.6 具有特殊功能的账户,如postmaster@账户(邮件管理员账户)或abuse@账户(投诉账户),必须保证其有效,并由专人负责管理维护。2.3 电子邮件营销服务提供者应当建立可靠有效的订阅[注5]及退订[注9]机制,并遵守以下规定:2.3.1未经电子邮件接收者明确许可,不得向其发送营销电子邮件。获取接收者许可的过程和内容应清楚、明确,且不违背我国的相关法律规定。电子邮件营销服务提供者应公布获取接收者许可的策略,保存接收者同意接收营销邮件的许可记录,以便在需要时向接收者提供相关信息。2.3.2营销电子邮件必须提供给接收者至少包含一种退订的途径和具体操作方法,退订信息应醒目、清晰,退订操作方法应简单,有效。2.3.3确保退订请求可以正常发送并能够被及时自动响应处理。不得强制要求用户提交退订原因或设置退订条件,退订请求发出后应在3个工作日内生效。2.4 电子邮件营销服务提供者应规范的使用和维护其营销用户[注4]的电子邮件地址列表[注6],并遵守以下规定:2.4.1 电子邮件营销服务提供者对营销用户的个人信息和电子邮件地址负有保密的义务。未经用户同意,不得泄露用户的个人信息和电子邮件地址,法律、行政法规另有规定的除外。2.4.2 电子邮件营销服务提供者应制定安全合理的隐私策略[注8]。营销用户的个人信息资料和电子邮件地址的使用应与收集目的一致,未经用户同意,不得用于收集目的以外的其它用途。2.4.3 必须保证每个电子邮件地址的取得都经过了用户的许可。尽量确保每个电子邮件地址都是真实有效的。2.4.4 应合理处理邮件投递过程中接收电子邮件的服务器返回的错误代码[注7]。对于返回代码表示不存在的电子邮件地址,应及时从发送列表中删除;对于连续出现投递错误的电子邮件地址,建议及时调整投递策略,减少可能导致错误发生的情况。2.5 电子邮件营销服务提供者应使用规范的电子邮件格式与内容,并遵守以下规定:2.5.1 营销电子邮件的内容不得违反我国相关法律法规规定。2.5.2 营销电子邮件格式应符合国际通用规范标准(参见RFC 2822)。邮件中如果包含HTML格式,应遵循由万维网联盟(W3C)公布的w3.org[注18]设计规范。2.5.3 营销电子邮件应标明邮件发送方的身份和真实的可返回的邮件发送地址。邮件的标题和信体要能准确的反映出邮件的内容、真实来源和通信目的。邮件正文应包含发送方的名称、地址、联系电话和电子邮件地址等详细信息。2.5.4 营销电子邮件的主题与内容必须相匹配。邮件内容应与营销用户的订阅内容一致。2.5.5 应采取有效的措施保护未成年人,尽可能的识别未成年的邮件订阅者。营销电子邮件含有不适合未成年人阅读的内容时,应提前核实接收者的年龄,确保接收者达到合法接收和阅读的年龄。发送给未成年人的营销邮件应征得其监护人的许可,内容符合此年龄段人群的知识水准、阅历和心里成熟程度。2.6 电子邮件营销服务提供者应与邮件接收方建立良好的沟通渠道,并参考以下规定:2.6.1 中国互联网协会反垃圾信息中心负责协助电子邮件营销服务提供者与邮件接收组织之间的沟通协调,在邮件传送过程中出现问题时,及时有效的进行沟通,确保尽快使问题得到解决。2.6.2 中国互联网协会反垃圾信息中心应协助电子邮件营销服务提供者与邮件接收组织之间建立信息反馈机制,改进电子邮件营销服务提供者的服务水平。2.6.3 中国互联网协会反垃圾信息中心应对电子邮件营销活动进行监督,对电子邮件营销服务提供者的信誉进行评价。2.6.4 电子邮件营销服务提供者应建立公平、高效、安全、易于使用的邮件投诉系统,在营销电子邮件中为营销用户提供便捷的投诉方式,受理营销用户对营销电子邮件的投诉。对被投诉的营销电子邮件,应立即开展调查,采取合理有效的防范或处理措施,并将有关情况和调查结果及时向各省通信管理局等国家有关机关或者12321网络不良和垃圾信息举报受理中心报告。2.6.5 电子邮件营销服务提供者应按照邮件接收方的要求限制营销电子邮件的发送速率。邮件接收方应将未投递成功的电子邮件服务器错误信息反馈邮件发送方。对信誉良好,行为规范的电子邮件营销服务提供者,邮件接收方可适当放宽营销电子邮件的发送速率。2.7 电子邮件营销服务提供者应积极配合各省通信管理局等国家有关机关和12321网络不良和垃圾信息举报受理中心开展调查工作。2.8 中国互联网协会拥有本规范的解释权和修改权。2.9 本规范自发布之日起施行。 附注:1. 电子邮件营销:指通过电子邮件开展的营销活动。2. 电子邮件营销服务提供者:也是营销电子邮件的发送方,指提供电子邮件营销服务的单位或个人,包括直接开展电子邮件营销活动的单位或个人以及接受委托开展电子邮件营销活动的单位或个人。3. 营销电子邮件:指具有营销功能的电子邮件。根据电子邮件的发送目的,分为事务性邮件和商业性邮件两种类型。3.1 事务性邮件,是指由收件人触发并已允许发件人发送的,以推动、完成或确认相关联流程为主要目的而发送的电子邮件。常见分类包括:(1)账号相关:账号激活、信息验证、账号绑定、密码修改、密码取回等。(2)交易信息:订单通知、付款通知、退款通知、物流通知、交易投诉等。(3)账单信息:对帐单、流水账单、催款通知、账户变更等。(4)其他类型。3.2 商业性邮件,是指任何以推销或者推广某种商品或服务(包括商业性网站的内容)为主要目的而发送的电子邮件。常见分类包括:(1)期刊资讯:更新通知、各类期刊、各类报表等。(2)产品促销:新品推广、季末促销、优惠套餐、折扣优惠、积分优惠等。(3)成员营销:好友邀请、成员关怀、主题活动、用户调研等。(4)其他类型。3.3 事务性邮件如果附带商业性内容,则视为商业性邮件。4. 营销用户:指电子邮件营销活动的对象,即接收营销电子邮件的电子邮箱使用者。5. 订阅:指营销用户预先订制,同意接收订制的营销电子邮件的行为。6. 邮件列表:指已经订阅了某一类营销电子邮件的用户电子邮箱地址列表,该列表是此类营销电子邮件的发送对象。7. 错误代码/硬退回/软退回:指在邮件的SMTP发送过程中,收信方服务器每处理完一条SMTP命令,都会向发信方服务器回传一个返回信息,用于表明对这条SMTP命令的执行结果。如返回信息以4XX(如450等)开头,指接收方临时性拒收该邮件,称软退回;如返回信息以5XX(如550等)开头,指接收方永久性拒收该邮件,称硬退回。以上列举的两类代码,习惯称为错误代码。8. 隐私策略:指电子邮件营销活动所收集的营销用户信息类型,收集方式和收集技术,以及信息的提供对象和使用用途。隐私策略中还应包括用户信息保护的安全措施、责任和实施过程。9. 退订:指营销用户取消订阅营销电子邮件的行为。10. 发送速率:指单位时间内的发送电子邮件的总数量。 常见的时间间隔单位包括:分钟、15分钟、小时、天、周、月等。11. IP地址/IP段IP地址是被用于定位互联网上的电脑一个唯一编号,地址的格式如159.226.1.1。多个IP地址的组合,即称为IP段。邮件发送过程中会?谰軮P地址,来确定邮件发送者和邮件接收者的位置。12. 静态IP地址指长期固定分配给一台计算机使用的IP地址,一般是由网络运营商分配。13. IP反向解析IP反向解析是一项常用的反垃圾邮件技术。常用的DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”。正向查找区域是指域名解析,反向查找区域即是IP反向解析,简称PTR记录,其作用是通过查询IP地址的PTR记录来得到该IP地址指向的域名。PTR记录需要由提供IP地址的网络运营商(ISP)进行配置。14. SPFSPF(Sender Policy Framework)是一种通过IP地址来认证电子邮件发件人身份的技术,是一项非常高效的反垃圾邮件技术。它通过在DNS中发布一条TXT类型的记录,用于登记某个域名所有拥有的合法的发送邮件的所有IP地址。15. DKIMDKIM(DomainKeys Identified Mail)是一种防诈骗邮件的反垃圾邮件技术。DKIM要求邮件发送方在电子邮件的信头插入DKIM-Signature及电子签名信息,而邮件接收方则通过DNS查询得到其公钥然后进行合法性验证。16. DMARCDMARC(Domain-based Message Authentication, Reporting and Conformance)是一种防诈骗邮件的反垃圾邮件技术。DMARC结合SPF和DKIM两项技术,通过检查电子邮件信头的发件人的合法性,将诈骗邮件识别出来。17. RBLRBL(Real-time Blackhole List),即实时黑名单列表,是一些由国际知名的反垃圾邮件组织所提供的恶意发送垃圾邮件的发件人邮箱地址,IP地址,URL地址等黑名单列表的服务。若已被RBL收录,需到相应RBL官方网站上去核实并申请移除。常见的知名RBL组织,如中国互联网协会反垃圾信息中心、spamhaus,Maps,sorbs,uribl,surbl等。18. w3.org规范由万维网联盟(W3C)共同开发与公布的各种web设计规范。当邮件正文以网页的形式组织时,应当参考这些规范。19.HELO电子邮件头中邮件发送者用来标识自己的身份的命令字段。 附录:电子邮件营销常用指标1. 发送量发送的营销电子邮件数量2. 到达量发送的营销电子邮件数量-退回的营销电子邮件数量3. 到达率到达接收方邮箱的营销电子邮件数量/发送的营销电子邮件数量×100%4. 退信率退回的营销电子邮件数量/发送的营销电子邮件数量×100%5. 硬退信率硬退回的营销电子邮件数量/发送的营销电子邮件数量×100%6. 软退信率软退回的营销电子邮件数量/发送的营销电子邮件数量×100%7. 打开率打开营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复打开邮件的情况。8. 点击率点击了营销电子邮件内容中链接的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复点击的情况。9. 点击打开率点击了营销电子邮件内容中链接的接收方数量/打开营销电子邮件的接收方数量×100%,不计算重复点击和重复打开的情况。10. 退订率退订营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%11. 投诉率被投诉的营销电子邮件数量/到达接收方邮箱的营销电子邮件数量×100%12. 信誉度邮件接收方或者第三方机构对营销电子邮件服务信誉和质量的评定结果 参考中华人民共和国信息产业部令第38号 互联网电子邮件服务管理办法中国互联网协会 电子邮件服务指南(V1.1)中国互联网协会 中国互联网协会互联网公共电子邮件服务规范YD-T 1310-2004 互联网广告电子邮件格式要求YD-T 1311-2004 防范互联网垃圾电子邮件技术要求

2019-12-01 23:24:48 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云任何版本的企业邮箱服务禁止发送营销邮件,营销邮件标准及相关规范,参见中国互联网协会反垃圾信息中心的管理规范。中国互联网协会电子邮件营销规范(V1.2)来源:反垃圾信息中心一、总则1.1 为规范电子邮件形式的市场营销行为,统一电子邮件营销[注1]的基本要求,为接收和发送营销内容的电子邮件提供依据,保护电子邮件用户的合法权益,根据我国相关法律法规的规定,制定本规范。1.2 本规范适用于电子邮件营销活动的开展和评价。1.3 本规范基于《互联网电子邮件服务管理办法》(中华人民共和国信息产业部令第38号)制定,从事电子邮件营销除应执行本规范外,还应符合《互联网电子邮件服务管理办法》及其他国家现行的有关标准的规定。二、基本规定2.1 中国互联网协会对电子邮件营销服务提供者[注2]实行登记备案管理。电子邮件营销服务提供者应当在开展电子邮件营销活动前将电子邮件发送服务器所使用的IP地址[注11]及相关信息向中国互联网协会反垃圾信息中心登记备案,并遵守以下规定:2.1.1需报备的 IP 地址及相关信息(1)备案单位基本情况,包括备案单位名称、备案单位地址、备案单位性质、备案单位组织机构代码、备案单位营业执照注册号、备案单位经营范围、备案单位注册资金、备案单位网站域名、备案单位法人代表姓名、备案单位联系人姓名、联系人电话、 联系人电子邮件、联系人即时通信方式等。(2)备案单位电子邮件发送服务器IP地址分配使用信息,包括备案单位用于发送电子邮件的IP地址数量、IP地址、IP地址段、IP地址所属单位名称、IP地址对应域名、IP地址对应发送营销电子邮件[注3]性质/类型(事务性邮件和商业性邮件等);(3)备案单位可自愿报备每次电子邮件营销活动的信息,包括本次营销活动使用IP地址、域名、发件人邮箱地址、电子邮件HELO[注19]信息、收件人数量、发送周期、平均发送速率[注10]、单IP最大发送速率、发送营销电子邮件性质/类型(事务性邮件和商业性邮件等)、营销电子邮件的原信/样信等。(4)其他需要备案的信息。2.1.2 电子邮件营销服务提供者拟变更电子邮件营销服务信息的,应当提前办理变更登记手续。2.1.3 电子邮件营销服务提供者提交的备案信息必须完整、真实、有效且符合我国相关法律法规规定。2.1.4 中国互联网协会反垃圾信息中心负责审核电子邮件营销服务提供者提交的备案资料,对符合要求的备案单位发放电子邮件营销备案资质证书。2.2 电子邮件营销服务提供者应当确保所有与电子邮件服务有关的域名和IP地址注册信息正确、完整和及时更新,并遵守以下规定:2.2.1 发送电子邮件的服务器IP地址必须使用静态IP[注12]地址,并已采取IP反向解析[注13]措施。2.2.2 发送电子邮件的邮箱域名建议与发送电子邮件的服务器IP反向解析的域名信息一致,并已采取SPF解析[注14]。2.2.3 建议使用DKIM[注15]、DMARC[注16]等反垃圾邮件技术,提高与电子邮件发送相关的域名和IP的信誉。2.2.4 关注知名的RBL[注17]组织列表,如果发现与电子邮件发送相关的域名、IP或邮箱地址出现在知名的RBL[注17]组织列表上,应及时采取措施进行申诉和解封。2.2.5 建议发送事务性邮件和商业性邮件的服务器分配不同的IP地址和发送邮箱地址。2.2.6 具有特殊功能的账户,如postmaster@账户(邮件管理员账户)或abuse@账户(投诉账户),必须保证其有效,并由专人负责管理维护。2.3 电子邮件营销服务提供者应当建立可靠有效的订阅[注5]及退订[注9]机制,并遵守以下规定:2.3.1未经电子邮件接收者明确许可,不得向其发送营销电子邮件。获取接收者许可的过程和内容应清楚、明确,且不违背我国的相关法律规定。电子邮件营销服务提供者应公布获取接收者许可的策略,保存接收者同意接收营销邮件的许可记录,以便在需要时向接收者提供相关信息。2.3.2营销电子邮件必须提供给接收者至少包含一种退订的途径和具体操作方法,退订信息应醒目、清晰,退订操作方法应简单,有效。2.3.3确保退订请求可以正常发送并能够被及时自动响应处理。不得强制要求用户提交退订原因或设置退订条件,退订请求发出后应在3个工作日内生效。2.4 电子邮件营销服务提供者应规范的使用和维护其营销用户[注4]的电子邮件地址列表[注6],并遵守以下规定:2.4.1 电子邮件营销服务提供者对营销用户的个人信息和电子邮件地址负有保密的义务。未经用户同意,不得泄露用户的个人信息和电子邮件地址,法律、行政法规另有规定的除外。2.4.2 电子邮件营销服务提供者应制定安全合理的隐私策略[注8]。营销用户的个人信息资料和电子邮件地址的使用应与收集目的一致,未经用户同意,不得用于收集目的以外的其它用途。2.4.3 必须保证每个电子邮件地址的取得都经过了用户的许可。尽量确保每个电子邮件地址都是真实有效的。2.4.4 应合理处理邮件投递过程中接收电子邮件的服务器返回的错误代码[注7]。对于返回代码表示不存在的电子邮件地址,应及时从发送列表中删除;对于连续出现投递错误的电子邮件地址,建议及时调整投递策略,减少可能导致错误发生的情况。2.5 电子邮件营销服务提供者应使用规范的电子邮件格式与内容,并遵守以下规定:2.5.1 营销电子邮件的内容不得违反我国相关法律法规规定。2.5.2 营销电子邮件格式应符合国际通用规范标准(参见RFC 2822)。邮件中如果包含HTML格式,应遵循由万维网联盟(W3C)公布的w3.org[注18]设计规范。2.5.3 营销电子邮件应标明邮件发送方的身份和真实的可返回的邮件发送地址。邮件的标题和信体要能准确的反映出邮件的内容、真实来源和通信目的。邮件正文应包含发送方的名称、地址、联系电话和电子邮件地址等详细信息。2.5.4 营销电子邮件的主题与内容必须相匹配。邮件内容应与营销用户的订阅内容一致。2.5.5 应采取有效的措施保护未成年人,尽可能的识别未成年的邮件订阅者。营销电子邮件含有不适合未成年人阅读的内容时,应提前核实接收者的年龄,确保接收者达到合法接收和阅读的年龄。发送给未成年人的营销邮件应征得其监护人的许可,内容符合此年龄段人群的知识水准、阅历和心里成熟程度。2.6 电子邮件营销服务提供者应与邮件接收方建立良好的沟通渠道,并参考以下规定:2.6.1 中国互联网协会反垃圾信息中心负责协助电子邮件营销服务提供者与邮件接收组织之间的沟通协调,在邮件传送过程中出现问题时,及时有效的进行沟通,确保尽快使问题得到解决。2.6.2 中国互联网协会反垃圾信息中心应协助电子邮件营销服务提供者与邮件接收组织之间建立信息反馈机制,改进电子邮件营销服务提供者的服务水平。2.6.3 中国互联网协会反垃圾信息中心应对电子邮件营销活动进行监督,对电子邮件营销服务提供者的信誉进行评价。2.6.4 电子邮件营销服务提供者应建立公平、高效、安全、易于使用的邮件投诉系统,在营销电子邮件中为营销用户提供便捷的投诉方式,受理营销用户对营销电子邮件的投诉。对被投诉的营销电子邮件,应立即开展调查,采取合理有效的防范或处理措施,并将有关情况和调查结果及时向各省通信管理局等国家有关机关或者12321网络不良和垃圾信息举报受理中心报告。2.6.5 电子邮件营销服务提供者应按照邮件接收方的要求限制营销电子邮件的发送速率。邮件接收方应将未投递成功的电子邮件服务器错误信息反馈邮件发送方。对信誉良好,行为规范的电子邮件营销服务提供者,邮件接收方可适当放宽营销电子邮件的发送速率。2.7 电子邮件营销服务提供者应积极配合各省通信管理局等国家有关机关和12321网络不良和垃圾信息举报受理中心开展调查工作。2.8 中国互联网协会拥有本规范的解释权和修改权。2.9 本规范自发布之日起施行。 附注:1. 电子邮件营销:指通过电子邮件开展的营销活动。2. 电子邮件营销服务提供者:也是营销电子邮件的发送方,指提供电子邮件营销服务的单位或个人,包括直接开展电子邮件营销活动的单位或个人以及接受委托开展电子邮件营销活动的单位或个人。3. 营销电子邮件:指具有营销功能的电子邮件。根据电子邮件的发送目的,分为事务性邮件和商业性邮件两种类型。3.1 事务性邮件,是指由收件人触发并已允许发件人发送的,以推动、完成或确认相关联流程为主要目的而发送的电子邮件。常见分类包括:(1)账号相关:账号激活、信息验证、账号绑定、密码修改、密码取回等。(2)交易信息:订单通知、付款通知、退款通知、物流通知、交易投诉等。(3)账单信息:对帐单、流水账单、催款通知、账户变更等。(4)其他类型。3.2 商业性邮件,是指任何以推销或者推广某种商品或服务(包括商业性网站的内容)为主要目的而发送的电子邮件。常见分类包括:(1)期刊资讯:更新通知、各类期刊、各类报表等。(2)产品促销:新品推广、季末促销、优惠套餐、折扣优惠、积分优惠等。(3)成员营销:好友邀请、成员关怀、主题活动、用户调研等。(4)其他类型。3.3 事务性邮件如果附带商业性内容,则视为商业性邮件。4. 营销用户:指电子邮件营销活动的对象,即接收营销电子邮件的电子邮箱使用者。5. 订阅:指营销用户预先订制,同意接收订制的营销电子邮件的行为。6. 邮件列表:指已经订阅了某一类营销电子邮件的用户电子邮箱地址列表,该列表是此类营销电子邮件的发送对象。7. 错误代码/硬退回/软退回:指在邮件的SMTP发送过程中,收信方服务器每处理完一条SMTP命令,都会向发信方服务器回传一个返回信息,用于表明对这条SMTP命令的执行结果。如返回信息以4XX(如450等)开头,指接收方临时性拒收该邮件,称软退回;如返回信息以5XX(如550等)开头,指接收方永久性拒收该邮件,称硬退回。以上列举的两类代码,习惯称为错误代码。8. 隐私策略:指电子邮件营销活动所收集的营销用户信息类型,收集方式和收集技术,以及信息的提供对象和使用用途。隐私策略中还应包括用户信息保护的安全措施、责任和实施过程。9. 退订:指营销用户取消订阅营销电子邮件的行为。10. 发送速率:指单位时间内的发送电子邮件的总数量。 常见的时间间隔单位包括:分钟、15分钟、小时、天、周、月等。11. IP地址/IP段IP地址是被用于定位互联网上的电脑一个唯一编号,地址的格式如159.226.1.1。多个IP地址的组合,即称为IP段。邮件发送过程中会?谰軮P地址,来确定邮件发送者和邮件接收者的位置。12. 静态IP地址指长期固定分配给一台计算机使用的IP地址,一般是由网络运营商分配。13. IP反向解析IP反向解析是一项常用的反垃圾邮件技术。常用的DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”。正向查找区域是指域名解析,反向查找区域即是IP反向解析,简称PTR记录,其作用是通过查询IP地址的PTR记录来得到该IP地址指向的域名。PTR记录需要由提供IP地址的网络运营商(ISP)进行配置。14. SPFSPF(Sender Policy Framework)是一种通过IP地址来认证电子邮件发件人身份的技术,是一项非常高效的反垃圾邮件技术。它通过在DNS中发布一条TXT类型的记录,用于登记某个域名所有拥有的合法的发送邮件的所有IP地址。15. DKIMDKIM(DomainKeys Identified Mail)是一种防诈骗邮件的反垃圾邮件技术。DKIM要求邮件发送方在电子邮件的信头插入DKIM-Signature及电子签名信息,而邮件接收方则通过DNS查询得到其公钥然后进行合法性验证。16. DMARCDMARC(Domain-based Message Authentication, Reporting and Conformance)是一种防诈骗邮件的反垃圾邮件技术。DMARC结合SPF和DKIM两项技术,通过检查电子邮件信头的发件人的合法性,将诈骗邮件识别出来。17. RBLRBL(Real-time Blackhole List),即实时黑名单列表,是一些由国际知名的反垃圾邮件组织所提供的恶意发送垃圾邮件的发件人邮箱地址,IP地址,URL地址等黑名单列表的服务。若已被RBL收录,需到相应RBL官方网站上去核实并申请移除。常见的知名RBL组织,如中国互联网协会反垃圾信息中心、spamhaus,Maps,sorbs,uribl,surbl等。18. w3.org规范由万维网联盟(W3C)共同开发与公布的各种web设计规范。当邮件正文以网页的形式组织时,应当参考这些规范。19.HELO电子邮件头中邮件发送者用来标识自己的身份的命令字段。 附录:电子邮件营销常用指标1. 发送量发送的营销电子邮件数量2. 到达量发送的营销电子邮件数量-退回的营销电子邮件数量3. 到达率到达接收方邮箱的营销电子邮件数量/发送的营销电子邮件数量×100%4. 退信率退回的营销电子邮件数量/发送的营销电子邮件数量×100%5. 硬退信率硬退回的营销电子邮件数量/发送的营销电子邮件数量×100%6. 软退信率软退回的营销电子邮件数量/发送的营销电子邮件数量×100%7. 打开率打开营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复打开邮件的情况。8. 点击率点击了营销电子邮件内容中链接的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复点击的情况。9. 点击打开率点击了营销电子邮件内容中链接的接收方数量/打开营销电子邮件的接收方数量×100%,不计算重复点击和重复打开的情况。10. 退订率退订营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%11. 投诉率被投诉的营销电子邮件数量/到达接收方邮箱的营销电子邮件数量×100%12. 信誉度邮件接收方或者第三方机构对营销电子邮件服务信誉和质量的评定结果 参考中华人民共和国信息产业部令第38号 互联网电子邮件服务管理办法中国互联网协会 电子邮件服务指南(V1.1)中国互联网协会 中国互联网协会互联网公共电子邮件服务规范YD-T 1310-2004 互联网广告电子邮件格式要求YD-T 1311-2004 防范互联网垃圾电子邮件技术要求

2019-12-01 23:24:47 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云任何版本的企业邮箱服务禁止发送营销邮件,营销邮件标准及相关规范,参见中国互联网协会反垃圾信息中心的管理规范。中国互联网协会电子邮件营销规范(V1.2)来源:反垃圾信息中心一、总则1.1 为规范电子邮件形式的市场营销行为,统一电子邮件营销[注1]的基本要求,为接收和发送营销内容的电子邮件提供依据,保护电子邮件用户的合法权益,根据我国相关法律法规的规定,制定本规范。1.2 本规范适用于电子邮件营销活动的开展和评价。1.3 本规范基于《互联网电子邮件服务管理办法》(中华人民共和国信息产业部令第38号)制定,从事电子邮件营销除应执行本规范外,还应符合《互联网电子邮件服务管理办法》及其他国家现行的有关标准的规定。二、基本规定2.1 中国互联网协会对电子邮件营销服务提供者[注2]实行登记备案管理。电子邮件营销服务提供者应当在开展电子邮件营销活动前将电子邮件发送服务器所使用的IP地址[注11]及相关信息向中国互联网协会反垃圾信息中心登记备案,并遵守以下规定:2.1.1需报备的 IP 地址及相关信息(1)备案单位基本情况,包括备案单位名称、备案单位地址、备案单位性质、备案单位组织机构代码、备案单位营业执照注册号、备案单位经营范围、备案单位注册资金、备案单位网站域名、备案单位法人代表姓名、备案单位联系人姓名、联系人电话、 联系人电子邮件、联系人即时通信方式等。(2)备案单位电子邮件发送服务器IP地址分配使用信息,包括备案单位用于发送电子邮件的IP地址数量、IP地址、IP地址段、IP地址所属单位名称、IP地址对应域名、IP地址对应发送营销电子邮件[注3]性质/类型(事务性邮件和商业性邮件等);(3)备案单位可自愿报备每次电子邮件营销活动的信息,包括本次营销活动使用IP地址、域名、发件人邮箱地址、电子邮件HELO[注19]信息、收件人数量、发送周期、平均发送速率[注10]、单IP最大发送速率、发送营销电子邮件性质/类型(事务性邮件和商业性邮件等)、营销电子邮件的原信/样信等。(4)其他需要备案的信息。2.1.2 电子邮件营销服务提供者拟变更电子邮件营销服务信息的,应当提前办理变更登记手续。2.1.3 电子邮件营销服务提供者提交的备案信息必须完整、真实、有效且符合我国相关法律法规规定。2.1.4 中国互联网协会反垃圾信息中心负责审核电子邮件营销服务提供者提交的备案资料,对符合要求的备案单位发放电子邮件营销备案资质证书。2.2 电子邮件营销服务提供者应当确保所有与电子邮件服务有关的域名和IP地址注册信息正确、完整和及时更新,并遵守以下规定:2.2.1 发送电子邮件的服务器IP地址必须使用静态IP[注12]地址,并已采取IP反向解析[注13]措施。2.2.2 发送电子邮件的邮箱域名建议与发送电子邮件的服务器IP反向解析的域名信息一致,并已采取SPF解析[注14]。2.2.3 建议使用DKIM[注15]、DMARC[注16]等反垃圾邮件技术,提高与电子邮件发送相关的域名和IP的信誉。2.2.4 关注知名的RBL[注17]组织列表,如果发现与电子邮件发送相关的域名、IP或邮箱地址出现在知名的RBL[注17]组织列表上,应及时采取措施进行申诉和解封。2.2.5 建议发送事务性邮件和商业性邮件的服务器分配不同的IP地址和发送邮箱地址。2.2.6 具有特殊功能的账户,如postmaster@账户(邮件管理员账户)或abuse@账户(投诉账户),必须保证其有效,并由专人负责管理维护。2.3 电子邮件营销服务提供者应当建立可靠有效的订阅[注5]及退订[注9]机制,并遵守以下规定:2.3.1未经电子邮件接收者明确许可,不得向其发送营销电子邮件。获取接收者许可的过程和内容应清楚、明确,且不违背我国的相关法律规定。电子邮件营销服务提供者应公布获取接收者许可的策略,保存接收者同意接收营销邮件的许可记录,以便在需要时向接收者提供相关信息。2.3.2营销电子邮件必须提供给接收者至少包含一种退订的途径和具体操作方法,退订信息应醒目、清晰,退订操作方法应简单,有效。2.3.3确保退订请求可以正常发送并能够被及时自动响应处理。不得强制要求用户提交退订原因或设置退订条件,退订请求发出后应在3个工作日内生效。2.4 电子邮件营销服务提供者应规范的使用和维护其营销用户[注4]的电子邮件地址列表[注6],并遵守以下规定:2.4.1 电子邮件营销服务提供者对营销用户的个人信息和电子邮件地址负有保密的义务。未经用户同意,不得泄露用户的个人信息和电子邮件地址,法律、行政法规另有规定的除外。2.4.2 电子邮件营销服务提供者应制定安全合理的隐私策略[注8]。营销用户的个人信息资料和电子邮件地址的使用应与收集目的一致,未经用户同意,不得用于收集目的以外的其它用途。2.4.3 必须保证每个电子邮件地址的取得都经过了用户的许可。尽量确保每个电子邮件地址都是真实有效的。2.4.4 应合理处理邮件投递过程中接收电子邮件的服务器返回的错误代码[注7]。对于返回代码表示不存在的电子邮件地址,应及时从发送列表中删除;对于连续出现投递错误的电子邮件地址,建议及时调整投递策略,减少可能导致错误发生的情况。2.5 电子邮件营销服务提供者应使用规范的电子邮件格式与内容,并遵守以下规定:2.5.1 营销电子邮件的内容不得违反我国相关法律法规规定。2.5.2 营销电子邮件格式应符合国际通用规范标准(参见RFC 2822)。邮件中如果包含HTML格式,应遵循由万维网联盟(W3C)公布的w3.org[注18]设计规范。2.5.3 营销电子邮件应标明邮件发送方的身份和真实的可返回的邮件发送地址。邮件的标题和信体要能准确的反映出邮件的内容、真实来源和通信目的。邮件正文应包含发送方的名称、地址、联系电话和电子邮件地址等详细信息。2.5.4 营销电子邮件的主题与内容必须相匹配。邮件内容应与营销用户的订阅内容一致。2.5.5 应采取有效的措施保护未成年人,尽可能的识别未成年的邮件订阅者。营销电子邮件含有不适合未成年人阅读的内容时,应提前核实接收者的年龄,确保接收者达到合法接收和阅读的年龄。发送给未成年人的营销邮件应征得其监护人的许可,内容符合此年龄段人群的知识水准、阅历和心里成熟程度。2.6 电子邮件营销服务提供者应与邮件接收方建立良好的沟通渠道,并参考以下规定:2.6.1 中国互联网协会反垃圾信息中心负责协助电子邮件营销服务提供者与邮件接收组织之间的沟通协调,在邮件传送过程中出现问题时,及时有效的进行沟通,确保尽快使问题得到解决。2.6.2 中国互联网协会反垃圾信息中心应协助电子邮件营销服务提供者与邮件接收组织之间建立信息反馈机制,改进电子邮件营销服务提供者的服务水平。2.6.3 中国互联网协会反垃圾信息中心应对电子邮件营销活动进行监督,对电子邮件营销服务提供者的信誉进行评价。2.6.4 电子邮件营销服务提供者应建立公平、高效、安全、易于使用的邮件投诉系统,在营销电子邮件中为营销用户提供便捷的投诉方式,受理营销用户对营销电子邮件的投诉。对被投诉的营销电子邮件,应立即开展调查,采取合理有效的防范或处理措施,并将有关情况和调查结果及时向各省通信管理局等国家有关机关或者12321网络不良和垃圾信息举报受理中心报告。2.6.5 电子邮件营销服务提供者应按照邮件接收方的要求限制营销电子邮件的发送速率。邮件接收方应将未投递成功的电子邮件服务器错误信息反馈邮件发送方。对信誉良好,行为规范的电子邮件营销服务提供者,邮件接收方可适当放宽营销电子邮件的发送速率。2.7 电子邮件营销服务提供者应积极配合各省通信管理局等国家有关机关和12321网络不良和垃圾信息举报受理中心开展调查工作。2.8 中国互联网协会拥有本规范的解释权和修改权。2.9 本规范自发布之日起施行。 附注:1. 电子邮件营销:指通过电子邮件开展的营销活动。2. 电子邮件营销服务提供者:也是营销电子邮件的发送方,指提供电子邮件营销服务的单位或个人,包括直接开展电子邮件营销活动的单位或个人以及接受委托开展电子邮件营销活动的单位或个人。3. 营销电子邮件:指具有营销功能的电子邮件。根据电子邮件的发送目的,分为事务性邮件和商业性邮件两种类型。3.1 事务性邮件,是指由收件人触发并已允许发件人发送的,以推动、完成或确认相关联流程为主要目的而发送的电子邮件。常见分类包括:(1)账号相关:账号激活、信息验证、账号绑定、密码修改、密码取回等。(2)交易信息:订单通知、付款通知、退款通知、物流通知、交易投诉等。(3)账单信息:对帐单、流水账单、催款通知、账户变更等。(4)其他类型。3.2 商业性邮件,是指任何以推销或者推广某种商品或服务(包括商业性网站的内容)为主要目的而发送的电子邮件。常见分类包括:(1)期刊资讯:更新通知、各类期刊、各类报表等。(2)产品促销:新品推广、季末促销、优惠套餐、折扣优惠、积分优惠等。(3)成员营销:好友邀请、成员关怀、主题活动、用户调研等。(4)其他类型。3.3 事务性邮件如果附带商业性内容,则视为商业性邮件。4. 营销用户:指电子邮件营销活动的对象,即接收营销电子邮件的电子邮箱使用者。5. 订阅:指营销用户预先订制,同意接收订制的营销电子邮件的行为。6. 邮件列表:指已经订阅了某一类营销电子邮件的用户电子邮箱地址列表,该列表是此类营销电子邮件的发送对象。7. 错误代码/硬退回/软退回:指在邮件的SMTP发送过程中,收信方服务器每处理完一条SMTP命令,都会向发信方服务器回传一个返回信息,用于表明对这条SMTP命令的执行结果。如返回信息以4XX(如450等)开头,指接收方临时性拒收该邮件,称软退回;如返回信息以5XX(如550等)开头,指接收方永久性拒收该邮件,称硬退回。以上列举的两类代码,习惯称为错误代码。8. 隐私策略:指电子邮件营销活动所收集的营销用户信息类型,收集方式和收集技术,以及信息的提供对象和使用用途。隐私策略中还应包括用户信息保护的安全措施、责任和实施过程。9. 退订:指营销用户取消订阅营销电子邮件的行为。10. 发送速率:指单位时间内的发送电子邮件的总数量。 常见的时间间隔单位包括:分钟、15分钟、小时、天、周、月等。11. IP地址/IP段IP地址是被用于定位互联网上的电脑一个唯一编号,地址的格式如159.226.1.1。多个IP地址的组合,即称为IP段。邮件发送过程中会?谰軮P地址,来确定邮件发送者和邮件接收者的位置。12. 静态IP地址指长期固定分配给一台计算机使用的IP地址,一般是由网络运营商分配。13. IP反向解析IP反向解析是一项常用的反垃圾邮件技术。常用的DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”。正向查找区域是指域名解析,反向查找区域即是IP反向解析,简称PTR记录,其作用是通过查询IP地址的PTR记录来得到该IP地址指向的域名。PTR记录需要由提供IP地址的网络运营商(ISP)进行配置。14. SPFSPF(Sender Policy Framework)是一种通过IP地址来认证电子邮件发件人身份的技术,是一项非常高效的反垃圾邮件技术。它通过在DNS中发布一条TXT类型的记录,用于登记某个域名所有拥有的合法的发送邮件的所有IP地址。15. DKIMDKIM(DomainKeys Identified Mail)是一种防诈骗邮件的反垃圾邮件技术。DKIM要求邮件发送方在电子邮件的信头插入DKIM-Signature及电子签名信息,而邮件接收方则通过DNS查询得到其公钥然后进行合法性验证。16. DMARCDMARC(Domain-based Message Authentication, Reporting and Conformance)是一种防诈骗邮件的反垃圾邮件技术。DMARC结合SPF和DKIM两项技术,通过检查电子邮件信头的发件人的合法性,将诈骗邮件识别出来。17. RBLRBL(Real-time Blackhole List),即实时黑名单列表,是一些由国际知名的反垃圾邮件组织所提供的恶意发送垃圾邮件的发件人邮箱地址,IP地址,URL地址等黑名单列表的服务。若已被RBL收录,需到相应RBL官方网站上去核实并申请移除。常见的知名RBL组织,如中国互联网协会反垃圾信息中心、spamhaus,Maps,sorbs,uribl,surbl等。18. w3.org规范由万维网联盟(W3C)共同开发与公布的各种web设计规范。当邮件正文以网页的形式组织时,应当参考这些规范。19.HELO电子邮件头中邮件发送者用来标识自己的身份的命令字段。 附录:电子邮件营销常用指标1. 发送量发送的营销电子邮件数量2. 到达量发送的营销电子邮件数量-退回的营销电子邮件数量3. 到达率到达接收方邮箱的营销电子邮件数量/发送的营销电子邮件数量×100%4. 退信率退回的营销电子邮件数量/发送的营销电子邮件数量×100%5. 硬退信率硬退回的营销电子邮件数量/发送的营销电子邮件数量×100%6. 软退信率软退回的营销电子邮件数量/发送的营销电子邮件数量×100%7. 打开率打开营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复打开邮件的情况。8. 点击率点击了营销电子邮件内容中链接的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复点击的情况。9. 点击打开率点击了营销电子邮件内容中链接的接收方数量/打开营销电子邮件的接收方数量×100%,不计算重复点击和重复打开的情况。10. 退订率退订营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%11. 投诉率被投诉的营销电子邮件数量/到达接收方邮箱的营销电子邮件数量×100%12. 信誉度邮件接收方或者第三方机构对营销电子邮件服务信誉和质量的评定结果 参考中华人民共和国信息产业部令第38号 互联网电子邮件服务管理办法中国互联网协会 电子邮件服务指南(V1.1)中国互联网协会 中国互联网协会互联网公共电子邮件服务规范YD-T 1310-2004 互联网广告电子邮件格式要求YD-T 1311-2004 防范互联网垃圾电子邮件技术要求

2019-12-01 23:24:47 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云任何版本的企业邮箱服务禁止发送营销邮件,营销邮件标准及相关规范,参见中国互联网协会反垃圾信息中心的管理规范。中国互联网协会电子邮件营销规范(V1.2)来源:反垃圾信息中心一、总则1.1 为规范电子邮件形式的市场营销行为,统一电子邮件营销[注1]的基本要求,为接收和发送营销内容的电子邮件提供依据,保护电子邮件用户的合法权益,根据我国相关法律法规的规定,制定本规范。1.2 本规范适用于电子邮件营销活动的开展和评价。1.3 本规范基于《互联网电子邮件服务管理办法》(中华人民共和国信息产业部令第38号)制定,从事电子邮件营销除应执行本规范外,还应符合《互联网电子邮件服务管理办法》及其他国家现行的有关标准的规定。二、基本规定2.1 中国互联网协会对电子邮件营销服务提供者[注2]实行登记备案管理。电子邮件营销服务提供者应当在开展电子邮件营销活动前将电子邮件发送服务器所使用的IP地址[注11]及相关信息向中国互联网协会反垃圾信息中心登记备案,并遵守以下规定:2.1.1需报备的 IP 地址及相关信息(1)备案单位基本情况,包括备案单位名称、备案单位地址、备案单位性质、备案单位组织机构代码、备案单位营业执照注册号、备案单位经营范围、备案单位注册资金、备案单位网站域名、备案单位法人代表姓名、备案单位联系人姓名、联系人电话、 联系人电子邮件、联系人即时通信方式等。(2)备案单位电子邮件发送服务器IP地址分配使用信息,包括备案单位用于发送电子邮件的IP地址数量、IP地址、IP地址段、IP地址所属单位名称、IP地址对应域名、IP地址对应发送营销电子邮件[注3]性质/类型(事务性邮件和商业性邮件等);(3)备案单位可自愿报备每次电子邮件营销活动的信息,包括本次营销活动使用IP地址、域名、发件人邮箱地址、电子邮件HELO[注19]信息、收件人数量、发送周期、平均发送速率[注10]、单IP最大发送速率、发送营销电子邮件性质/类型(事务性邮件和商业性邮件等)、营销电子邮件的原信/样信等。(4)其他需要备案的信息。2.1.2 电子邮件营销服务提供者拟变更电子邮件营销服务信息的,应当提前办理变更登记手续。2.1.3 电子邮件营销服务提供者提交的备案信息必须完整、真实、有效且符合我国相关法律法规规定。2.1.4 中国互联网协会反垃圾信息中心负责审核电子邮件营销服务提供者提交的备案资料,对符合要求的备案单位发放电子邮件营销备案资质证书。2.2 电子邮件营销服务提供者应当确保所有与电子邮件服务有关的域名和IP地址注册信息正确、完整和及时更新,并遵守以下规定:2.2.1 发送电子邮件的服务器IP地址必须使用静态IP[注12]地址,并已采取IP反向解析[注13]措施。2.2.2 发送电子邮件的邮箱域名建议与发送电子邮件的服务器IP反向解析的域名信息一致,并已采取SPF解析[注14]。2.2.3 建议使用DKIM[注15]、DMARC[注16]等反垃圾邮件技术,提高与电子邮件发送相关的域名和IP的信誉。2.2.4 关注知名的RBL[注17]组织列表,如果发现与电子邮件发送相关的域名、IP或邮箱地址出现在知名的RBL[注17]组织列表上,应及时采取措施进行申诉和解封。2.2.5 建议发送事务性邮件和商业性邮件的服务器分配不同的IP地址和发送邮箱地址。2.2.6 具有特殊功能的账户,如postmaster@账户(邮件管理员账户)或abuse@账户(投诉账户),必须保证其有效,并由专人负责管理维护。2.3 电子邮件营销服务提供者应当建立可靠有效的订阅[注5]及退订[注9]机制,并遵守以下规定:2.3.1未经电子邮件接收者明确许可,不得向其发送营销电子邮件。获取接收者许可的过程和内容应清楚、明确,且不违背我国的相关法律规定。电子邮件营销服务提供者应公布获取接收者许可的策略,保存接收者同意接收营销邮件的许可记录,以便在需要时向接收者提供相关信息。2.3.2营销电子邮件必须提供给接收者至少包含一种退订的途径和具体操作方法,退订信息应醒目、清晰,退订操作方法应简单,有效。2.3.3确保退订请求可以正常发送并能够被及时自动响应处理。不得强制要求用户提交退订原因或设置退订条件,退订请求发出后应在3个工作日内生效。2.4 电子邮件营销服务提供者应规范的使用和维护其营销用户[注4]的电子邮件地址列表[注6],并遵守以下规定:2.4.1 电子邮件营销服务提供者对营销用户的个人信息和电子邮件地址负有保密的义务。未经用户同意,不得泄露用户的个人信息和电子邮件地址,法律、行政法规另有规定的除外。2.4.2 电子邮件营销服务提供者应制定安全合理的隐私策略[注8]。营销用户的个人信息资料和电子邮件地址的使用应与收集目的一致,未经用户同意,不得用于收集目的以外的其它用途。2.4.3 必须保证每个电子邮件地址的取得都经过了用户的许可。尽量确保每个电子邮件地址都是真实有效的。2.4.4 应合理处理邮件投递过程中接收电子邮件的服务器返回的错误代码[注7]。对于返回代码表示不存在的电子邮件地址,应及时从发送列表中删除;对于连续出现投递错误的电子邮件地址,建议及时调整投递策略,减少可能导致错误发生的情况。2.5 电子邮件营销服务提供者应使用规范的电子邮件格式与内容,并遵守以下规定:2.5.1 营销电子邮件的内容不得违反我国相关法律法规规定。2.5.2 营销电子邮件格式应符合国际通用规范标准(参见RFC 2822)。邮件中如果包含HTML格式,应遵循由万维网联盟(W3C)公布的w3.org[注18]设计规范。2.5.3 营销电子邮件应标明邮件发送方的身份和真实的可返回的邮件发送地址。邮件的标题和信体要能准确的反映出邮件的内容、真实来源和通信目的。邮件正文应包含发送方的名称、地址、联系电话和电子邮件地址等详细信息。2.5.4 营销电子邮件的主题与内容必须相匹配。邮件内容应与营销用户的订阅内容一致。2.5.5 应采取有效的措施保护未成年人,尽可能的识别未成年的邮件订阅者。营销电子邮件含有不适合未成年人阅读的内容时,应提前核实接收者的年龄,确保接收者达到合法接收和阅读的年龄。发送给未成年人的营销邮件应征得其监护人的许可,内容符合此年龄段人群的知识水准、阅历和心里成熟程度。2.6 电子邮件营销服务提供者应与邮件接收方建立良好的沟通渠道,并参考以下规定:2.6.1 中国互联网协会反垃圾信息中心负责协助电子邮件营销服务提供者与邮件接收组织之间的沟通协调,在邮件传送过程中出现问题时,及时有效的进行沟通,确保尽快使问题得到解决。2.6.2 中国互联网协会反垃圾信息中心应协助电子邮件营销服务提供者与邮件接收组织之间建立信息反馈机制,改进电子邮件营销服务提供者的服务水平。2.6.3 中国互联网协会反垃圾信息中心应对电子邮件营销活动进行监督,对电子邮件营销服务提供者的信誉进行评价。2.6.4 电子邮件营销服务提供者应建立公平、高效、安全、易于使用的邮件投诉系统,在营销电子邮件中为营销用户提供便捷的投诉方式,受理营销用户对营销电子邮件的投诉。对被投诉的营销电子邮件,应立即开展调查,采取合理有效的防范或处理措施,并将有关情况和调查结果及时向各省通信管理局等国家有关机关或者12321网络不良和垃圾信息举报受理中心报告。2.6.5 电子邮件营销服务提供者应按照邮件接收方的要求限制营销电子邮件的发送速率。邮件接收方应将未投递成功的电子邮件服务器错误信息反馈邮件发送方。对信誉良好,行为规范的电子邮件营销服务提供者,邮件接收方可适当放宽营销电子邮件的发送速率。2.7 电子邮件营销服务提供者应积极配合各省通信管理局等国家有关机关和12321网络不良和垃圾信息举报受理中心开展调查工作。2.8 中国互联网协会拥有本规范的解释权和修改权。2.9 本规范自发布之日起施行。 附注:1. 电子邮件营销:指通过电子邮件开展的营销活动。2. 电子邮件营销服务提供者:也是营销电子邮件的发送方,指提供电子邮件营销服务的单位或个人,包括直接开展电子邮件营销活动的单位或个人以及接受委托开展电子邮件营销活动的单位或个人。3. 营销电子邮件:指具有营销功能的电子邮件。根据电子邮件的发送目的,分为事务性邮件和商业性邮件两种类型。3.1 事务性邮件,是指由收件人触发并已允许发件人发送的,以推动、完成或确认相关联流程为主要目的而发送的电子邮件。常见分类包括:(1)账号相关:账号激活、信息验证、账号绑定、密码修改、密码取回等。(2)交易信息:订单通知、付款通知、退款通知、物流通知、交易投诉等。(3)账单信息:对帐单、流水账单、催款通知、账户变更等。(4)其他类型。3.2 商业性邮件,是指任何以推销或者推广某种商品或服务(包括商业性网站的内容)为主要目的而发送的电子邮件。常见分类包括:(1)期刊资讯:更新通知、各类期刊、各类报表等。(2)产品促销:新品推广、季末促销、优惠套餐、折扣优惠、积分优惠等。(3)成员营销:好友邀请、成员关怀、主题活动、用户调研等。(4)其他类型。3.3 事务性邮件如果附带商业性内容,则视为商业性邮件。4. 营销用户:指电子邮件营销活动的对象,即接收营销电子邮件的电子邮箱使用者。5. 订阅:指营销用户预先订制,同意接收订制的营销电子邮件的行为。6. 邮件列表:指已经订阅了某一类营销电子邮件的用户电子邮箱地址列表,该列表是此类营销电子邮件的发送对象。7. 错误代码/硬退回/软退回:指在邮件的SMTP发送过程中,收信方服务器每处理完一条SMTP命令,都会向发信方服务器回传一个返回信息,用于表明对这条SMTP命令的执行结果。如返回信息以4XX(如450等)开头,指接收方临时性拒收该邮件,称软退回;如返回信息以5XX(如550等)开头,指接收方永久性拒收该邮件,称硬退回。以上列举的两类代码,习惯称为错误代码。8. 隐私策略:指电子邮件营销活动所收集的营销用户信息类型,收集方式和收集技术,以及信息的提供对象和使用用途。隐私策略中还应包括用户信息保护的安全措施、责任和实施过程。9. 退订:指营销用户取消订阅营销电子邮件的行为。10. 发送速率:指单位时间内的发送电子邮件的总数量。 常见的时间间隔单位包括:分钟、15分钟、小时、天、周、月等。11. IP地址/IP段IP地址是被用于定位互联网上的电脑一个唯一编号,地址的格式如159.226.1.1。多个IP地址的组合,即称为IP段。邮件发送过程中会?谰軮P地址,来确定邮件发送者和邮件接收者的位置。12. 静态IP地址指长期固定分配给一台计算机使用的IP地址,一般是由网络运营商分配。13. IP反向解析IP反向解析是一项常用的反垃圾邮件技术。常用的DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”。正向查找区域是指域名解析,反向查找区域即是IP反向解析,简称PTR记录,其作用是通过查询IP地址的PTR记录来得到该IP地址指向的域名。PTR记录需要由提供IP地址的网络运营商(ISP)进行配置。14. SPFSPF(Sender Policy Framework)是一种通过IP地址来认证电子邮件发件人身份的技术,是一项非常高效的反垃圾邮件技术。它通过在DNS中发布一条TXT类型的记录,用于登记某个域名所有拥有的合法的发送邮件的所有IP地址。15. DKIMDKIM(DomainKeys Identified Mail)是一种防诈骗邮件的反垃圾邮件技术。DKIM要求邮件发送方在电子邮件的信头插入DKIM-Signature及电子签名信息,而邮件接收方则通过DNS查询得到其公钥然后进行合法性验证。16. DMARCDMARC(Domain-based Message Authentication, Reporting and Conformance)是一种防诈骗邮件的反垃圾邮件技术。DMARC结合SPF和DKIM两项技术,通过检查电子邮件信头的发件人的合法性,将诈骗邮件识别出来。17. RBLRBL(Real-time Blackhole List),即实时黑名单列表,是一些由国际知名的反垃圾邮件组织所提供的恶意发送垃圾邮件的发件人邮箱地址,IP地址,URL地址等黑名单列表的服务。若已被RBL收录,需到相应RBL官方网站上去核实并申请移除。常见的知名RBL组织,如中国互联网协会反垃圾信息中心、spamhaus,Maps,sorbs,uribl,surbl等。18. w3.org规范由万维网联盟(W3C)共同开发与公布的各种web设计规范。当邮件正文以网页的形式组织时,应当参考这些规范。19.HELO电子邮件头中邮件发送者用来标识自己的身份的命令字段。 附录:电子邮件营销常用指标1. 发送量发送的营销电子邮件数量2. 到达量发送的营销电子邮件数量-退回的营销电子邮件数量3. 到达率到达接收方邮箱的营销电子邮件数量/发送的营销电子邮件数量×100%4. 退信率退回的营销电子邮件数量/发送的营销电子邮件数量×100%5. 硬退信率硬退回的营销电子邮件数量/发送的营销电子邮件数量×100%6. 软退信率软退回的营销电子邮件数量/发送的营销电子邮件数量×100%7. 打开率打开营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复打开邮件的情况。8. 点击率点击了营销电子邮件内容中链接的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复点击的情况。9. 点击打开率点击了营销电子邮件内容中链接的接收方数量/打开营销电子邮件的接收方数量×100%,不计算重复点击和重复打开的情况。10. 退订率退订营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%11. 投诉率被投诉的营销电子邮件数量/到达接收方邮箱的营销电子邮件数量×100%12. 信誉度邮件接收方或者第三方机构对营销电子邮件服务信誉和质量的评定结果 参考中华人民共和国信息产业部令第38号 互联网电子邮件服务管理办法中国互联网协会 电子邮件服务指南(V1.1)中国互联网协会 中国互联网协会互联网公共电子邮件服务规范YD-T 1310-2004 互联网广告电子邮件格式要求YD-T 1311-2004 防范互联网垃圾电子邮件技术要求

2019-12-01 23:24:47 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云任何版本的企业邮箱服务禁止发送营销邮件,营销邮件标准及相关规范,参见中国互联网协会反垃圾信息中心的管理规范。中国互联网协会电子邮件营销规范(V1.2)来源:反垃圾信息中心一、总则1.1 为规范电子邮件形式的市场营销行为,统一电子邮件营销[注1]的基本要求,为接收和发送营销内容的电子邮件提供依据,保护电子邮件用户的合法权益,根据我国相关法律法规的规定,制定本规范。1.2 本规范适用于电子邮件营销活动的开展和评价。1.3 本规范基于《互联网电子邮件服务管理办法》(中华人民共和国信息产业部令第38号)制定,从事电子邮件营销除应执行本规范外,还应符合《互联网电子邮件服务管理办法》及其他国家现行的有关标准的规定。二、基本规定2.1 中国互联网协会对电子邮件营销服务提供者[注2]实行登记备案管理。电子邮件营销服务提供者应当在开展电子邮件营销活动前将电子邮件发送服务器所使用的IP地址[注11]及相关信息向中国互联网协会反垃圾信息中心登记备案,并遵守以下规定:2.1.1需报备的 IP 地址及相关信息(1)备案单位基本情况,包括备案单位名称、备案单位地址、备案单位性质、备案单位组织机构代码、备案单位营业执照注册号、备案单位经营范围、备案单位注册资金、备案单位网站域名、备案单位法人代表姓名、备案单位联系人姓名、联系人电话、 联系人电子邮件、联系人即时通信方式等。(2)备案单位电子邮件发送服务器IP地址分配使用信息,包括备案单位用于发送电子邮件的IP地址数量、IP地址、IP地址段、IP地址所属单位名称、IP地址对应域名、IP地址对应发送营销电子邮件[注3]性质/类型(事务性邮件和商业性邮件等);(3)备案单位可自愿报备每次电子邮件营销活动的信息,包括本次营销活动使用IP地址、域名、发件人邮箱地址、电子邮件HELO[注19]信息、收件人数量、发送周期、平均发送速率[注10]、单IP最大发送速率、发送营销电子邮件性质/类型(事务性邮件和商业性邮件等)、营销电子邮件的原信/样信等。(4)其他需要备案的信息。2.1.2 电子邮件营销服务提供者拟变更电子邮件营销服务信息的,应当提前办理变更登记手续。2.1.3 电子邮件营销服务提供者提交的备案信息必须完整、真实、有效且符合我国相关法律法规规定。2.1.4 中国互联网协会反垃圾信息中心负责审核电子邮件营销服务提供者提交的备案资料,对符合要求的备案单位发放电子邮件营销备案资质证书。2.2 电子邮件营销服务提供者应当确保所有与电子邮件服务有关的域名和IP地址注册信息正确、完整和及时更新,并遵守以下规定:2.2.1 发送电子邮件的服务器IP地址必须使用静态IP[注12]地址,并已采取IP反向解析[注13]措施。2.2.2 发送电子邮件的邮箱域名建议与发送电子邮件的服务器IP反向解析的域名信息一致,并已采取SPF解析[注14]。2.2.3 建议使用DKIM[注15]、DMARC[注16]等反垃圾邮件技术,提高与电子邮件发送相关的域名和IP的信誉。2.2.4 关注知名的RBL[注17]组织列表,如果发现与电子邮件发送相关的域名、IP或邮箱地址出现在知名的RBL[注17]组织列表上,应及时采取措施进行申诉和解封。2.2.5 建议发送事务性邮件和商业性邮件的服务器分配不同的IP地址和发送邮箱地址。2.2.6 具有特殊功能的账户,如postmaster@账户(邮件管理员账户)或abuse@账户(投诉账户),必须保证其有效,并由专人负责管理维护。2.3 电子邮件营销服务提供者应当建立可靠有效的订阅[注5]及退订[注9]机制,并遵守以下规定:2.3.1未经电子邮件接收者明确许可,不得向其发送营销电子邮件。获取接收者许可的过程和内容应清楚、明确,且不违背我国的相关法律规定。电子邮件营销服务提供者应公布获取接收者许可的策略,保存接收者同意接收营销邮件的许可记录,以便在需要时向接收者提供相关信息。2.3.2营销电子邮件必须提供给接收者至少包含一种退订的途径和具体操作方法,退订信息应醒目、清晰,退订操作方法应简单,有效。2.3.3确保退订请求可以正常发送并能够被及时自动响应处理。不得强制要求用户提交退订原因或设置退订条件,退订请求发出后应在3个工作日内生效。2.4 电子邮件营销服务提供者应规范的使用和维护其营销用户[注4]的电子邮件地址列表[注6],并遵守以下规定:2.4.1 电子邮件营销服务提供者对营销用户的个人信息和电子邮件地址负有保密的义务。未经用户同意,不得泄露用户的个人信息和电子邮件地址,法律、行政法规另有规定的除外。2.4.2 电子邮件营销服务提供者应制定安全合理的隐私策略[注8]。营销用户的个人信息资料和电子邮件地址的使用应与收集目的一致,未经用户同意,不得用于收集目的以外的其它用途。2.4.3 必须保证每个电子邮件地址的取得都经过了用户的许可。尽量确保每个电子邮件地址都是真实有效的。2.4.4 应合理处理邮件投递过程中接收电子邮件的服务器返回的错误代码[注7]。对于返回代码表示不存在的电子邮件地址,应及时从发送列表中删除;对于连续出现投递错误的电子邮件地址,建议及时调整投递策略,减少可能导致错误发生的情况。2.5 电子邮件营销服务提供者应使用规范的电子邮件格式与内容,并遵守以下规定:2.5.1 营销电子邮件的内容不得违反我国相关法律法规规定。2.5.2 营销电子邮件格式应符合国际通用规范标准(参见RFC 2822)。邮件中如果包含HTML格式,应遵循由万维网联盟(W3C)公布的w3.org[注18]设计规范。2.5.3 营销电子邮件应标明邮件发送方的身份和真实的可返回的邮件发送地址。邮件的标题和信体要能准确的反映出邮件的内容、真实来源和通信目的。邮件正文应包含发送方的名称、地址、联系电话和电子邮件地址等详细信息。2.5.4 营销电子邮件的主题与内容必须相匹配。邮件内容应与营销用户的订阅内容一致。2.5.5 应采取有效的措施保护未成年人,尽可能的识别未成年的邮件订阅者。营销电子邮件含有不适合未成年人阅读的内容时,应提前核实接收者的年龄,确保接收者达到合法接收和阅读的年龄。发送给未成年人的营销邮件应征得其监护人的许可,内容符合此年龄段人群的知识水准、阅历和心里成熟程度。2.6 电子邮件营销服务提供者应与邮件接收方建立良好的沟通渠道,并参考以下规定:2.6.1 中国互联网协会反垃圾信息中心负责协助电子邮件营销服务提供者与邮件接收组织之间的沟通协调,在邮件传送过程中出现问题时,及时有效的进行沟通,确保尽快使问题得到解决。2.6.2 中国互联网协会反垃圾信息中心应协助电子邮件营销服务提供者与邮件接收组织之间建立信息反馈机制,改进电子邮件营销服务提供者的服务水平。2.6.3 中国互联网协会反垃圾信息中心应对电子邮件营销活动进行监督,对电子邮件营销服务提供者的信誉进行评价。2.6.4 电子邮件营销服务提供者应建立公平、高效、安全、易于使用的邮件投诉系统,在营销电子邮件中为营销用户提供便捷的投诉方式,受理营销用户对营销电子邮件的投诉。对被投诉的营销电子邮件,应立即开展调查,采取合理有效的防范或处理措施,并将有关情况和调查结果及时向各省通信管理局等国家有关机关或者12321网络不良和垃圾信息举报受理中心报告。2.6.5 电子邮件营销服务提供者应按照邮件接收方的要求限制营销电子邮件的发送速率。邮件接收方应将未投递成功的电子邮件服务器错误信息反馈邮件发送方。对信誉良好,行为规范的电子邮件营销服务提供者,邮件接收方可适当放宽营销电子邮件的发送速率。2.7 电子邮件营销服务提供者应积极配合各省通信管理局等国家有关机关和12321网络不良和垃圾信息举报受理中心开展调查工作。2.8 中国互联网协会拥有本规范的解释权和修改权。2.9 本规范自发布之日起施行。 附注:1. 电子邮件营销:指通过电子邮件开展的营销活动。2. 电子邮件营销服务提供者:也是营销电子邮件的发送方,指提供电子邮件营销服务的单位或个人,包括直接开展电子邮件营销活动的单位或个人以及接受委托开展电子邮件营销活动的单位或个人。3. 营销电子邮件:指具有营销功能的电子邮件。根据电子邮件的发送目的,分为事务性邮件和商业性邮件两种类型。3.1 事务性邮件,是指由收件人触发并已允许发件人发送的,以推动、完成或确认相关联流程为主要目的而发送的电子邮件。常见分类包括:(1)账号相关:账号激活、信息验证、账号绑定、密码修改、密码取回等。(2)交易信息:订单通知、付款通知、退款通知、物流通知、交易投诉等。(3)账单信息:对帐单、流水账单、催款通知、账户变更等。(4)其他类型。3.2 商业性邮件,是指任何以推销或者推广某种商品或服务(包括商业性网站的内容)为主要目的而发送的电子邮件。常见分类包括:(1)期刊资讯:更新通知、各类期刊、各类报表等。(2)产品促销:新品推广、季末促销、优惠套餐、折扣优惠、积分优惠等。(3)成员营销:好友邀请、成员关怀、主题活动、用户调研等。(4)其他类型。3.3 事务性邮件如果附带商业性内容,则视为商业性邮件。4. 营销用户:指电子邮件营销活动的对象,即接收营销电子邮件的电子邮箱使用者。5. 订阅:指营销用户预先订制,同意接收订制的营销电子邮件的行为。6. 邮件列表:指已经订阅了某一类营销电子邮件的用户电子邮箱地址列表,该列表是此类营销电子邮件的发送对象。7. 错误代码/硬退回/软退回:指在邮件的SMTP发送过程中,收信方服务器每处理完一条SMTP命令,都会向发信方服务器回传一个返回信息,用于表明对这条SMTP命令的执行结果。如返回信息以4XX(如450等)开头,指接收方临时性拒收该邮件,称软退回;如返回信息以5XX(如550等)开头,指接收方永久性拒收该邮件,称硬退回。以上列举的两类代码,习惯称为错误代码。8. 隐私策略:指电子邮件营销活动所收集的营销用户信息类型,收集方式和收集技术,以及信息的提供对象和使用用途。隐私策略中还应包括用户信息保护的安全措施、责任和实施过程。9. 退订:指营销用户取消订阅营销电子邮件的行为。10. 发送速率:指单位时间内的发送电子邮件的总数量。 常见的时间间隔单位包括:分钟、15分钟、小时、天、周、月等。11. IP地址/IP段IP地址是被用于定位互联网上的电脑一个唯一编号,地址的格式如159.226.1.1。多个IP地址的组合,即称为IP段。邮件发送过程中会?谰軮P地址,来确定邮件发送者和邮件接收者的位置。12. 静态IP地址指长期固定分配给一台计算机使用的IP地址,一般是由网络运营商分配。13. IP反向解析IP反向解析是一项常用的反垃圾邮件技术。常用的DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”。正向查找区域是指域名解析,反向查找区域即是IP反向解析,简称PTR记录,其作用是通过查询IP地址的PTR记录来得到该IP地址指向的域名。PTR记录需要由提供IP地址的网络运营商(ISP)进行配置。14. SPFSPF(Sender Policy Framework)是一种通过IP地址来认证电子邮件发件人身份的技术,是一项非常高效的反垃圾邮件技术。它通过在DNS中发布一条TXT类型的记录,用于登记某个域名所有拥有的合法的发送邮件的所有IP地址。15. DKIMDKIM(DomainKeys Identified Mail)是一种防诈骗邮件的反垃圾邮件技术。DKIM要求邮件发送方在电子邮件的信头插入DKIM-Signature及电子签名信息,而邮件接收方则通过DNS查询得到其公钥然后进行合法性验证。16. DMARCDMARC(Domain-based Message Authentication, Reporting and Conformance)是一种防诈骗邮件的反垃圾邮件技术。DMARC结合SPF和DKIM两项技术,通过检查电子邮件信头的发件人的合法性,将诈骗邮件识别出来。17. RBLRBL(Real-time Blackhole List),即实时黑名单列表,是一些由国际知名的反垃圾邮件组织所提供的恶意发送垃圾邮件的发件人邮箱地址,IP地址,URL地址等黑名单列表的服务。若已被RBL收录,需到相应RBL官方网站上去核实并申请移除。常见的知名RBL组织,如中国互联网协会反垃圾信息中心、spamhaus,Maps,sorbs,uribl,surbl等。18. w3.org规范由万维网联盟(W3C)共同开发与公布的各种web设计规范。当邮件正文以网页的形式组织时,应当参考这些规范。19.HELO电子邮件头中邮件发送者用来标识自己的身份的命令字段。 附录:电子邮件营销常用指标1. 发送量发送的营销电子邮件数量2. 到达量发送的营销电子邮件数量-退回的营销电子邮件数量3. 到达率到达接收方邮箱的营销电子邮件数量/发送的营销电子邮件数量×100%4. 退信率退回的营销电子邮件数量/发送的营销电子邮件数量×100%5. 硬退信率硬退回的营销电子邮件数量/发送的营销电子邮件数量×100%6. 软退信率软退回的营销电子邮件数量/发送的营销电子邮件数量×100%7. 打开率打开营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复打开邮件的情况。8. 点击率点击了营销电子邮件内容中链接的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复点击的情况。9. 点击打开率点击了营销电子邮件内容中链接的接收方数量/打开营销电子邮件的接收方数量×100%,不计算重复点击和重复打开的情况。10. 退订率退订营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%11. 投诉率被投诉的营销电子邮件数量/到达接收方邮箱的营销电子邮件数量×100%12. 信誉度邮件接收方或者第三方机构对营销电子邮件服务信誉和质量的评定结果 参考中华人民共和国信息产业部令第38号 互联网电子邮件服务管理办法中国互联网协会 电子邮件服务指南(V1.1)中国互联网协会 中国互联网协会互联网公共电子邮件服务规范YD-T 1310-2004 互联网广告电子邮件格式要求YD-T 1311-2004 防范互联网垃圾电子邮件技术要求

2019-12-01 23:24:47 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云任何版本的企业邮箱服务禁止发送营销邮件,营销邮件标准及相关规范,参见中国互联网协会反垃圾信息中心的管理规范。中国互联网协会电子邮件营销规范(V1.2)来源:反垃圾信息中心一、总则1.1 为规范电子邮件形式的市场营销行为,统一电子邮件营销[注1]的基本要求,为接收和发送营销内容的电子邮件提供依据,保护电子邮件用户的合法权益,根据我国相关法律法规的规定,制定本规范。1.2 本规范适用于电子邮件营销活动的开展和评价。1.3 本规范基于《互联网电子邮件服务管理办法》(中华人民共和国信息产业部令第38号)制定,从事电子邮件营销除应执行本规范外,还应符合《互联网电子邮件服务管理办法》及其他国家现行的有关标准的规定。二、基本规定2.1 中国互联网协会对电子邮件营销服务提供者[注2]实行登记备案管理。电子邮件营销服务提供者应当在开展电子邮件营销活动前将电子邮件发送服务器所使用的IP地址[注11]及相关信息向中国互联网协会反垃圾信息中心登记备案,并遵守以下规定:2.1.1需报备的 IP 地址及相关信息(1)备案单位基本情况,包括备案单位名称、备案单位地址、备案单位性质、备案单位组织机构代码、备案单位营业执照注册号、备案单位经营范围、备案单位注册资金、备案单位网站域名、备案单位法人代表姓名、备案单位联系人姓名、联系人电话、 联系人电子邮件、联系人即时通信方式等。(2)备案单位电子邮件发送服务器IP地址分配使用信息,包括备案单位用于发送电子邮件的IP地址数量、IP地址、IP地址段、IP地址所属单位名称、IP地址对应域名、IP地址对应发送营销电子邮件[注3]性质/类型(事务性邮件和商业性邮件等);(3)备案单位可自愿报备每次电子邮件营销活动的信息,包括本次营销活动使用IP地址、域名、发件人邮箱地址、电子邮件HELO[注19]信息、收件人数量、发送周期、平均发送速率[注10]、单IP最大发送速率、发送营销电子邮件性质/类型(事务性邮件和商业性邮件等)、营销电子邮件的原信/样信等。(4)其他需要备案的信息。2.1.2 电子邮件营销服务提供者拟变更电子邮件营销服务信息的,应当提前办理变更登记手续。2.1.3 电子邮件营销服务提供者提交的备案信息必须完整、真实、有效且符合我国相关法律法规规定。2.1.4 中国互联网协会反垃圾信息中心负责审核电子邮件营销服务提供者提交的备案资料,对符合要求的备案单位发放电子邮件营销备案资质证书。2.2 电子邮件营销服务提供者应当确保所有与电子邮件服务有关的域名和IP地址注册信息正确、完整和及时更新,并遵守以下规定:2.2.1 发送电子邮件的服务器IP地址必须使用静态IP[注12]地址,并已采取IP反向解析[注13]措施。2.2.2 发送电子邮件的邮箱域名建议与发送电子邮件的服务器IP反向解析的域名信息一致,并已采取SPF解析[注14]。2.2.3 建议使用DKIM[注15]、DMARC[注16]等反垃圾邮件技术,提高与电子邮件发送相关的域名和IP的信誉。2.2.4 关注知名的RBL[注17]组织列表,如果发现与电子邮件发送相关的域名、IP或邮箱地址出现在知名的RBL[注17]组织列表上,应及时采取措施进行申诉和解封。2.2.5 建议发送事务性邮件和商业性邮件的服务器分配不同的IP地址和发送邮箱地址。2.2.6 具有特殊功能的账户,如postmaster@账户(邮件管理员账户)或abuse@账户(投诉账户),必须保证其有效,并由专人负责管理维护。2.3 电子邮件营销服务提供者应当建立可靠有效的订阅[注5]及退订[注9]机制,并遵守以下规定:2.3.1未经电子邮件接收者明确许可,不得向其发送营销电子邮件。获取接收者许可的过程和内容应清楚、明确,且不违背我国的相关法律规定。电子邮件营销服务提供者应公布获取接收者许可的策略,保存接收者同意接收营销邮件的许可记录,以便在需要时向接收者提供相关信息。2.3.2营销电子邮件必须提供给接收者至少包含一种退订的途径和具体操作方法,退订信息应醒目、清晰,退订操作方法应简单,有效。2.3.3确保退订请求可以正常发送并能够被及时自动响应处理。不得强制要求用户提交退订原因或设置退订条件,退订请求发出后应在3个工作日内生效。2.4 电子邮件营销服务提供者应规范的使用和维护其营销用户[注4]的电子邮件地址列表[注6],并遵守以下规定:2.4.1 电子邮件营销服务提供者对营销用户的个人信息和电子邮件地址负有保密的义务。未经用户同意,不得泄露用户的个人信息和电子邮件地址,法律、行政法规另有规定的除外。2.4.2 电子邮件营销服务提供者应制定安全合理的隐私策略[注8]。营销用户的个人信息资料和电子邮件地址的使用应与收集目的一致,未经用户同意,不得用于收集目的以外的其它用途。2.4.3 必须保证每个电子邮件地址的取得都经过了用户的许可。尽量确保每个电子邮件地址都是真实有效的。2.4.4 应合理处理邮件投递过程中接收电子邮件的服务器返回的错误代码[注7]。对于返回代码表示不存在的电子邮件地址,应及时从发送列表中删除;对于连续出现投递错误的电子邮件地址,建议及时调整投递策略,减少可能导致错误发生的情况。2.5 电子邮件营销服务提供者应使用规范的电子邮件格式与内容,并遵守以下规定:2.5.1 营销电子邮件的内容不得违反我国相关法律法规规定。2.5.2 营销电子邮件格式应符合国际通用规范标准(参见RFC 2822)。邮件中如果包含HTML格式,应遵循由万维网联盟(W3C)公布的w3.org[注18]设计规范。2.5.3 营销电子邮件应标明邮件发送方的身份和真实的可返回的邮件发送地址。邮件的标题和信体要能准确的反映出邮件的内容、真实来源和通信目的。邮件正文应包含发送方的名称、地址、联系电话和电子邮件地址等详细信息。2.5.4 营销电子邮件的主题与内容必须相匹配。邮件内容应与营销用户的订阅内容一致。2.5.5 应采取有效的措施保护未成年人,尽可能的识别未成年的邮件订阅者。营销电子邮件含有不适合未成年人阅读的内容时,应提前核实接收者的年龄,确保接收者达到合法接收和阅读的年龄。发送给未成年人的营销邮件应征得其监护人的许可,内容符合此年龄段人群的知识水准、阅历和心里成熟程度。2.6 电子邮件营销服务提供者应与邮件接收方建立良好的沟通渠道,并参考以下规定:2.6.1 中国互联网协会反垃圾信息中心负责协助电子邮件营销服务提供者与邮件接收组织之间的沟通协调,在邮件传送过程中出现问题时,及时有效的进行沟通,确保尽快使问题得到解决。2.6.2 中国互联网协会反垃圾信息中心应协助电子邮件营销服务提供者与邮件接收组织之间建立信息反馈机制,改进电子邮件营销服务提供者的服务水平。2.6.3 中国互联网协会反垃圾信息中心应对电子邮件营销活动进行监督,对电子邮件营销服务提供者的信誉进行评价。2.6.4 电子邮件营销服务提供者应建立公平、高效、安全、易于使用的邮件投诉系统,在营销电子邮件中为营销用户提供便捷的投诉方式,受理营销用户对营销电子邮件的投诉。对被投诉的营销电子邮件,应立即开展调查,采取合理有效的防范或处理措施,并将有关情况和调查结果及时向各省通信管理局等国家有关机关或者12321网络不良和垃圾信息举报受理中心报告。2.6.5 电子邮件营销服务提供者应按照邮件接收方的要求限制营销电子邮件的发送速率。邮件接收方应将未投递成功的电子邮件服务器错误信息反馈邮件发送方。对信誉良好,行为规范的电子邮件营销服务提供者,邮件接收方可适当放宽营销电子邮件的发送速率。2.7 电子邮件营销服务提供者应积极配合各省通信管理局等国家有关机关和12321网络不良和垃圾信息举报受理中心开展调查工作。2.8 中国互联网协会拥有本规范的解释权和修改权。2.9 本规范自发布之日起施行。 附注:1. 电子邮件营销:指通过电子邮件开展的营销活动。2. 电子邮件营销服务提供者:也是营销电子邮件的发送方,指提供电子邮件营销服务的单位或个人,包括直接开展电子邮件营销活动的单位或个人以及接受委托开展电子邮件营销活动的单位或个人。3. 营销电子邮件:指具有营销功能的电子邮件。根据电子邮件的发送目的,分为事务性邮件和商业性邮件两种类型。3.1 事务性邮件,是指由收件人触发并已允许发件人发送的,以推动、完成或确认相关联流程为主要目的而发送的电子邮件。常见分类包括:(1)账号相关:账号激活、信息验证、账号绑定、密码修改、密码取回等。(2)交易信息:订单通知、付款通知、退款通知、物流通知、交易投诉等。(3)账单信息:对帐单、流水账单、催款通知、账户变更等。(4)其他类型。3.2 商业性邮件,是指任何以推销或者推广某种商品或服务(包括商业性网站的内容)为主要目的而发送的电子邮件。常见分类包括:(1)期刊资讯:更新通知、各类期刊、各类报表等。(2)产品促销:新品推广、季末促销、优惠套餐、折扣优惠、积分优惠等。(3)成员营销:好友邀请、成员关怀、主题活动、用户调研等。(4)其他类型。3.3 事务性邮件如果附带商业性内容,则视为商业性邮件。4. 营销用户:指电子邮件营销活动的对象,即接收营销电子邮件的电子邮箱使用者。5. 订阅:指营销用户预先订制,同意接收订制的营销电子邮件的行为。6. 邮件列表:指已经订阅了某一类营销电子邮件的用户电子邮箱地址列表,该列表是此类营销电子邮件的发送对象。7. 错误代码/硬退回/软退回:指在邮件的SMTP发送过程中,收信方服务器每处理完一条SMTP命令,都会向发信方服务器回传一个返回信息,用于表明对这条SMTP命令的执行结果。如返回信息以4XX(如450等)开头,指接收方临时性拒收该邮件,称软退回;如返回信息以5XX(如550等)开头,指接收方永久性拒收该邮件,称硬退回。以上列举的两类代码,习惯称为错误代码。8. 隐私策略:指电子邮件营销活动所收集的营销用户信息类型,收集方式和收集技术,以及信息的提供对象和使用用途。隐私策略中还应包括用户信息保护的安全措施、责任和实施过程。9. 退订:指营销用户取消订阅营销电子邮件的行为。10. 发送速率:指单位时间内的发送电子邮件的总数量。 常见的时间间隔单位包括:分钟、15分钟、小时、天、周、月等。11. IP地址/IP段IP地址是被用于定位互联网上的电脑一个唯一编号,地址的格式如159.226.1.1。多个IP地址的组合,即称为IP段。邮件发送过程中会?谰軮P地址,来确定邮件发送者和邮件接收者的位置。12. 静态IP地址指长期固定分配给一台计算机使用的IP地址,一般是由网络运营商分配。13. IP反向解析IP反向解析是一项常用的反垃圾邮件技术。常用的DNS服务器里面有两个区域,即“正向查找区域”和“反向查找区域”。正向查找区域是指域名解析,反向查找区域即是IP反向解析,简称PTR记录,其作用是通过查询IP地址的PTR记录来得到该IP地址指向的域名。PTR记录需要由提供IP地址的网络运营商(ISP)进行配置。14. SPFSPF(Sender Policy Framework)是一种通过IP地址来认证电子邮件发件人身份的技术,是一项非常高效的反垃圾邮件技术。它通过在DNS中发布一条TXT类型的记录,用于登记某个域名所有拥有的合法的发送邮件的所有IP地址。15. DKIMDKIM(DomainKeys Identified Mail)是一种防诈骗邮件的反垃圾邮件技术。DKIM要求邮件发送方在电子邮件的信头插入DKIM-Signature及电子签名信息,而邮件接收方则通过DNS查询得到其公钥然后进行合法性验证。16. DMARCDMARC(Domain-based Message Authentication, Reporting and Conformance)是一种防诈骗邮件的反垃圾邮件技术。DMARC结合SPF和DKIM两项技术,通过检查电子邮件信头的发件人的合法性,将诈骗邮件识别出来。17. RBLRBL(Real-time Blackhole List),即实时黑名单列表,是一些由国际知名的反垃圾邮件组织所提供的恶意发送垃圾邮件的发件人邮箱地址,IP地址,URL地址等黑名单列表的服务。若已被RBL收录,需到相应RBL官方网站上去核实并申请移除。常见的知名RBL组织,如中国互联网协会反垃圾信息中心、spamhaus,Maps,sorbs,uribl,surbl等。18. w3.org规范由万维网联盟(W3C)共同开发与公布的各种web设计规范。当邮件正文以网页的形式组织时,应当参考这些规范。19.HELO电子邮件头中邮件发送者用来标识自己的身份的命令字段。 附录:电子邮件营销常用指标1. 发送量发送的营销电子邮件数量2. 到达量发送的营销电子邮件数量-退回的营销电子邮件数量3. 到达率到达接收方邮箱的营销电子邮件数量/发送的营销电子邮件数量×100%4. 退信率退回的营销电子邮件数量/发送的营销电子邮件数量×100%5. 硬退信率硬退回的营销电子邮件数量/发送的营销电子邮件数量×100%6. 软退信率软退回的营销电子邮件数量/发送的营销电子邮件数量×100%7. 打开率打开营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复打开邮件的情况。8. 点击率点击了营销电子邮件内容中链接的接收方数量/收到营销电子邮件的接收方数量×100%,不计算重复点击的情况。9. 点击打开率点击了营销电子邮件内容中链接的接收方数量/打开营销电子邮件的接收方数量×100%,不计算重复点击和重复打开的情况。10. 退订率退订营销电子邮件的接收方数量/收到营销电子邮件的接收方数量×100%11. 投诉率被投诉的营销电子邮件数量/到达接收方邮箱的营销电子邮件数量×100%12. 信誉度邮件接收方或者第三方机构对营销电子邮件服务信誉和质量的评定结果 参考中华人民共和国信息产业部令第38号 互联网电子邮件服务管理办法中国互联网协会 电子邮件服务指南(V1.1)中国互联网协会 中国互联网协会互联网公共电子邮件服务规范YD-T 1310-2004 互联网广告电子邮件格式要求YD-T 1311-2004 防范互联网垃圾电子邮件技术要求

2019-12-01 23:24:48 0 浏览量 回答数 0

问题

从一道面试题谈谈一线大厂码农应该具备的基本能力 7月16日 【今日算法】

游客ih62co2qqq5ww 2020-07-22 13:45:47 118 浏览量 回答数 1

问题

【精品问答】python技术1000问(2)

问问小秘 2019-12-01 22:03:02 3129 浏览量 回答数 1

问题

SAP上云——助力制造业数字化转型

福利达人 2019-12-01 21:09:17 2793 浏览量 回答数 0

问题

词汇表是什么样的?(S-V)

轩墨 2019-12-01 22:06:08 2089 浏览量 回答数 0

回答

你好,这里有208份资料,详情请参考:https://github.com/ty4z2008/Qix/blob/master/ds.md 《Reconfigurable Distributed Storage for Dynamic Networks》介绍:这是一篇介绍在动态网络里面实现分布式系统重构的paper.论文的作者(导师)是MIT读博的时候是做分布式系统的研究的,现在在NUS带学生,不仅仅是分布式系统,还有无线网络.如果感兴趣可以去他的主页了解. 《Distributed porgramming liboratory》介绍:分布式编程实验室,他们发表的很多的paper,其中不仅仅是学术研究,还有一些工业界应用的论文. 《MIT Theory of Distributed Systems》介绍:麻省理工的分布式系统理论主页,作者南希·林奇在2002年证明了CAP理论,并且著《分布式算法》一书. 《Notes on Distributed Systems for Young Bloods》介绍:分布式系统搭建初期的一些建议 《Principles of Distributed Computing》介绍:分布式计算原理课程 《Google's Globally-Distributed Database》介绍:Google全球分布式数据介绍,中文版 《The Architecture Of Algolia’s Distributed Search Network》介绍:Algolia的分布式搜索网络的体系架构介绍 《Build up a High Availability Distributed Key-Value Store》介绍:构建高可用分布式Key-Value存储系统 《Distributed Search Engine with Nanomsg and Bond》介绍:Nanomsg和Bond的分布式搜索引擎 《Distributed Processing With MongoDB And Mongothon》介绍:使用MongoDB和Mongothon进行分布式处理 《Salt: Combining ACID and BASE in a Distributed Database》介绍:分布式数据库中把ACID与BASE结合使用. 《Makes it easy to understand Paxos for Distributed Systems》介绍:理解的Paxos的分布式系统,参考阅读:关于Paxos的历史 《There is No Now Problems with simultaneity in distributed systems》介绍:There is No Now Problems with simultaneity in distributed systems 《Distributed Systems》介绍:伦敦大学学院分布式系统课程课件. 《Distributed systems for fun and profit》介绍:分布式系统电子书籍. 《Distributed Systems Spring 2015》介绍:卡内基梅隆大学春季分布式课程主页 《Distributed Systems: Concepts and Design (5th Edition)》介绍: 电子书,分布式系统概念与设计(第五版) 《走向分布式》介绍:这是一位台湾网友 ccshih 的文字,短短的篇幅介绍了分布式系统的若干要点。pdf 《Introduction to Distributed Systems Spring 2013》介绍:清华大学分布式系统课程主页,里面的schedule栏目有很多宝贵的资源 《Distributed systems》介绍:免费的在线分布式系统书籍 《Some good resources for learning about distributed computing》介绍:Quora上面的一篇关于学习分布式计算的资源. 《Spanner: Google’s Globally-Distributed Database》介绍:这个是第一个全球意义上的分布式数据库,也是Google的作品。其中介绍了很多一致性方面的设计考虑,为了简单的逻辑设计,还采用了原子钟,同样在分布式系统方面具有很强的借鉴意义. 《The Chubby lock service for loosely-coupled distributed systems》介绍:Google的统面向松散耦合的分布式系统的锁服务,这篇论文详细介绍了Google的分布式锁实现机制Chubby。Chubby是一个基于文件实现的分布式锁,Google的Bigtable、Mapreduce和Spanner服务都是在这个基础上构建的,所以Chubby实际上是Google分布式事务的基础,具有非常高的参考价值。另外,著名的zookeeper就是基于Chubby的开源实现.推荐The google stack,Youtube:The Chubby lock service for loosely-coupled distributed systems 《Sinfonia: a new paradigm for building scalable distributed systems》介绍:这篇论文是SOSP2007的Best Paper,阐述了一种构建分布式文件系统的范式方法,个人感觉非常有用。淘宝在构建TFS、OceanBase和Tair这些系统时都充分参考了这篇论文. 《Data-Intensive Text Processing with MapReduce》介绍:Ebook:Data-Intensive Text Processing with MapReduce. 《Design and Implementation of a Query Processor for a Trusted Distributed Data Base Management System》介绍:Design and Implementation of a Query Processor for a Trusted Distributed Data Base Management System. 《Distributed Query Processing》介绍:分布式查询入门. 《Distributed Systems and the End of the API》介绍:分布式系统和api总结. 《Distributed Query Reading》介绍:分布式系统阅读论文,此外还推荐github上面的一个论文列表The Distributed Reader。 《Replication, atomicity and order in distributed systems》介绍:Replication, atomicity and order in distributed systems 《MIT course:Distributed Systems》介绍:2015年MIT分布式系统课程主页,这次用Golang作为授课语言。6.824 Distributed Systems课程主页 《Distributed systems for fun and profit》介绍:免费分布式系统电子书。 《Ori:A Secure Distributed File System》介绍:斯坦福开源的分布式文件系统。 《Availability in Globally Distributed Storage Systems》介绍:Google论文:设计一个高可用的全球分布式存储系统。 《Calvin: Fast Distributed Transactions For Partitioned Database Systems》介绍:对于分区数据库的分布式事务处理。 《Distributed Systems Building Block: Flake Ids》介绍:Distributed Systems Building Block: Flake Ids. 《Introduction to Distributed System Design》介绍:Google Code University课程,如何设计一个分布式系统。 《Sheepdog: Distributed Storage System for KVM》介绍:KVM的分布式存储系统. 《Readings in Distributed Systems Systems》介绍:分布式系统课程列表,包括数据库、算法等. 《Tera》介绍:来自百度的分布式表格系统. 《Distributed systems: for fun and profit》介绍:分布式系统的在线电子书. 《Distributed Systems Reading List》介绍:分布式系统资料,此外还推荐Various articles about distributed systems. 《Designs, Lessons and Advice from Building Large Distributed Systems》介绍:Designs, Lessons and Advice from Building Large Distributed Systems. 《Testing a Distributed System》介绍:Testing a distributed system can be trying even under the best of circumstances. 《The Google File System》介绍: 基于普通服务器构建超大规模文件系统的典型案例,主要面向大文件和批处理系统, 设计简单而实用。 GFS是google的重要基础设施, 大数据的基石, 也是Hadoop HDFS的参考对象。 主要技术特点包括: 假设硬件故障是常态(容错能力强), 64MB大块, 单Master设计,Lease/链式复制, 支持追加写不支持随机写. 《Bigtable: A Distributed Storage System for Structured Data》介绍:支持PB数据量级的多维非关系型大表, 在google内部应用广泛,大数据的奠基作品之一 , Hbase就是参考BigTable设计。 Bigtable的主要技术特点包括: 基于GFS实现数据高可靠, 使用非原地更新技术(LSM树)实现数据修改, 通过range分区并实现自动伸缩等.中文版 《PacificA: Replication in Log-Based Distributed Storage Systems》介绍:面向log-based存储的强一致的主从复制协议, 具有较强实用性。 这篇文章系统地讲述了主从复制系统应该考虑的问题, 能加深对主从强一致复制的理解程度。 技术特点: 支持强一致主从复制协议, 允许多种存储实现, 分布式的故障检测/Lease/集群成员管理方法. 《Object Storage on CRAQ, High-throughput chain replication for read-mostly workloads》介绍:分布式存储论文:支持强一直的链式复制方法, 支持从多个副本读取数据,实现code. 《Finding a needle in Haystack: Facebook’s photo storage》介绍:Facebook分布式Blob存储,主要用于存储图片. 主要技术特色:小文件合并成大文件,小文件元数据放在内存因此读写只需一次IO. 《Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency》介绍: 微软的分布式存储平台, 除了支持类S3对象存储,还支持表格、队列等数据模型. 主要技术特点:采用Stream/Partition两层设计(类似BigTable);写错(写满)就封存Extent,使得副本字节一致, 简化了选主和恢复操作; 将S3对象存储、表格、队列、块设备等融入到统一的底层存储架构中. 《Paxos Made Live – An Engineering Perspective》介绍:从工程实现角度说明了Paxo在chubby系统的应用, 是理解Paxo协议及其应用场景的必备论文。 主要技术特点: paxo协议, replicated log, multi-paxo.参考阅读:关于Paxos的历史 《Dynamo: Amazon’s Highly Available Key-Value Store》介绍:Amazon设计的高可用的kv系统,主要技术特点:综和运用一致性哈希,vector clock,最终一致性构建一个高可用的kv系统, 可应用于amazon购物车场景.新内容来自分布式存储必读论文 《Efficient Replica Maintenance for Distributed Storage Systems》介绍:分布式存储系统中的副本存储问题. 《PADS: A Policy Architecture for Distributed Storage Systems》介绍:分布式存储系统架构. 《The Chirp Distributed Filesystem》介绍:开源分布式文件系统Chirp,对于想深入研究的开发者可以阅读文章的相关Papers. 《Time, Clocks, and the Ordering of Events in a Distributed System》介绍:经典论文分布式时钟顺序的实现原理. 《Making reliable distributed systems in the presence of sodware errors》介绍:面向软件错误构建可靠的分布式系统,中文笔记. 《MapReduce: Simplified Data Processing on Large Clusters》介绍:MapReduce:超大集群的简单数据处理. 《Distributed Computer Systems Engineering》介绍:麻省理工的分布式计算课程主页,里面的ppt和阅读列表很多干货. 《The Styx Architecture for Distributed Systems》介绍:分布式系统Styx的架构剖析. 《What are some good resources for learning about distributed computing? Why?》介绍:Quora上面的一个问答:有哪些关于分布式计算学习的好资源. 《RebornDB: The Next Generation Distributed Key-Value Store》介绍:下一代分布式k-v存储数据库. 《Operating System Concepts Ninth Edition》介绍:分布式系统归根结底还是需要操作系统的知识,这是耶鲁大学的操作系统概念书籍首页,里面有提供了第8版的在线电子版和最新的学习操作系统指南,学习分布式最好先学习操作系统. 《The Log: What every software engineer should know about real-time data's unifying abstraction》介绍:分布式系统Log剖析,非常的详细与精彩. 中文翻译 | 中文版笔记. 《Operating Systems Study Guide》介绍:分布式系统基础之操作系统学习指南. 《分布式系统领域经典论文翻译集》介绍:分布式系统领域经典论文翻译集. 《Maintaining performance in distributed systems》介绍:分布式系统性能维护. 《Computer Science from the Bottom Up》介绍:计算机科学,自底向上,小到机器码,大到操作系统内部体系架构,学习操作系统的另一个在线好材料. 《Operating Systems: Three Easy Pieces》介绍:<操作系统:三部曲>在线电子书,虚拟、并发、持续. 《Database Systems: reading list》介绍:数据库系统经典论文阅读列,此外推送github上面的db reading. 《Unix System Administration》介绍:Unix System Administration ebook. 《The Amoeba Distributed Operating System》介绍:分布式系统经典论文. 《Principles of Computer Systems》介绍:计算机系统概念,以分布式为主.此外推荐Introduction to Operating Systems笔记 《Person page of EMİN GÜN SİRER》介绍:推荐康奈尔大学的教授EMİN GÜN SİRER的主页,他的研究项目有分布式,数据存储。例如HyperDex数据库就是他的其中一个项目之一. 《Scalable, Secure, and Highly Available Distributed File Access》介绍:来自卡内基梅隆如何构建可扩展的、安全、高可用性的分布式文件系统,其他papers. 《Distributed (Deep) Machine Learning Common》介绍:分布式机器学习常用库. 《The Datacenter as a Computer》介绍:介绍了如何构建仓储式数据中心,尤其是对于现在的云计算,分布式学习来说很有帮助.本书是Synthesis Lectures on Computer Architecture系列的书籍之一,这套丛书还有 《The Memory System》,《Automatic Parallelization》,《Computer Architecture Techniques for Power Efficiency》,《Performance Analysis and Tuning for General Purpose Graphics Processing Units》,《Introduction to Reconfigurable Supercomputing》,Memory Systems Cache, DRAM, Disk 等 《helsinki:Distributed Systems Course slider》介绍:来自芬兰赫尔辛基的分布式系统课程课件:什么是分布式,复制,一致性,容错,同步,通信. 《TiDB is a distributed SQL database》介绍:分布式数据库TiDB,Golang开发. 《S897: Large-Scale Systems》介绍:课程资料:大规模系统. 《Large-scale L-BFGS using MapReduce》介绍:使用MapReduce进行大规模分布式集群环境下并行L-BFGS. 《Twitter是如何构建高性能分布式日志的》介绍:Twitter是如何构建高性能分布式日志的. 《Distributed Systems: When Limping Hardware Is Worse Than Dead Hardware》介绍:在分布式系统中某个组件彻底死了影响很小,但半死不活(网络/磁盘),对整个系统却是毁灭性的. 《Tera - 高性能、可伸缩的结构化数据库》介绍:来自百度的分布式数据库. 《SequoiaDB is a distributed document-oriented NoSQL Database》介绍:SequoiaDB分布式文档数据库开源. 《Readings in distributed systems》介绍:这个网址里收集了一堆各TOP大学分布式相关的课程. 《Paxos vs Raft》介绍:这个网站是Raft算法的作者为教授Paxos和Raft算法做的,其中有两个视频链接,分别讲上述两个算法.参考阅读:关于Paxos的历史 《A Scalable Content-Addressable Network》介绍:A Scalable Content-Addressable Network. 《500 Lines or Less》介绍:这个项目其实是一本书( The Architecture of Open Source Applications)的源代码附录,是一堆大牛合写的. 《MIT 6.824 Distributed System》介绍:这只是一个课程主页,没有上课的视频,但是并不影响你跟着它上课:每一周读两篇课程指定的论文,读完之后看lecture-notes里对该论文内容的讨论,回答里面的问题来加深理解,最后在课程lab里把所看的论文实现。当你把这门课的作业刷完后,你会发现自己实现了一个分布式数据库. 《HDFS-alike in Go》介绍:使用go开发的分布式文件系统. 《What are some good resources for learning about distributed computing? Why?》介绍:Quora上关于学习分布式的资源问答. 《SeaweedFS is a simple and highly scalable distributed file system》介绍:SeaweedFS是使用go开发的分布式文件系统项目,代码简单,逻辑清晰. 《Codis - yet another fast distributed solution for Redis》介绍:Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 《Paper: Coordination Avoidance In Distributed Databases By Peter Bailis》介绍:Coordination Avoidance In Distributed Databases. 《从零开始写分布式数据库》介绍:本文以TiDB 源码为例. 《what we talk about when we talk about distributed systems》介绍:分布式系统概念梳理,为分布式系统涉及的主要概念进行了梳理. 《Distributed locks with Redis》介绍:使用Redis实现分布式锁. 《CS244b: Distributed Systems》介绍: 斯坦福2014年秋季分布式课程. 《RAMP Made Easy》介绍: 分布式的“读原子性”. 《Strategies and Principles of Distributed Machine Learning on Big Data》介绍: 大数据分布式机器学习的策略与原理. 《Distributed Systems: What is the CAP theorem?》介绍: 分布式CAP法则. 《How should I start to learn distributed storage system as a beginner?》介绍: 新手如何步入分布式存储系统. 《Cassandra - A Decentralized Structured Storage System》介绍: 分布式存储系统Cassandra剖析,推荐白皮书Introduction to Apache Cassandra. 《What is the best resource to learn about distributed systems?》介绍: 分布式系统学习资源. 《What are some high performance TCP hacks?》介绍: 一些高性能TCP黑客技巧. 《Maintaining performance in distributed systems》介绍:分布式系统性能提升. 《A simple totally ordered broadcast protocol》介绍:Benjamin Reed 和 Flavio P.Junqueira 所著论文,对Zab算法进行了介绍,zab算法是Zookeeper保持数据一致性的核心,在国内有很多公司都使用zookeeper做为分布式的解决方案.推荐与此相关的一篇文章ZooKeeper’s atomic broadcast protocol: Theory and practice. 《zFS - A Scalable Distributed File System Using Object Disk》介绍:可扩展的分布式文件系统ZFS,The Zettabyte File System,End-to-end Data Integrity for File Systems: A ZFS Case Study. 《A Distributed Haskell for the Modern Web》介绍:分布式Haskell在当前web中的应用. 《Reasoning about Consistency Choices in Distributed Systems》介绍:POPL2016的论文,关于分布式系统一致性选择的论述,POPL所接受的论文,github上已经有人整理. 《Paxos Made Simple》介绍:Paxos让分布式更简单.译文.参考阅读:关于Paxos的历史,understanding Paxos part1,Understanding Paxos – Part 2.Quora: What is a simple explanation of the Paxos algorithm?,Tutorial Summary: Paxos Explained from Scratch,Paxos algorithm explained, part 1: The essentials,Paxos algorithm explained, part 2: Insights 《Consensus Protocols: Paxos》介绍:分布式系统一致性协议:Paxos.参考阅读:关于Paxos的历史 《Consensus on Transaction Commit》介绍:事务提交的一致性探讨. 《The Part-Time Parliaments》介绍:在《The Part-Time Parliament》中描述了基本协议的交互过程。在基本协议的基础上完善各种问题得到了最终的议会协议。 为了让人更容易理解《The Part-Time Parliament》中描述的Paxos算法,Lamport在2001发表了《Paxos Made Simple》,以更平直的口头语言描述了Paxos,而没有包含正式的证明和数学术语。《Paxos Made Simple》中,将算法的参与者更细致的划分成了几个角色:Proposer、Acceptor、Learner。另外还有Leader和Client.参考阅读:关于Paxos的历史 《Paxos Made Practical》介绍:看这篇论文时可以先看看理解Paxos Made Practical. 《PaxosLease: Diskless Paxos for Leases》介绍:PaxosLease:实现租约的无盘Paxos算法,译文. 《Paxos Made Moderately Complex》介绍:Paxos算法实现,译文,同时推荐42 Paxos Made Moderately Complex. 《Hadoop Reading List》介绍:Hadoop学习清单. 《Hadoop Reading List》介绍:Hadoop学习清单. 《2010 NoSQL Summer Reading List》介绍:NoSQL知识清单,里面不仅仅包含了数据库阅读清单还包含了分布式系统资料. 《Raft: Understandable Distributed Consensus》介绍:Raft可视化图帮助理解分布式一致性 《Etcd:Distributed reliable key-value store for the most critical data of a distributed system》介绍:Etcd分布式Key-Value存储引擎 《Understanding Availability》介绍:理解peer-to-peer系统中的可用性究竟是指什么.同时推荐基于 Peer-to-Peer 的分布式存储系统的设计 《Process structuring, synchronization, and recovery using atomic actions》介绍:经典论文 《Programming Languages for Parallel Processing》介绍:并行处理的编程语音 《Analysis of Six Distributed File Systems》介绍:此篇论文对HDFS,MooseFS,iRODS,Ceph,GlusterFS,Lustre六个存储系统做了详细分析.如果是自己研发对应的存储系统推荐先阅读此篇论文 《A Survey of Distributed File Systems》介绍:分布式文件系统综述 《Concepts of Concurrent Programming》介绍:并行编程的概念,同时推荐卡内基梅隆FTP 《Concurrency Control Performance Modeling:Alternatives and Implications》介绍:并发控制性能建模:选择与意义 《Distributed Systems - Concepts and Design 5th Edition》介绍:ebook分布式系统概念与设计 《分布式系统设计的形式方法》介绍:分布式系统设计的形式方法 《互斥和选举算法》介绍:互斥和选举算法 《Actors:A model Of Concurrent Cornputation In Distributed Systems》介绍:经典论文 《Security Engineering: A Guide to Building Dependable Distributed Systems》介绍:如何构建一个安全可靠的分布式系统,About the Author,Bibliography:文献资料,章节访问把链接最后的01换成01-27即可 《15-712 Advanced and Distributed Operating Systems》介绍:卡内基梅隆大学的分布式系统博士生课程主页,有很丰富的资料 《Dapper, Google's Large-Scale Distributed Systems Tracing Infrastructure》介绍:Dapper,大规模分布式系统的跟踪系统,译文,译文对照 《CS262a: Advanced Topics in Computer Systems》介绍:伯克利大学计算机系统进阶课程,内容有深度,涵盖分布式,数据库等内容 《Egnyte Architecture: Lessons Learned In Building And Scaling A Multi Petabyte Distributed System》介绍:PB级分布式系统构建/扩展经验 《CS162: Operating Systems and Systems Programming》介绍:伯克利大学计算机系统课程:操作系统与系统编程 《MDCC: Multi-Data Center Consistency》介绍:MDCC主要解决跨数据中心的一致性问题中间件,一种新的协议 《Research at Google:Distributed Systems and Parallel Computing》介绍:google公开对外发表的分布式系统与并行计算论文 《HDFS Architecture Guide》介绍:分布式文件系统HDFS架构 《ActorDB distributed SQL database》介绍:分布式 Key/Value数据库 《An efficient data location protocol for self-organizing storage clusters》介绍:是著名的Ceph的负载平衡策略,文中提出的几种策略都值得尝试,比较赞的一点是可以对照代码体会和实践,如果你还需要了解可以看看Ceph:一个 Linux PB 级分布式文件系统,除此以外,论文的引用部分也挺值得阅读的,同时推荐Ceph: A Scalable, High-Performance Distributed File System 《A Self-Organizing Storage Cluster for Parallel Data-Intensive Applications》介绍:Surrento的冷热平衡策略就采用了延迟写技术 《HBA: Distributed Metadata Management for Large Cluster-Based Storage Systems》介绍:对于分布式存储系统的元数据管理. 《Server-Side I/O Coordination for Parallel File Systems》介绍:服务器端的I/O协调并行文件系统处理,网络,文件存储等都会涉及到IO操作.不过里面涉及到很多技巧性的思路在实践时需要斟酌 《Distributed File Systems: Concepts and Examples》介绍:分布式文件系统概念与应用 《CSE 221: Graduate Operating Systems》介绍:加利福尼亚大学的研究生操作系统课程主页,论文很值得阅读 《S4: Distributed Stream Computing Platform》介绍:Yahoo出品的流式计算系统,目前最流行的两大流式计算系统之一(另一个是storm),Yahoo的主要广告计算平台 《Pregel: a system for large-scale graph processing》介绍:Google的大规模图计算系统,相当长一段时间是Google PageRank的主要计算系统,对开源的影响也很大(包括GraphLab和GraphChi) 《GraphLab: A New Framework for Parallel Machine Learning》介绍:CMU基于图计算的分布式机器学习框架,目前已经成立了专门的商业公司,在分布式机器学习上很有两把刷子,其单机版的GraphChi在百万维度的矩阵分解都只需要2~3分钟; 《F1: A Distributed SQL Database That Scales》介绍:这篇论文是Google 2013年发表的,介绍了F1的架构思路,13年时就开始支撑Google的AdWords业务,另外两篇介绍文章F1 - The Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business .Google NewSQL之F1 《Cockroach DB:A Scalable, Survivable, Strongly-Consistent SQL Database》介绍:CockroachDB :一个可伸缩的、跨地域复制的,且支持事务的数据存储,InfoQ介绍,Design and Architecture of CockroachDb 《Multi-Paxos: An Implementation and Evaluation》介绍:Multi-Paxos实现与总结,此外推荐Paxos/Multi-paxos Algorithm,Multi-Paxos Example,地址:ftp://ftp.cs.washington.edu/tr/2009/09/UW-CSE-09-09-02.PDF 《Zab: High-performance broadcast for primary-backup systems》介绍:一致性协议zab分析 《A Distributed Hash Table》介绍:分布式哈希算法论文,扩展阅读Introduction to Distributed Hash Tables,Distributed Hash Tables 《Comparing the performance of distributed hash tables under churn》介绍:分布式hash表性能的Churn问题 《Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web》介绍:分布式系统的CAP问题,推荐Perspectives on the CAP Theorem.对CAP理论的解析文章,PODC ppt,A plain english introduction to CAP Theorem,IEEE Computer issue on the CAP Theorem 《F2FS: A New File System for Flash Storage》介绍:闪存存储文件系统F2FS 《Better I/O Through Byte-Addressable, Persistent Memory》介绍:微软发表的关于i/o访问优化论文 《tmpfs: A Virtual Memory File System》介绍:虚拟内存文件系统tmpfs 《BTRFS: The Linux B-tree Filesystem》介绍:Linux B-tree文件系统. 《Akamai technical publication》介绍:Akamai是全球最大的云计算机平台之一,承载了全球15-30%网络流量,如果你是做CDN或者是云服务,这个里面的论文会给你很有帮助.例如这几天看facebook开源的osquery。找到通过db的方式运维,找到Keeping Track of 70,000+ Servers: The Akamai Query System这篇论文,先看论文领会思想,然后再使用工具osquery实践 《BASE: An Acid Alternative》介绍:来自eBay 的解决方案,译文Base: 一种Acid的替代方案,应用案例参考保证分布式系统数据一致性的6种方案 《A Note on Distributed Computing》介绍:Jim Waldo和Sam Kendall等人共同撰写了一篇非常有名的论文“分布式计算备忘录”,这篇论文在Reddit上被人推荐为“每个程序员都应当至少读上两篇”的论文。在这篇论文中,作者表示“忽略本地计算与分布式计算之间的区别是一种危险的思想”,特别指出了Emerald、Argus、DCOM以及CORBA的设计问题。作者将这些设计问题归纳为“三个错误的原则”: “对于某个应用来说,无论它的部署环境如何,总有一种单一的、自然的面向对象设计可以符合其需求。” “故障与性能问题与某个应用的组件实现直接相关,在最初的设计中无需考虑这些问题。” “对象的接口与使用对象的上下文无关”. 《Distributed Systems Papers》介绍:分布式系统领域经典论文列表. 《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web》介绍:Consistent Hashing算法描述. 《SIGMOD 2016: Accepted Research Papers》介绍:SIGMOD是世界上最有名的数据库会议之一,最具有权威性,收录论文审核非常严格.2016年的SIGMOD 会议照常进行,上面收录了今年SIGMOD收录的论文,把题目输入google中加上pdf就能找到,很多论文值得阅读,SIGMOD 2015 《Notes on CPSC 465/565: Theory of Distributed Systems》介绍:耶鲁大学的分布式系统理论课程笔记 《Distributed Operating System Doc PDF》介绍:分布式系统文档资源(可下载) 《Anatomy of a database system》介绍:数据库系统剖析,这本书是由伯克利大学的Joseph M. Hellerstein和M. Stonebraker合著的一篇论文.对数据库剖析很有深度.除此以外还有一篇文章Architecture of a Database System。数据库系统架构,厦门大学的数据库实验室教授林子雨组织过翻译 《A Relational Model of Data for Large Shared Data Banks》介绍:数据库关系模型论文 《RUC Innovative data systems reaserch lab recommand papers》介绍:中国人民大学数据研究实验室推荐的数据库领域论文 《A Scalable Distributed Information Management System》介绍:构建可扩展的分布式信息管理系统 《Distributed Systems in Haskell》介绍:Haskell中的分布式系统开发 《Large-scale cluster management at Google with Borg》介绍:Google使用Borg进行大规模集群的管理,伯克利大学ppt介绍,中文版 《Lock Free Programming Practice》介绍:并发编程(Concurrency Programming)资料,主要涵盖lock free数据结构实现、内存回收方法、memory model等备份链接 密码: xc5j 《Distributed Algorithms Lecture Notes for 6.852》介绍:Nancy Lynch's的分布式算法研究生课程讲义 《Distributed Algorithms for Topic Models》介绍:分布式算法主题模型. 《RecSys - ACM Recommender Systems》介绍:世界上非常有名的推荐系统会议,我比较推荐接收的PAPER 《All Things Distributed》介绍:推荐一个博客,博主是Amazon CTO Werner Vogels,这是一个关注分布式领域的博客.大部分博文是关于在工业界应用. 《programming, database, distributed system resource list》介绍:这个Git是由阿里(alibaba)的技术专家何登成维护,主要是分布式数据库. 《Making reliable distributed systems in the presence of sodware errors》介绍:Erlang的作者Joe Armstrong撰写的论文,面对软件错误构建可靠的分布式系统.中文译版 《CS 525: Advanced Distributed Systems[Spring 2016]》介绍:伊利诺伊大学的Advanced Distributed Systems 里把各个方向重要papers(updated Spring 2015)列举出来,可以参考一下 《Distributed Algorithms》介绍:这是一本分布式算法电子书,作者是Jukka Suomela.讲述了多个计算模型,一致性,唯一标示,并发等. 《TinyLFU: A Highly Efficient Cache Admission Policy》介绍:当时是在阅读如何设计一个缓存系统时看到的,然后通过Google找到了这一篇关于缓存策略的论文,它是LFU的改良版,中文介绍.如果有兴趣可以看看Golang实现版。结合起来可能会帮助你理解 《6.S897: Large-Scale Systems》介绍:斯坦福大学给研究生开的分布式系统课程。教师是 spark 作者 matei. 能把这些内容真正理解透,分布式系统的功力就很强了。 《学习分布式系统需要怎样的知识?》介绍:[怎么学系列]学习分布式系统需要怎样的知识? 《Distributed systems theory for the distributed systems engineer》介绍:分布式系统工程师的分布式系统理论 《A Distributed Systems Reading List》介绍:分布式系统论文阅读列表 《Distributed Systems Reading Group》介绍:麻省理工大学分布式系统小组,他们会把平时阅读到的优秀论文分享出来。虽然有些论文本页已经收录,但是里面的安排表schedule还是挺赞的 《Scalable Software Architecture》介绍:分布式系统、可扩展性与系统设计相关报告、论文与网络资源汇总. 《MapReduce&Hadoop resource》介绍:MapReduce&Hadoop相关论文,涉及分布式系统设计,性能分析,实践,优化等多个方面 《Distributed Systems: Principles and Paradigms(second edtion)》介绍:分布式系统原理与范型第二版,课后解答 《Distributed Systems Seminar's reading list for Spring 2017》介绍:分布式系统研讨会论文阅读列表 《A Critique of the CAP Theorem》介绍:这是一篇评论CAP定理的论文,学习CAP很有帮助,推荐阅读评论文章"A Critique of the CAP Theorem" 《Evolving Distributed Systems》介绍:推荐文章不断进化的分布式系统.

suonayi 2019-12-02 03:17:27 0 浏览量 回答数 0

回答

我们都知道JVM的内存管理是自动化的,Java语言的程序指针也不需要开发人员手工释放,JVM的GC会自动的进行回收,但是,如果编程不当,JVM仍然会发生内存泄露,导致Java程序产生了OutOfMemoryError(OOM)错误。 产生OutOfMemoryError错误的原因包括: java.lang.OutOfMemoryError: Java heap spacejava.lang.OutOfMemoryError: PermGen space及其解决方法java.lang.OutOfMemoryError: unable to create new native threadjava.lang.OutOfMemoryError:GC overhead limit exceeded对于第1种异常,表示Java堆空间不够,当应用程序申请更多的内存,而Java堆内存已经无法满足应用程序对内存的需要,将抛出这种异常。 对于第2种异常,表示Java永久带(方法区)空间不够,永久带用于存放类的字节码和长常量池,类的字节码加载后存放在这个区域,这和存放对象实例的堆区是不同的,大多数JVM的实现都不会对永久带进行垃圾回收,因此,只要类加载的过多就会出现这个问题。一般的应用程序都不会产生这个错误,然而,对于Web服务器来讲,会产生有大量的JSP,JSP在运行时被动态的编译成Java Servlet类,然后加载到方法区,因此,太多的JSP的Web工程可能产生这个异常。 对于第3种异常,本质原因是创建了太多的线程,而能创建的线程数是有限制的,导致了这种异常的发生。 对于第4种异常,是在并行或者并发回收器在GC回收时间过长、超过98%的时间用来做GC并且回收了不到2%的堆内存,然后抛出这种异常进行提前预警,用来避免内存过小造成应用不能正常工作。 下面两个异常与OOM有关系,但是,又没有绝对关系。 java.lang.StackOverflowError ...java.net.SocketException: Too many open files对于第1种异常,是JVM的线程由于递归或者方法调用层次太多,占满了线程堆栈而导致的,线程堆栈默认大小为1M。 对于第2种异常,是由于系统对文件句柄的使用是有限制的,而某个应用程序使用的文件句柄超过了这个限制,就会导致这个问题。 上面介绍了OOM相关的基础知识,接下来我们开始讲述笔者经历的一次OOM问题的定位和解决的过程。 产生问题的现象 在某一段时间内,我们发现不同的业务服务开始偶发的报OOM的异常,有的时候是白天发生,有的时候是晚上发生,有的时候是基础服务A发生,有的时候是上层服务B发生,有的时候是上层服务C发生,有的时候是下层服务D发生,丝毫看不到一点规律。 产生问题的异常如下: Caused by: java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method)at java.lang.Thread.start(Thread.java:597)at java.util.Timer.(Timer.java:154) 解决问题的思路和过程 经过细心观察发现,产生问题虽然在不同的时间发生在不同的服务池,但是,晚上0点发生的时候概率较大,也有其他时间偶发,但是都在整点。 这个规律很重要,虽然不是一个时间,但是基本都在整点左右发生,并且晚上0点居多。从这个角度思考,整点或者0点系统是否有定时,与出问题的每个业务系统技术负责人核实,0点没有定时任务,其他时间的整点有定时任务,但是与发生问题的时间不吻合,这个思路行不通。 到现在为止,从现象的规律上我们已经没法继续分析下去了,那我们回顾一下错误本身: java.lang.OutOfMemoryError: unable to create new native thread 顾名思义,错误产生的原因就是应用不能创建线程了,但是,应用还需要创建线程。为什么程序不能创建线程呢? 有两个具体原因造成这个异常: 由于线程使用的资源过多,操作系统已经不能再提供给应用资源了。操作系统设置了应用创建线程的最大数量,并且已经达到了最大允许数量。上面第1条资源指的是内存,而第2条中,在Linux下线程使用轻量级进程实现的,因此线程的最大数量也是操作系统允许的进程的最大数量。 内存计算 操作系统中的最大可用内存除去操作系统本身使用的部分,剩下的都可以为某一个进程服务,在JVM进程中,内存又被分为堆、本地内存和栈等三大块,Java堆是JVM自动管理的内存,应用的对象的创建和销毁、类的装载等都发生在这里,本地内存是Java应用使用的一种特殊内存,JVM并不直接管理其生命周期,每个线程也会有一个栈,是用来存储线程工作过程中产生的方法局部变量、方法参数和返回值的,每个线程对应的栈的默认大小为1M。 Linux和JVM的内存管理示意图如下: 内存结构模型因此,从内存角度来看创建线程需要内存空间,如果JVM进程正当一个应用创建线程,而操作系统没有剩余的内存分配给此JVM进程,则会抛出问题中的OOM异常:unable to create new native thread。 如下公式可以用来从内存角度计算允许创建的最大线程数: 最大线程数 = (操作系统最大可用内存 - JVM内存 - 操作系统预留内存)/ 线程栈大小 根据这个公式,我们可以通过剩余内存计算可以创建线程的数量。 下面是问题出现的时候,从生产机器上执行前面小节介绍的Linux命令free的输出: free -m >> /tmp/free.log total used free shared buffers cached Mem: 7872 7163 709 0 31 3807-/+ buffers/cache: 3324 4547Swap: 4095 173 3922Tue Jul 5 00:27:51 CST 2016从上面输出可以得出,生产机器8G内存,使用了7G,剩余700M可用,其中操作系统cache使用3.8G。操作系统cache使用的3.8G是用来缓存IO数据的,如果进程内存不够用,这些内存是可以释放出来优先分配给进程使用。然而,我们暂时并不需要考虑这块内存,剩余的700M空间完全可以继续用来创建线程数: 700M / 1M = 700个线程 因此,根据内存可用计算,当OOM异常:unable to create new native thread问题发生的时候,还有700M可用内存,可以创建700个线程。 到现在为止可以证明此次OOM异常不是因为线程吃光所有的内存而导致的。 线程数对比 上面提到,有两个具体原因造成这个异常,我们上面已经排除了第1个原因,那我们现在从第2个原因入手,评估是否操作系统设置了应用创建线程的最大数量,并且已经达到了最大允许数量。 在问题出现的生产机器上使用ulimit -a来显示当前的各种系统对用户使用资源的限制: robert@robert-ubuntu1410:~$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 62819max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 65535pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 10240cpu time (seconds, -t) unlimitedmax user processes (-u) 1024virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited这里面我们看到生产机器设置的允许使用的最大用户进程数为1024: max user processes (-u) 1024现在,我们必须获得问题出现的时候,用户下创建的线程情况。 在问题产生的时候,我们使用前面小结介绍的JVM监控命令jstack命令打印出了Java线程情况,jstack命令的示例输出如下: robert@robert-ubuntu1410:~$ jstack 27432017-04-09 12:06:51Full thread dump Java HotSpot(TM) Server VM (25.20-b23 mixed mode): "Attach Listener" #23 daemon prio=9 os_prio=0 tid=0xc09adc00 nid=0xb4c waiting on condition [0x00000000] java.lang.Thread.State: RUNNABLE "http-nio-8080-Acceptor-0" #22 daemon prio=5 os_prio=0 tid=0xc3341000 nid=0xb02 runnable [0xbf1bd000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241) - locked <0xcf8938d8> (a java.lang.Object) at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:688) at java.lang.Thread.run(Thread.java:745) "http-nio-8080-ClientPoller-1" #21 daemon prio=5 os_prio=0 tid=0xc35bc400 nid=0xb01 runnable [0xbf1fe000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269) at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) - locked <0xcf99b100> (a sun.nio.ch.Util$2) - locked <0xcf99b0f0> (a java.util.Collections$UnmodifiableSet) - locked <0xcf99aff8> (a sun.nio.ch.EPollSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1052) at java.lang.Thread.run(Thread.java:745) ......从jstack命令的输出并统计后,我们得知,JVM一共创建了904个线程,但是,这还没有到最大的进程限制1024。 robert@robert-ubuntu1410:~$ grep "Thread " js.log | wc -l 904 这是我们思考,除了JVM创建的应用层线程,JVM本身可能会有一些管理线程存在,而且操作系统内用户下可能也会有守护线程在运行。 我们继续从操作系统的角度来统计线程数,我们使用上面小结介绍的Linux操作系统命令pstack,并得到如下的输出: PID LWP USER %CPU %MEM CMD 1 1 root 0.0 0.0 /sbin/init 2 2 root 0.0 0.0 [kthreadd] 3 3 root 0.0 0.0 [migration/0] 4 4 root 0.0 0.0 [ksoftirqd/0] 5 5 root 0.0 0.0 [migration/0] 6 6 root 0.0 0.0 [watchdog/0] 7 7 root 0.0 0.0 [migration/1] 8 8 root 0.0 0.0 [migration/1] 9 9 root 0.0 0.0 [ksoftirqd/1] 10 10 root 0.0 0.0 [watchdog/1] 11 11 root 0.0 0.0 [migration/2] 12 12 root 0.0 0.0 [migration/2] 13 13 root 0.0 0.0 [ksoftirqd/2] 14 14 root 0.0 0.0 [watchdog/2] 15 15 root 0.0 0.0 [migration/3] 16 16 root 0.0 0.0 [migration/3] 17 17 root 0.0 0.0 [ksoftirqd/3] 18 18 root 0.0 0.0 [watchdog/3] 19 19 root 0.0 0.0 [events/0] 20 20 root 0.0 0.0 [events/1] 21 21 root 0.0 0.0 [events/2] 22 22 root 0.0 0.0 [events/3] 23 23 root 0.0 0.0 [cgroup] 24 24 root 0.0 0.0 [khelper] ...... 7257 7257 zabbix 0.0 0.0 /usr/local/zabbix/sbin/zabbix_agentd: active checks #2 [idle 1 sec] 7258 7258 zabbix 0.0 0.0 /usr/local/zabbix/sbin/zabbix_agentd: active checks #3 [idle 1 sec] 7259 7259 zabbix 0.0 0.0 /usr/local/zabbix/sbin/zabbix_agentd: active checks #4 [idle 1 sec] ...... 9040 9040 app 0.0 30.5 /apps/prod/jdk1.6.0_24/bin/java -Dnop -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Ddbconfigpath=/apps/dbconfig/ -Djava.io.tmpdir=/apps/data/java-tmpdir -server -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.10.194 -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Xshare:off -Dhostname=sjsa-trade04 -Djute.maxbuffer=41943040 -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dworkdir=/apps/data/tomcat-work -Djava.endorsed.dirs=/apps/product/tomcat-trade/endorsed -classpath commonlib:/apps/product/tomcat-trade/bin/bootstrap.jar:/apps/product/tomcat-trade/bin/tomcat-juli.jar -Dcatalina.base=/apps/product/tomcat-trade -Dcatalina.home=/apps/product/tomcat-trade -Djava.io.tmpdir=/apps/data/tomcat-temp/ org.apache.catalina.startup.Bootstrap start 9040 9041 app 0.0 30.5 /apps/prod/jdk1.6.0_24/bin/java -Dnop -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Ddbconfigpath=/apps/dbconfig/ -Djava.io.tmpdir=/apps/data/java-tmpdir -server -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.10.194 -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Xshare:off -Dhostname=sjsa-trade04 -Djute.maxbuffer=41943040 -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dworkdir=/apps/data/tomcat-work -Djava.endorsed.dirs=/apps/product/tomcat-trade/endorsed -classpath commonlib:/apps/product/tomcat-trade/bin/bootstrap.jar:/apps/product/tomcat-trade/bin/tomcat-juli.jar -Dcatalina.base=/apps/product/tomcat-trade -Dcatalina.home=/apps/product/tomcat-trade -Djava.io.tmpdir=/apps/data/tomcat-temp/ org.apache.catalina.startup.Bootstrap start ......通过命令统计用户下已经创建的线程数为1021。 $ grep app pthreads.log | wc -l 1021 现在我们确定,1021的数字已经相当的接近1021的最大进程数了,正如前面我们提到,在Linux操作系统里,线程是通过轻量级的进程实现的,因此,限制用户的最大进程数,就是限制用户的最大线程数,至于为什么没有精确达到1024这个最大值就已经报出异常,应该是系统的自我保护功能,在还剩下3个线程的前提下,就开始报错。 到此为止,我们已经通过分析来找到问题的原因,但是,我们还是不知道为什么会创建这么多的线程,从第一个输出得知,JVM已经创建的应用线程有907个,那么他们都在做什么事情呢? 于是,在问题发生的时候,我们又使用JVM的jstack命令,查看输出得知,每个线程都阻塞在打印日志的语句上,log4j中打印日志的代码实现如下: public void callAppenders(LoggingEvent event) { int writes = 0; for(Category c = this; c != null; c=c.parent) { // Protected against simultaneous call to addAppender, removeAppender,... synchronized(c) { if(c.aai != null) { writes += c.aai.appendLoopOnAppenders(event); } if(!c.additive) { break; } } } if(writes == 0) { repository.emitNoAppenderWarning(this); } }在log4j中,打印日志有一个锁,锁的作用是让打印日志可以串行,保证日志在日志文件中的正确性和顺序性。 那么,新的问题又来了,为什么只有凌晨0点会出现打印日志阻塞,其他时间会偶尔发生呢?这时,我们带着新的线索又回到问题开始的思路,凌晨12点应用没有定时任务,系统会不会有其他的IO密集型的任务,比如说归档日志、磁盘备份等? 经过与运维部门碰头,基本确定是每天凌晨0点日志切割导致磁盘IO被占用,于是堵塞打印日志,日志是每个工作任务都必须的,日志阻塞,线程池就阻塞,线程池阻塞就导致线程池被撑大,线程池里面的线程数超过1024就会报错。 到这里,我们基本确定了问题的原因,但是还需要对日志切割导致IO增大进行分析和论证。 首先我们使用前面小结介绍的vmstat查看问题发生时IO等待数据: vmstat 2 1 >> /tmp/vm.logprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 177608 725636 31856 3899144 0 0 2 10 0 0 39 1 1 59 0 Tue Jul 5 00:27:51 CST 2016可见,问题发生的时候,CPU的IO等待为59%,同时又与运维部门同事复盘,运维同事确认,脚本切割通过cat命令方法,先把日志文件cat后,通过管道打印到另外一个文件,再清空原文件,因此,一定会导致IO的上升。 其实,问题的过程中,还有一个疑惑,我们认为线程被IO阻塞,线程池被撑开,导致线程增多,于是,我们查看了一下Tomcat线程池的设置,我们发现Tomcat线程池设置了800,按理说,永远不会超过1024。 maxThreads="800" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /> 关键在于,笔者所在的支付平台服务化架构中,使用了两套服务化框架,一个是基于dubbo的框架,一个是点对点的RPC,用来紧急情况下dubbo服务出现问题,服务降级使用。 每个服务都配置了点对点的RPC服务,并且独享一个线程池: maxThreads="800" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /> 由于我们在对dubbo服务框架进行定制化的时候,设计了自动降级原则,如果dubbo服务负载变高,会自动切换到点对点的RPC框架,这也符合微服务的失效转移原则,但是设计中没有进行全面的考虑,一旦一部分服务切换到了点对点的RPC,而一部分的服务没有切换,就导致两个现场池都被撑满,于是超过了1024的限制,就出了问题。 到这里,我们基本可以验证,问题的根源是日志切割导致IO负载增加,然后阻塞线程池,最后发生OOM:unable to create new native thread。 剩下的任务就是最小化重现的问题,通过实践来验证问题的原因。我们与性能压测部门沟通,提出压测需求: Tomcat线程池最大设置为1500.操作系统允许的最大用户进程数1024.在给服务加压的过程中,需要人工制造繁忙的IO操作,IO等待不得低于50%。经过压测压测部门的一下午努力,环境搞定,结果证明完全可以重现此问题。 最后,与所有相关部门讨论和复盘,应用解决方案,解决方案包括: 全部应用改成按照小时切割,或者直接使用log4j的日志滚动功能。Tomcat线程池的线程数设置与操作系统的线程数设置不合理,适当的减少Tomcat线程池线程数量的大小。升级log4j日志,使用logback或者log4j2。这次OOM问题的可以归结为“多个因、多个果、多台机器、多个服务池、不同时间”,针对这个问题,与运维部、监控部和性能压测部门的同事奋斗了几天几夜,终于通过在线上抓取信息、分析问题、在性能压测部门同事的帮助下,最小化重现问题并找到问题的根源原因,最后,针对问题产生的根源提供了有效的方案。 与监控同事现场编写的脚本 本节提供一个笔者在实践过程中解决OOM问题的一个简单脚本,这个脚本是为了解决OOM(unable to create native thread)的问题而在问题机器上临时编写,并临时使用的,脚本并没有写的很专业,笔者也没有进行优化,保持原汁原味的风格,这样能让读者有种身临其境的感觉,只是为了抓取需要的信息并解决问题,但是在线上问题十分火急的情况下,这个脚本会有大用处。 !/bin/bash ps -Leo pid,lwp,user,pcpu,pmem,cmd >> /tmp/pthreads.logecho "ps -Leo pid,lwp,user,pcpu,pmem,cmd >> /tmp/pthreads.log" >> /tmp/pthreads.logecho date >> /tmp/pthreads.logecho 1 pid=ps aux|grep tomcat|grep cwh|awk -F ' ' '{print $2}'echo 2 echo "pstack $pid >> /tmp/pstack.log" >> /tmp/pstack.logpstack $pid >> /tmp/pstack.logecho date >> /tmp/pstack.logecho 3 echo "lsof >> /tmp/sys-o-files.log" >> /tmp/sys-o-files.loglsof >> /tmp/sys-o-files.logecho date >> /tmp/sys-o-files.logecho 4 echo "lsof -p $pid >> /tmp/service-o-files.log" >> /tmp/service-o-files.loglsof -p $pid >> /tmp/service-o-files.logecho date >> /tmp/service-o-files.logecho 5 echo "jstack -l $pid >> /tmp/js.log" >> /tmp/js.logjstack -l -F $pid >> /tmp/js.logecho date >> /tmp/js.logecho 6 echo "free -m >> /tmp/free.log" >> /tmp/free.logfree -m >> /tmp/free.logecho date >> /tmp/free.logecho 7 echo "vmstat 2 1 >> /tmp/vm.log" >> /tmp/vm.logvmstat 2 1 >> /tmp/vm.logecho date >> /tmp/vm.logecho 8 echo "jmap -dump:format=b,file=/tmp/heap.hprof 2743" >> /tmp/jmap.logjmap -dump:format=b,file=/tmp/heap.hprof >> /tmp/jmap.logecho date >> /tmp/jmap.logecho 9 echo end

hiekay 2019-12-02 01:39:43 0 浏览量 回答数 0

问题

SaaS模式云数据仓库MaxCompute 百问百答合集(持续更新20201031)

亢海鹏 2020-05-29 15:10:00 26755 浏览量 回答数 35
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板