网站架构

news/2024/5/20 22:48:29/文章来源:https://blog.csdn.net/wangeen/article/details/9030831

百科名片

网站架构
网站架构
网站架构,一般认为是根据 客户需求分析的结果,准确定位网站目标群体,设定网站整体架构,规划、设计网站栏目及其内容,制定 网站开发流程及顺序,以最大限度地进行高效资源分配与管理的设计。其内容有程序架构,呈现架构,和 信息架构三种表现。而步骤主要分为硬架构和软架构两步程序。网络架构是现代 网络学习和发展的一个必须的基础技术。

目录

硬架构
软架构
负载均衡的八个方案
展开
硬架构
软架构
负载均衡的八个方案
展开

编辑本段硬架构

机房的选择

在选择 机房的时候,根据网站用户的地域分布,可以选择网通或电信机房,但更多时候,可能 双线机房才是合适的。越大的城市, 机房价格越贵,从成本的角度看可以在一些中小城市托管 服务器,比如说 北京的公司可以考虑把 服务器托管在天津,廊坊等地,不是特别远,但是价格会便宜很多。

带宽的大小

通常老板花钱请我们架构网站的时候,会给我们提出一些目标,诸如网站每天要能承受100万 PV的访问量等等。这时我们要预算一下大概需要多大的 带宽,计算带宽大小主要涉及两个指标(峰值流量和页面大小),我们不妨在计算前先做出必要的假设:
第一:假设峰值流量是平均流量的5倍。
第二:假设每次访问平均的页面大小是100K字节左右。
如果100万PV的访问量在一天内平均分布的话,折合到每秒大约12次访问,如果按平均每次访问页面的大小是100K字节左右计算的话,这12次访问总计大约就是1200K字节,字节的单位是 Byte,而 带宽的单位是 bit,它们之间的关系是1Byte = 8bit,所以1200K Byte大致就相当于9600K bit,也就是9Mbps的样子,实际情况中,我们的网站必须能在峰值流量时保持正常访问,所以按照假设的峰值流量算,真实带宽的需求应该在45Mbps 左右。
当然,这个结论是建立在前面提到的两点假设的基础上,如果你的实际情况和这两点假设有出入,那么结果也会有差别。

服务器的划分

先看我们都需要哪些服务器:图片服务器,页面服务器, 数据库服务器, 应用服务器,日志服务器等等。
对于访问量大点的网站而言,分离单独的图片服务器和页面服务器相当必要,我们可以用 lighttpd来跑图片服务器,用 apache来跑页面服务器,当然也可以选择别的,甚至,我们可以扩展成很多台图片服务器和很多台页面服务器,并设置相关域名,如img.domain和 www.domain,页面里的图片 路径都使用绝对路径,如<img src="http://img.domain/abc.gif" />,然后设置DNS轮循,达到最初级的 负载均衡。当然,服务器多了就不可避免的涉及一个同步的问题,这个可以使用 rsync软件来搞定。
数据库服务器是重中之重,因为网站的瓶颈问题十有八九是出在数据库身上。现在一般的中小网站多使用 MySQL数据库,不过它的 集群功能似乎还没有达到stable的阶段,所以这里不做评价。一般而言,使用MySQL数据库的时候,我们应该搞一个主从(一主多从)结构,主 数据库服务器使用 innodb表结构,从数据服务器使用 myisam表结构,充分发挥它们各自的优势,而且这样的主从结构分离了读写操作,降低了读操作的压力,甚至我们还可以设定一个专门的从服务器做备份服务器,方便备份。不然如果你只有一台主服务器,在 大数据量的情况下,mysqldump基本就没戏了,直接拷贝数据文件的话,还得先停止数据库服务再拷贝,否则 备份文件会出错。但对于很多网站而言,即使数据库服务仅停止了一秒也是不可接受的。如果你有了一台从 数据库服务器,在备份数据的时候,可以先停止服务(slave stop)再备份,再启动服务(slave start)后从服务器会自动从主服务器同步数据,一切都没有影响。但是主从结构也是有致命缺点的,那就是主从结构只是降低了读操作的压力,却不能降低写操作的压力。为了适应更大的规模,可能只剩下最后这招了:横向/纵向分割数据库。所谓横向分割数据库,就是把不同的表保存到不同的 数据库服务器上,比如说 用户表保存在A数据库服务器上,文章表保存在B数据库服务器上,当然这样的分割是有代价的,最基本的就是你没法进行LEFT JOIN之类的操作了。所谓纵向分割数据库,一般是指按照 用户标识(user_id)等来划分 数据存储的服务器,比如说:我们有5台数据库服务器,那么 “user_id % 5 + 1”等于1的就保存到1号服务器,等于2的就保存到2号服务器,以此类推,纵向分隔的原则有很多种,可以视情况选择。不过和横向分割数据库一样,纵向分割数据库也是有代价的,最基本的就是我们在进行如COUNT, SUM等汇总操作的时候会麻烦很多。综上所述,数据库服务器的解决方案一般视情况往往是一个混合的方案,以其发挥各种方案的优势,有时候还需要借助 memcached之类的 第三方软件,以便适应更大访问量的要求。
如果有专门的 应用服务器来跑PHP 脚本是最合适不过的了,那样我们的页面服务器只保存 静态页面就可以了,可以给应用服务器设置一些诸如app.domain之类的域名来和页面服务器加以区别。对于 应用服务器,我还是更倾向于使用prefork模式的apache,配上必要的 xcache之类的PHP 缓存 软件,加载模块要越少越好,除了 mod_rewrite等必要的模块,不必要的东西统统舍弃,尽量减少httpd进程的 内存消耗,而那些图片服务器,页面服务器等 静态内容就可以使用lighttpd或者 tux来搞,充分发挥各种服务器的特点。
如果条件允许,独立的日志服务器也是必要的,一般小网站的做法都是把页面服务器和日志服务器合二为一了,在凌晨访问量不大的时候cron运行前一天的日志计算,不过如果你使用 awstats之类的日志分析 软件,对于百万级访问量而言,即使按天归档,也会消耗很多时间和服务器资源去计算,所以分离单独的日志服务器还是有好处的,这样不会影响正式服务器的工作状态。

