大型分布式网站架构设计与实践

news/2024/5/9 4:46:35/文章来源:https://blog.csdn.net/weixin_30794491/article/details/98775700

大型分布式网站架构设计与实践(一线工作经验总结,囊括大型分布式网站所需技术的全貌、架构设计的核心原理与典型案例常见问题及解决方案,有细节、接地气/京东:大型分布式网站所需技术的全貌、架构设计的核心原理与典型案例、常见问题及解决方案

陈康贤 著  

ISBN 978-7-121-23885-7

2014年9月出版

定价:79.00元

460

16

编辑推荐

--作者一直奋战在阿里巴巴及淘宝网一线,书中所讲是其亲身经验的总结,显得更加实战和珍贵。

--全面介绍大型分布式网站架构所涉及的技术细节,通过很多实践案例尽量让每一个关键的技术点都落到实处。

--深入讲述大型分布式网站架构设计的核心原理,分享大型分布式网站设计的一些常见场景及遇到的问题。

内容提要

《大型分布式网站架构设计与实践》主要介绍了大型分布式网站架构所涉及的一些技术细节,包括SOA架构的实现、互联网安全架构、构建分布式网站所依赖的基础设施、系统稳定性保障和海量数据分析等内容;深入地讲述了大型分布式网站架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。

作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型分布式网站架构设计与实践》既可供初学者学习,帮助读者了解大型分布式网站的架构,以及解决问题的思路和方法,也可供业界同行参考,给日常工作带来启发。

目录

第1章 面向服务的体系架构(SOA)       1

本章主要介绍和解决以下问题,这些也是全书的基础:

HTTP协议的工作方式与HTTP网络协议栈的结构。

如何实现基于HTTP协议和TCP协议的RPC调用,它们之间有何差别,分别适应何种场景。

如何实现服务的动态注册和路由,以及软负载均衡的实现。

1.1 基于TCP协议的RPC    3

1.1.1 RPC名词解释     3

1.1.2 对象的序列化    4

1.1.3 基于TCP协议实现RPC     6

1.2 基于HTTP协议的RPC 9

1.2.1 HTTP协议栈       9

1.2.2 HTTP请求与响应       15

1.2.3 通过HttpClient发送HTTP请求        16

1.2.4 使用HTTP协议的优势      17

1.2.5 JSON和XML        18

1.2.6 RESTful和RPC    20

1.2.7 基于HTTP协议的RPC的实现 22

1.3 服务的路由和负载均衡        30

1.3.1 服务化的演变    30

1.3.2  负载均衡算法    33

1.3.3  动态配置规则    39

1.3.4  ZooKeeper介绍与环境搭建      40

1.3.5  ZooKeeper API使用简介    43

1.3.6  zkClient的使用  47

1.3.7  路由和负载均衡的实现    50

1.4  HTTP服务网关      54

第2章 分布式系统基础设施     58

本章主要介绍和解决如下问题:

分布式缓存memcache的使用及分布式策略,包括Hash算法的选择。

常见的分布式系统存储解决方案,包括MySQL的分布式扩展、HBase的API及使用场景、Redis的使用等。

如何使用分布式消息系统ActiveMQ来降低系统之间的耦合度,以及进行应用间的通信。

垂直化的搜索引擎在分布式系统中的使用,包括搜索引擎的基本原理、Lucene详细的使用介绍,以及基于Lucene的开源搜索引擎工具Solr的使用。

2.1  分布式缓存   60

2.1.1  memcache简介及安装      60

2.1.2  memcache API与分布式   64

2.1.3  分布式session   69

2.2  持久化存储   71

2.2.1  MySQL扩展         72

2.2.2  HBase 80

2.2.3  Redis   91

2.3  消息系统        95

2.3.1  ActiveMQ & JMS 96

2.4  垂直化搜索引擎   104

2.4.1  Lucene简介         105

2.4.2  Lucene的使用    108

2.4.3  Solr       119

2.5  其他基础设施        125

第3章 互联网安全架构     126

本章主要介绍和解决如下问题:

常见的Web攻击手段和防御方法,如XSS、CRSF、SQL注入等。

常见的一些安全算法,如数字摘要、对称加密、非对称加密、数字签名、数字证书等。

如何采用摘要认证方式防止信息篡改、通过数字签名验证通信双方的合法性,以及通过HTTPS协议保障通信过程中数据不被第三方监听和截获。

在开放平台体系下,OAuth协议如何保障ISV对数据的访问是经过授权的合法行为。

3.1  常见的Web攻击手段  128

3.1.1  XSS攻击      128

3.1.2  CRSF攻击   130

3.1.3  SQL注入攻击      133

3.1.4  文件上传漏洞    139

3.1.5  DDoS攻击  146

3.1.6  其他攻击手段    149

3.2  常用的安全算法   149

3.2.1  数字摘要    149

3.2.2  对称加密算法    155

3.2.3  非对称加密算法         158

3.2.4  数字签名    162

3.2.5  数字证书    166

3.3  摘要认证        185

3.3.1  为什么需要认证         185

3.3.2  摘要认证的原理         187

3.3.3  摘要认证的实现         188

3.4  签名认证        192

3.4.1  签名认证的原理         192

3.4.2  签名认证的实现         193

3.5  HTTPS协议    200

3.5.1  HTTPS协议原理 200

3.5.2  SSL/TLS         201

3.5.3  部署HTTPS Web 208

3.6  OAuth协议    215

3.6.1  OAuth的介绍     215

3.6.2  OAuth授权过程 216

第4章 系统稳定性     218

本章主要介绍和解决如下问题:

常用的在线日志分析命令的使用和日志分析脚本的编写,如cat、grep、wc、less等命令的使用,以及awk、shell脚本的编写。

如何进行集群的监控,包括监控指标的定义、心跳检测、容量评估等。

如何保障高并发系统的稳定运行,如采用流量控制、依赖管理、服务分级、开关等策略,以及介绍如何设计高并发系统。

如何优化应用的性能,包括前端优化、Java程序优化、数据库查询优化等。

如何进行Java应用故障的在线排查,包括一系列排查工具的使用,以及一些实际案例的介绍等。

4.1  在线日志分析        220

4.1.1  日志分析常用命令    220

4.1.2  日志分析脚本    230

4.2  集群监控        239

4.2.1  监控指标    239

4.2.2  心跳检测    247

4.2.3  容量评估及应用水位         252

4.3  流量控制        255

4.3.1  流量控制实施    255

4.3.2  服务稳定性         260

4.3.3  高并发系统设计         265

4.4  性能优化        277

4.4.1  如何寻找性能瓶颈    277

4.4.2  性能测试工具    285

4.4.3  性能优化措施    292

4.5  Java应用故障的排查   314

4.5.1  常用的工具         314

4.5.2  典型案例分析    331

第5章 数据分析          337

本章主要介绍和解决如下问题:

分布式系统中日志收集系统的架构。

如何通过Storm进行实时的流式数据分析。

如何通过Hadoop进行离线数据分析,通过Hive建立数据仓库。

如何将关系型数据库中存储的数据导入HDFS,以及从HDFS中将数据导入关系型数据库。

如何将分析好的数据通过图形展示给用户。

5.1  日志收集        339

5.1.1  inotify机制 339

5.1.2  ActiveMQ-CPP     343

5.1.3  架构和存储         359

5.1.4  Chukwa        362

5.2  离线数据分析        369

5.2.1  Hadoop项目简介       370

5.2.2  Hadoop环境搭建       374

5.2.3  MapReduce编写         384

5.2.4  Hive使用    389

5.3  流式数据分析        403

5.3.1  Storm的介绍      404

5.3.2  安装部署Storm 407

5.3.3  Storm的使用      418

5.4  数据同步        422

5.4.1  离线数据同步    423

5.4.2  实时数据同步    429

5.5  数据报表        431

5.5.1  数据报表能提供什么         431

5.5.2  报表工具Highcharts 432

参考文献         445

精彩节摘

2.1.3  分布式session

传统的应用服务器,如tomcat、jboss等,其自身所实现的session管理大部分都是基于单机的。对于大型分布式网站来说,支撑其业务的远远不止一台服务器,而是一个分布式集群,请求在不同服务器之间跳转。那么,如何保持服务器之间的session同步呢?传统网站一般通过将一部分数据存储在cookie中,来规避分布式环境下session的操作。这样做的弊端很多,一方面cookie的安全性一直广为诟病,另一方面cookie存储数据的大小是有限制的。随着移动互联网的发展,很多情况下还得兼顾移动端的session需求,使得采用cookie来进行session同步的方式的弊端更为凸显。分布式session正是在这种情况下应运而生的。

对于系统可靠性要求较高的用户,可以将session持久化到DB中,这样可以保证宕机时会话不易丢失,但缺点也是显而易见的,系统的整体吞吐将受到很大的影响。另一种解决方案便是将session统一存储在缓存集群上,如memcache,这样可以保证较高的读、写性能,这一点对于并发量大的系统来说非常重要;并且从安全性考虑,session毕竟是有有效期的,使用缓存存储,也便于利用缓存的失效机制。使用缓存的缺点是,一旦缓存重启,里面保存的会话也就丢失了,需要用户重新建立会话。

如图2-4所示,前端用户请求经过随机分发之后,可能会命中后端任意的Web Server,并且Web Server也可能会因为各种不确定的原因宕机。在这种情况下,session是很难在集群间同步的,而通过将session以sessionid作为key,保存到后端的缓存集群中,使得不管请求如何分配,即便是Web Server宕机,也不会影响其他Web Server通过sessionid从Cache Server中获得session,这样既实现了集群间的session同步,又提高了Web Server的容错性。

图2-4  基于缓存的分布式session架构

这里以Tomcat作为Web Server来举例,通过一个简单的工具memcached-session-manager,实现基于memcache的分布式session。

memcached-session-manager是一个开源的高可用的Tomcat session共享解决方案,它支持Sticky模式和Non-Sticky模式。Sticky模式表示每次请求都会被映射到同一台后端Web Server,直到该Web Server宕机,这样session可先存放在服务器本地,等到请求处理完成再同步到后端memcache服务器;而当Web Server宕机时,请求被映射到其他Web Server,这时候,其他Web Server可以从后端memcache中恢复session。对于Non-Sticky模式来说,请求每次映射的后端Web Server是不确定的,当请求到来时,从memcache中加载session;当请求处理完成时,将session再写回到memcache。

以Non-Sticky模式为例,它需要给Tomcat的$CATALINA_HOME/conf/context.xml文件配置SessionManager,具体配置如下:

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 

memcachedNodes="n1:192.168.0.100:11211,n2:192.168.0.101:11211" 

sticky="false" 

sessionBackupAsync="false" 

lockingMode="auto" 

requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" 

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

 />

 

其中:memcachedNodes指定了memcache的节点;sticky表示是否采用Sticky模式;sessionBackupAsync表示是否采用异步方式备份session;lockingMode表示session的锁定模式;auto表示对于只读请求,session将不会被锁定,如果包含写入请求,则session会被锁定;requestUriIgnorePattern表示忽略的url;transcoderFactoryClass用来指定序列化的方式,这里采用的是Kryo序列化,也是memcached-session-manager比较推荐的一种序列化方式。

memcached-session-manager依赖于memcached-session-manager-${version}.jar,如果使用的是tomcat6,则还需要下载memcached-session-manager-tc6-${version}.jar,并且它还依赖memcached-${version}.jar进行memcache的访问。在启动Tomcat之前,需要将这些jar放在$CATALINA_ HOME/lib/目录下。如果使用第三方序列化方式,如Kryo,还需要在Web工程中引入相关的第三方库,Kryo序列化所依赖的库,包括kryo-${version}-all.jar、kryo-serializers-${version}.jar和msm-kryo-serializer. ${version}.jar。

作者简介

陈康贤,淘宝花名龙隆,淘宝技术部研发工程师,2011年加入淘宝网,参与了阿里云手机商城、口碑网迁移、店铺建站、offer、支付宝卡宝、生活商城、淘宝同学等项目,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为丰富的实践经验。曾在程序员上发表过《漫谈基于http协议的SOA架构》《浅析HTTP平台的安全稳定性架构》两篇文章,对基于HTTP协议的SOA架构有深入研究,在排查解决线上问题和故障方面有丰富的实践经验,擅于利用数据分析解决实际问题,对新技术有浓厚的兴趣。

媒体评论

2008年,淘宝网随着访问量/数据量的巨增,以及开发人员的增长,原有的架构体系已经无法支撑,于是在那一年淘宝网将系统改造为了一个大型分布式的网站。作者目前就职于阿里集团,清晰地看到了目前淘宝这个大型分布式网站的架构体系,这个架构体系其实是非常多方面的技术的融合,要掌握好最重要的首先是看清全貌,但这也是最难的。本书向大家展示了一个大型分布式网站需要的技术的全貌。

——阿里巴巴集团资深技术专家林昊(毕玄)

笔者通过大量的实践来分析分布式网站设计过程中常见的难题并逐步给予解答,通过本书可以对分布式网站设计进行一个系统性学习,值得一阅!

——聚划算技术部高级技术专家刘国华(索尼)

当下有规模的网站,都采用分布式的架构实现。那么网站如何做到分布式,以及有哪些基础的分布式系统,都是我们的架构师和开发人员想去了解的,而相关的安全问题,以及稳定性、性能、应用的线上问题定位分析等方面的问题也很重要,本书能够比较全面地给读者带来这些相关知识的一个全貌,能够让从业人员对于这些知识有一个比较全面的了解。而康贤也是一个一直奋战在一线的技术人员,亲身经历的总结会显得更加实战和珍贵。

——淘宝技术部总监曾宪杰(华黎)

前言

在大型网站架构的演变过程中,集中式的架构设计出于对系统的可扩展性、可维护性以及成本等多方面因素的考虑,逐渐被放弃,转而采用分布式的架构设计。分布式架构的核心思想是采用大量廉价的PC Server,构建一个低成本、高可用、高可扩展、高吞吐的集群系统,以支撑海量的用户访问和数据存储,理论上具备无限的扩展能力。分布式系统的设计,是一门复杂的学问,它涉及到通信协议、远程调用,服务治理,系统安全、存储、搜索、监控、稳定性保障、性能优化、数据分析、数据挖掘等各个领域,对任何一个领域的深入挖掘,都能够编写一本篇幅不亚于本书的专门书籍。本书结合作者在阿里巴巴及淘宝网的实际工作经历,重点介绍大型分布式系统的架构设计,同时,为避免过度专注于理论而使得内容显得空洞,作者穿插介绍了很多实践的案例,尽量让每一个关键的技术点都落到实处,相信能够帮助读者更好地理解本书的内容。

内容大纲

全书共5章,章与章之间几乎是相互独立的,没有必然的前后依赖关系,因此,读者可以从任何一个感兴趣的专题开始阅读,但是,每一章的各个小节之间的内容是相互关联的,因此,最好按照原文的先后顺序阅读。

第1章主要介绍企业内部SOA(Service Oriented Architecture,即面向服务的体系结构)架构的实现,包括HTTP协议的工作原理,基于TCP协议和基于HTTP协议的RPC实现,如何实现服务的路由和负载均衡,HTTP服务网关的架构。

第2章主要介绍如何保障互联网通信的安全性,包括一些常见攻击手段的介绍;常见的安全算法,如数字摘要、对称加密、非对称加密、数字签名、数字证书的原理和使用;常用通信认证方式,包括摘要认证、签名认证,以及基于HTTPS协议的安全通信;另外还介绍了通过OAuth协议的授权过程。

第3章介绍一些分布式系统所依赖的基础设施,包括分布式缓存,持久化存储。持久化存储又涵盖了传统的关系型数据库MmySQL,以及近年来开始流行NOSQL数据库如HBase、Redis,消息系统及垂直化搜索引擎等。

第4章介绍如何保障系统运行的稳定性,包括在线日志分析、集群监控、流量控制、性能优化,以及常用的Java应用故障排查工具和典型案例。

第5章介绍如何对海量数据进行分析,包括数据的采集、离线数据分析、流式数据分析、不同数据源间的数据同步和数据报表等。

本书并不假设读者在Java领域有很深的技术水平,但是,结合作者本人的工作经验和使用习惯,书中的大部分案例代码均采用Java来编写,并且运行在Linux环境之上,因此,读者最好对Java环境下的编程有一定的了解,并且熟悉Linux环境下的基本操作,以便能够更加顺利地阅读本书。

致谢

首先,要感谢我的家人,特别是我的妻子,在我占用大量周末、休假的时间进行写作的时候,能够给予极大的宽容、支持和理解,并对我悉心照顾且承担起了全部的家务,让我能够全身心地投入到写作之中,而无须操心一些家庭琐事,没有你的支持和鼓励,这本书是无法完成的。

同时,要感谢阿里巴巴及淘宝网,给我提供了合适的环境和平台,使自己的技能能够得以施展,并且,身处在一群业界的技术大牛中间,也得到了很多学习和成长的机会。,另外,还要感谢我的主管飞悦对于写作开明的态度,以及一直以来的鼓励与支持,并在日常的工作中给予我的很多帮助。

最后,还要感谢博文视点的编辑们,本书能够这么快出版,离不开他们的敬业精神和一丝不苟的工作态度。

感悟

一年多以前,在接到编辑约稿即将开始动笔之前,自己曾信心满满地认为,应该能够比较顺利地完成这本书,因为写的内容自己都比较熟悉,而且平时工作当中也有一些笔记积累,不是从零开始的。但当真正开始写了以后才知道,理解领悟和用文字表达出来完全是两个层面的事情,日常工作中一些很普遍很常见的设计思路,可能是由一次次失败和挫折得到的经验教训演变而来。很多时候我们只知道how,而忽略了what和why,要解释清楚what、why、how,甚至是why not,并没有想象中的那么容易。当然,通过写作的过程,自己也将这些知识点从头到尾梳理了一遍,对这些知识的认识和理解也更加深入和全面。每次重新回过头来审阅书稿时,都会觉得某些知识点讲述得还不够透彻,需要进行补充,抑或是感觉对某些知识点的叙述不够清晰和有条理,还能够有更好的表述方式。但是,书不能一直写下去,在本书完稿之时,自己并没有想象中那样的兴奋或者放松,写作时的那种“战战兢兢,如履薄冰”的感觉,依然萦绕在心头,每一次落笔,都担心会不会因为自己的疏忽或者理解上的偏差,从而误导读者。由于时间的因素和写作水平的限制,书中难免会有错误和疏漏之处,恳请读者批评和指正。如有任何问题或者是建议,也可以通过如下方式与作者联系:

 

博客:chenkangxian.iteye.com

微博:http://weibo.com/u/2322720070

 

 

陈康贤

2014年5月于杭州

转载于:https://www.cnblogs.com/broadview/p/3980774.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_816197.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

火狐 脆弱的加密_将自动网站加密添加到Firefox

火狐 脆弱的加密Would you like to have websites automatically open encrypted and secure? Enable a set list of websites and the ability to create encryption rule sets of your own with the HTTPS Everywhere extension for Firefox. 您想让网站自动打开加密且安全的…

chrome查找快捷键_使用Chrome标志查找网站的实际位置

chrome查找快捷键Have you been wanting Firefox’s “Flagfox Extension” goodness in Google Chrome? Now you can get it with the Chrome Flags extension. 您是否一直想在Google Chrome浏览器中使用Firefox的“ Flagfox Extension”功能&#xff1f; 现在&#xff0c;您…

在Windows 7中使用搜索连接器从您的桌面搜索网站

The new Windows 7 Search is greatly improved over previous versions and allows you to search for data on local and networked machines. Today we take it a step further and show you how to extend the search capability to sites on the Internet. 与以前的版本相…

IIS发布网站出错解决方案

1、第一类错误&#xff08;Web服务器被配置为不列出此目录的内容&#xff09; 问题所在没有为请求的URL设置默认文档&#xff0c;在IIS“默认文档”添加一个你要访问的默认文档名字&#xff0c;如&#xff1a;Default.aspx。 2、第二类错误&#xff08;请求的内容似乎是脚本&am…

常用SEO优化

转载于:https://www.cnblogs.com/alonesky/p/10619003.html

学习Linux的基础网站

http://c.biancheng.net/view/726.html 转载于:https://www.cnblogs.com/yuer20180726/p/10839792.html

关于网站(B/S开发中) cache应用(多图)

关于网站(B/S开发中) cache应用&#xff08;多图&#xff09; 关于中大型开发b/s开发中的缓存(cache)&#xff0c;我的一些看法&#xff0c;有不正确的或者是有笔误的地方&#xff0c;请指正。thanks 首先&#xff0c;应该了解基本的&#xff0c;对于缓存的知识&#xff1a; Q&…

MVC与单元测试实践之健身网站(六)-计划的添加与重置

健身计划需要使用者自己定制&#xff0c;没有现成的内容可供选择。本篇就是关于健身计划的添加与重置功能的一部分。 一 功能描述 a) 关于计划的定制&#xff0c;决定以周期的方式&#xff0c;比如有人会以一周为周期&#xff0c;然后安排每周的1、3、5进行锻炼。系统将以以这种…

服务器能远程连接,网络连接正常,但是外网域名Ping不通,浏览器中打不开网站...

服务器能远程连接成功&#xff0c;但在浏览器中打不开任何网站&#xff0c;出现这个问题一般是安装什么软件引起IE的相关设置做了变动或者是服务器中了病毒引起的&#xff0c;或是服务器的DNS设置是错误的。  一、先检查服务器DNS是否正确 服务器的DNS是其自身用于解析域名的&…

夺命雷公狗—玩转SEO---21---域名购买技巧

购买域名技巧&#xff1a; 购买渠道很多&#xff0c;没有指定的&#xff0c;但是如果需要购买老域名到&#xff0c;聚名网&#xff0c;进行购买那还是挺给力的哟~~&#xff01; 买域名需要购买com结尾&#xff0c;前面有含义&#xff0c;且尽量简短的来进行购买~~&#xff01; …

网站运营手册_2020年在线运营计划表(运营方案),6套流程分解,大家参考使用...

相信不少从事运营工作的朋友都会对制定运营方案或者运营计划而发愁&#xff0c;尤其是在线运营方案更是让人抓狂&#xff0c;因为在线运营方案元素的复杂性和内容的多样性&#xff0c;一个科学而又完善的计划表对于提高运营效率非常有帮助。运营方案范本例如&#xff0c;我们要…

无法解析目标系统名称_Windows 系统(web server)网站搭建IIS操作方法

通常开通服务器后&#xff0c;需要进行 网站搭建&#xff0c;下面是win03、win08系统的操作方法&#xff1b;网站搭建前需要将 域名解析到搭建的本机服务器ip&#xff0c;解析一般在购买的域名网站进行&#xff0c;备案域名需要联系机房售后运维进行过白名单。工具&#xff1a;…

分析手机网站的优势思维结构图_手机网站和电脑端网站相比有哪些优势

相信大家都有一个感受就是我们现在的生活已经很难离开网络了&#xff0c;特别是手机与电脑在我们的生活中起到了不可替代的作用。我们每天都会在手机与电脑上浏览很多网站&#xff0c;但是却很少有人知道手机网站和电脑端网站相比有哪些优势&#xff1f;更方便众所周知&#xf…

网站前端性能分析

一 速度与功能&#xff0c;哪个更重要 二 网站性能与收入 三 网站速度与用户流失 四 Web性能优化法则 五 国内性能分析工具—基调系统介绍 六 国际站的优化实践 七 改进建议 八 评分规则及优化 一 速度与功能&#xff0c;哪个更重要1.网站最基本的东西是什么&#xff1f; 内…

在线的Web网站性能测试工具

在线的Web网站性能测试工具: 1) Web Page Test 2) Load Impact 3) FreeSpeedTest 4) Browser Mob 5) Rapid Search Metrics 6) Host Tracker 7) Pingdom Tools 8) Webo Software 9) iWebtool 10) Wave 11) Web Page Analyzer 12) WebToolHub 13)....1) Web Page Test 从世…