编辑本段软架构

框架的选择

现在的PHP框架有很多选择,比如:CakePHP,Symfony,Zend Framework等等,至于应该使用哪一个并没有唯一的答案,要根据Team里团队成员对各个框架的了解程度而定。很多时候,即使没有使用框架,一样能 写出好的程序来,比如Flickr据说就是用Pear+Smarty这样的类库写出来的,所以,是否用框架,用什么框架,一般不是最重要的,重要的是我们 的编程思想里要有框架的意识。

逻辑的分层

网站规模到了一定的程度之后,代码里各种逻辑纠缠在一起,会给维护和扩展带来巨大的障碍,这时我们的解决方式其实很简单,那就是重构,将逻辑进行分层。通常,自上而下可以分为表现层,应用层,领域层,持久层。

表现层

所谓表现层,并不仅仅就指模板,它的范围要更广一些,所有和表现相关的逻辑都应该被纳入表现层的范畴。比如说某处的 字体要显示为红色,某处的开头要 空两格,这些都属于表现层。很多时候,我们容易犯的错误就是把本属于表现层的逻辑放到了其他层面去完成,这里说一个很常见的例子:我们在列表页显示文章标 题的时候,都会设定一个最大字数,一旦标题长度超过了这个限制,就截断,并在后面显示“..”,这就是最典型的表现层逻辑,但是实际情况,有很多程序员都 是在非表现层代码里完成数据的获取和截断,然后赋值给表现层模板,这样的代码最直接的缺点就是同样一段数据,在这个页面我可能想显示前10个字,再另一个 页面我可能想显示前15个字,而一旦我们在程序里固化了这个字数,也就丧失了可移植性。正确的做法是应该做一个视图助手之类的程序来专门处理此类逻辑,比 如说:Smarty里的truncate就属于这样的视图助手(不过它那个实现不适合中文)。

应用层

所谓应用层,它的主要作用是定义用户可以做什么,并把操作结果反馈给表现层。至于如何做,通常不是它的职责范围(而是领域层的职责范围),它会通过 委派把如何做的工作交给领域层去处理。在使用MVC架构的网站中,我们可以看到类似下面这样的URL: domain/articles/view/123,其内部编码实现,一般就是一个Articles控制器类,里面有一个view方法,这就是一 个典型的应用层操作,因为它定义了用户可以做一个查看的动作。在MVC架构中,有一个准则是这么说的:Rich Model Is Good。言外之意,就是Controller要保持“瘦”一些比较好,进而说明应用层要尽量简单,不要包括涉及领域内容的逻辑。

领域层

所谓领域层,最直接的解释就是包含领域逻辑的层。它是一个 软件的灵魂所在。先来看看什么叫 领域逻辑,简单的说, 具有明确的领域概念的逻辑就是领域逻辑,比如我们在ATM机上取钱,过程大致是这样的:插入银联卡,输入密码,输入取款金额,确定,拿钱,然后ATM吐出一个交易凭条。在这个过程中,银联卡 在ATM机器里完成钱从帐户上划拨的过程就是一个领域逻辑,因为取钱在银行中是一个明确的领域概念,而ATM机吐出一个交易凭条则不是领域逻辑,而仅是一 个应用逻辑,因为吐出交易凭条并不是银行中一个明确的领域概念,只是一种技术手段,对应的,我们取钱后不吐交易凭条,而发送一条提醒短信也是可能的,但并 不是一定如此,如果在实际情况中,我们要求取款后必须吐出交易凭条,也就是说吐出交易凭条已经和取款紧密结合,那么你也可以把吐出交易凭条看作是领域逻辑 的一部分,一切都以问题的具体情况而定。在Eric那本经典的 领域驱动设计中,把领域层分为了五种基本元素:实体,值对象,服务,工厂,仓储。具体可以参 阅书中的介绍。领域层最常犯的错误就是把本应属于领域层的逻辑泄露到了其他层次,比如说在一个CMS系统,对热门文章的定义是这样的:每天被浏览的次数多 于1000次,被评论的次数多于100次,这样的文章就是热门文章。对于一个CMS来说,热门文章这个词无疑是一个重要的领域概念,那么我们如何实现这个 逻辑的设计的?你可能会给出类似下面的代码:“SELECT ... FROM ... WHERE 浏览 > 1000 AND 评论 > 100”,没错,这是最简单的实现方式,但是这里需要注意的是“每天被浏览的次数多于1000次,被评论的次数多于100次”这个重要的领域逻辑被隐藏到 了SQL语句中,SQL语句显然不属于领域层的范畴,也就是说,我们的领域逻辑泄露了。

持久层

所谓持久层,就是指把我们的领域模型保存到数据库中。因为我们的程序代码是 面向对象风格的,而数据库一般是关系型的数据库,所以我们需要把领域模型 碾平,才能保存到数据库中,但是在PHP里,直到目前还没有非常好的ORM出现,所以这方面的解决方案不是特别多,参考Martin的 企业应用架构模式一 书,大致可以使用的方法有行数据入口(Row Data Gateway)或者表数据入口(Table Data Gateway),或者把领域层和持久层合二为一变成活动记录(Active Record)的方式。

编辑本段负载均衡的八个方案

HTML静态化

其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站架构上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的 信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。
除了门户和信息发布类型的网站,对于 交互性要求很高的社区类型网站来说,尽可能的 静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。
同时,html 静态化也是某些 缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行 后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。

图片服务器分离

大家知道,对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的图片服务器,甚至很多台图片服务器。这样的架构可以降低提供页面访问请求的 服务器系统压力,并且可以保证系统不会因为图片问题而崩溃,在 应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持,尽可能少的LoadModule,保证更高的系统消耗和执行效率。

图片托管应用程序

有时,你会在线上传图片,而一些大型网站需要托管和传送大量的图片,这对于构建一个具有成本效益、高可用性并具有低延时(快速检索)的架构是一项挑战。

数据库集群和库表散列

大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列。在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是类似的方案,您使用了什么样的DB,就参考相应的解决方案来实施即可。
上面提到的 数据库集群由于在架构、成本、扩张性方面都会受到所采用DB类型的限制,于是我们需要从 应用程序的角度来考虑改善系统架构,库表散列是常用并且最有效的解决方案。我们在 应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,这样就能够低成本的提升系统的性能并且有很好的扩展性。sohu的论坛就是采用了这样的架构,将论坛的用户、设置、帖子等信息进行数据库分离,然后对帖子、用户按照板块和ID进行散列数据库和表,最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能。

缓存

缓存一词搞技术的都接触过,很多地方用到缓存。网站架构和 网站开发中的 缓存也是非常重要。这里先讲述最基本的两种 缓存。高级和分布式的 缓存在后面讲述。
架构方面的 缓存,对Apache比较熟悉的人都能知道Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。
网站程序开发方面的 缓存,Linux上提供的MemoryCache是常用的缓存接口,可以在web开发中使用,比如用Java开发的时候就可以调用MemoryCache对一些数据进行缓存和通讯共享,一些大型社区使用了这样的架构。另外,在使用web语言开发的时候,各种语言基本都有自己的 缓存模块和方法,PHP有Pear的Cache模块, Java就更多了,.net不是很熟悉,相信也肯定有。