python写网站 linux_python编写简单后门程序(支持windows和linux且不乱码)

虽然不是自己写的&#xff0c;但是改了三个部分&#xff0c;网上发的这个&#xff0c;quit退出功能无法使用&#xff0c;因为传过来的字符串其实是加了n的&#xff0c;为了更人性化&#xff0c;我加了去空格。 第二个部分就是windows下的乱码问题&#xff0c;这里我先用了decod…

网站选择按钮点击无反应?_小白到老司机wordpress网站建设学习(四)使用Elementor建商业网站...

学会使用Elementor&#xff0c;小白也可以轻松的搭建出DIAO爆天的商业网站欢迎同学们回来&#xff0c;和老陈一起零基础学习WordPress搭建网站&#xff0c;上一课我们完成了前期的准备工作&#xff0c;今天这节课我们正式开始使用WP搭建网站。在浏览器(建议使用Chorme浏览器)中…

LAMP网站架构方案分析

LAMP&#xff08;Linux-Apache-MySQL-PHP&#xff09;网站架构是目前国际流行的Web框架&#xff0c;该框架包括&#xff1a;Linux操作系统&#xff0c;Apache网络服务器&#xff0c;MySQL数据库&#xff0c;Perl、PHP或者Python编程语言&#xff0c;所有组成产品均是开源软件&a…

最新30佳 HTML5 网站设计案例欣赏

在过去的几年&#xff0c;Web开发者们已开始关注和使用 HTML5 了&#xff0c;如今 HTML5 得到了更加广泛的应用&#xff0c;并将未来逐渐成为 Web 舞台的主角。今天&#xff0c;本文向大家推荐30个应用 HTML5 的网站案例&#xff0c;让大家感受一下 HTML5 的魅力。1- Orange Sp…

c语言通讯录选题背景与意义,《C语言程序设计》课程网站的设计与实现(ASP.NET,SQL)...

《C语言程序设计》课程网站的设计与实现(ASP.NET,SQL)(毕业论文12000字,程序代码,SQLserver数据库)本课程网站采用C#语言和asp.net技术并利用SqlSever数据库进行开发&#xff0c;结合了B/S框架技术&#xff0c;实现课程教学管理新方式&#xff0c;主要是针对管理员&#xff0c;…