镜像

镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建 镜像站点,数据进行定时更新或者实时更新。在 镜像的细节技术方面,这里不阐述太深,有很多专业的现成的解决架构和产品可选。也有廉价的通过 软件实现的思路,比如Linux上的rsync等工具。

负载均衡

负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。
负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择,我个人接触过一些解决方法,其中有两个架构可以给大家做参考。

硬件四层交换

第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的 应用服务器进行处理。  第四层交换功能就象是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由 终端TCP或UDP 端口地址来决定,在 第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。
在 硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo 中国当初接近2000台服务器使用了三四台Alteon就搞定了。

软件四层交换

大家知道了 硬件 四层交换机的原理后,基于OSI模型来实现的 软件四层交换也就应运而生,这样的解决方案实现的原理一致,不过性能稍差。但是满足一定量的压力还是游刃有余的,有人说 软件实现方式其实更灵活,处理能力完全看你配置的熟悉能力。
软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux VirtualServer,他提供了基于 心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和 管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。
一个典型的使用 负载均衡的策略就是,在 软件或者 硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减 节点都非常容易。这样的架构我准备空了专门详细整理一下和大家探讨。
对于大型网站来说,前面提到的每个方法可能都会被同

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

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

相关文章

转载:程序员实用工具网站

转载 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a; https://blog.csdn.net/m0_38106923/article/details/100130354 目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共…

http://www.miuo.com 我的网站.密友地带,RSS Home,密友,RSS,XML

http://www.miuo.com http://miuo.com http://www.miuo.com/syndication.axd 密友科技资讯[miuo.com]_致力于从世界日新月异的科技信息中获取最大的信息价值&#xff0c;提供简明IT新闻,IT业界资讯,提供讨论平台&#xff0c;报道即时信息&#xff0c;讨论热烈的新闻、评论、…

10个设计最经典的web2.0网站

10个设计最经典的web2.0网站 <script type"text/javascript"> </script><script src"http://pagead2.googlesyndication.com/pagead/show_ads.js" type"text/javascript"> </script> 做好一个网站&#xff0c;不仅要在服…

源代码Search网站 www.krugle.com

推荐一个相当好的源代码搜索网站, www.krugle.com . 可以根据某段代码进行搜索,搜索结构可以是某段代码,或者某个工程. 支持相当多的程序开发语言. 感兴趣的可以去看看 ^_^ 界面如下:

学生社区(学校交流社区)网站源码推荐

学生社区网站&#xff08;或者说学校交流社区&#xff09;的特点是注重互动和个人展示&#xff0c;老墨今天为大家推荐几个比较适合创建学生社区网站的源码。 记事狗 记事狗微博系统是一套创新的PHP开源微博程序&#xff0c;其支持Wap、手机客户端、短信、QQ机器人等多种方式发…

Intel Edison Arduino 温度检测并上传至网站

采用的Arduino的温度传感器&#xff0c;其说明见此链接。参数罗列如下&#xff1a; Voltage: 3.3 ~ 5VZero power resistance: 100 KΩResistance Tolerance: 1%Operating temperature range: -40 ~ 125 ℃Nominal B-Constant&#xff1a; 4250 ~ 4299K 关键计算公式如下&#…

JAVA里面读取PostgreSQL数据库最近80条温度检测记录,并用Highcharts展示在网站上

效果如下&#xff1a; 花了2天时间处理了服务器端的GET处理部分&#xff0c;和前端HTML部分。 难点(1)&#xff1a;series[0]["data"][jjj]parseFloat(arr_temp[jjj]); 首先series[0]的[0]是不能省掉的&#xff0c;因为采用的这个是多曲线展示&#xff0c;要展示的是…

部署在线网站

1、注册账号 https://www.ngrok.cc/ 2、开通一个隧道账号 记录一下隧道ID 33adb03ff15e3705 3、下载客户端&#xff0c;最下面 https://www.ngrok.cc/ windows64下载 http://pan.baidu.com/s/1o8HQHxo 4、解压双击&#xff0c;输入33adb03ff15e3705按回车即可 注意&#xff1…

找xpath好用的工具(比较少用,针对只能在IE上打开的网站)

有一些网站只能在IE浏览器里打开&#xff0c;不像firefox那样有好多好用的插件来找元素的xpath,css path等。 当然现在IE也可以&#xff0c;F12出现像firebug那样的窗口&#xff0c;来查看元素。 这里呢在介绍一个工具&#xff0c;Fire-IEBrowser1.4.zip&#xff0c;我已经上…

Echarts一些社区网站,亲测可用,新更新了Antv(阿里旗下)

1.makeapie echarts图表可视化案例makeapie echarts图表可视化案例, 分享你的可视化作品https://www.makeapie.cn/echarts 2.Examples - Apache EChartsECharts, a powerful, interactive charting and visualization library for browserhttps://echarts.apache.org/examples…

使用css和jquery实现一个网站首页轮播图的功能

效果展示说明 页面代码&#xff0c;在一个div框中用img标签放置图片和小圆点 <div id"box01"><img src"img/fengxueshanshenmiao.jpg"/><img src"img/sandazhujiazhuang.jpg" /><img src"img/shuihuAll.jpg" /&…

动态网站的搭建-学习笔记-阿里云服务器测试

1.静态网站&动态网站 Wordpress 2.静态&#xff1a;公司业务介绍等 减轻服务器负担&#xff08;无额外计算&#xff09; 打开快、搜索引擎收录全 动态&#xff1a;交互式网站&#xff0c;电商的库存 降低维护的工作量 用户注册、在线调查、订单管理等 3.iis是在windows下常…

网站的目录分类与TAG标签有什么区别?如何使用?

博客文章或电商网站商品一定要分类&#xff1f; 分类是不是越多越好&#xff1f; 分类与标签有什么不同&#xff1f; 做好标签与分类是不是对于网站在搜索引擎中有帮助&#xff1f; 相信许多在经营博客或是电商网站的人员都会遇到这样的问题。如果你上网百度相关问题&#…

网站转换率如何提高?知道这四点足矣!

网站转换率如何提高&#xff1f;知道这四点足矣&#xff01; 原文出处&#xff1a;http://www.tunan321.com 什么是转换率 转换率顾名思义首先考虑转换&#xff0c;而转换意味着&#xff0c;在不同情况下进行了切换&#xff0c;转换率就是指每个人在不同情况下切换成功的比率…

建设网站到底需不需要用WordPress?

WordPress 最知名的大概就是所谓的 5 分钟安装 (5-Minute install)&#xff0c;让你可以快速地安装 WordPress 并开始撰写内容和设计页面。这几年随著社群的蓬勃发展&#xff0c;各种线上或线下教学以及教学推广 (联盟行销&#xff1f;)&#xff0c;WordPress 的能见度提高很多…

创建自己的博客网站

一直想拥有自己的博客网站&#xff0c;在云上搭建&#xff0c;免服务的。 https://developer.aliyun.com/adc/series/activity/wulin?accounttraceid5944bc16d86f49fca9559abbd2b5f1bbfkjd 我在上面使用WordPress搭建了一个博客&#xff0c;可以自定义主题

ASP.NET MVC3细嚼慢咽---(1)网站创建与发布

这一节我们演示下怎样使用VS2010创建与发布MVC3建立的网站。使用VS2010创建MVC3.0网站&#xff0c;需要下载MVC3.0的安装包&#xff0c;这个大家可以去网络上下载。 1.项目创建 打开VS2010&#xff0c;选择 文件--新建项目---ASP.NET MVC3 web应用程序&#xff0c;如下图 接着选…

模式识别和机器学习实战-K近邻算法(KNN)- Python实现 - 约会网站配对效果判断和手写数字识别

文章目录 前言一、 k-近邻算法&#xff08;KNN&#xff09;1.算法介绍2.举个例子——电影分类3.步骤描述4.来了——代码实现 二、实战之约会网站配对效果判断1.导入数据2.分析数据3.数据归一化4. 测试算法→使用错误率来检测性能5. 构建完整的系统6.总结分析 三、实战之手写数字…

力扣个人主页的**draw函数**信息展示代码自动生成网站

分享内容&#xff1a; 今天给大家分享一个力扣个人主页的draw函数的自动生成代码网站&#xff0c;效果演示 使用方法&#xff1a; 在箭头处输入英文字母&#xff0c;点击提交查询即可。

PHP使用Apache中的ab测试网站

打开Apache服务器的安装路径(我用的是 WampServer)&#xff0c;在bin目录中有一个ab.exe的可执行程序&#xff0c;它就是要介绍的压力测试工具。 在Windows系统的命令行下&#xff0c;进入ab.exe程序所在目录&#xff0c;执行ab.exe程序。注意直接双击无法正确运行。 d:(回车/进…