谈谈个人网站的建立(一)——建站历史和技术架构

news/2024/5/16 7:57:49/文章来源:https://blog.csdn.net/ai52011/article/details/77620333

首先,帮忙点击一下我的网站http://www.wenzhihuai.com/。谢谢啊,如果可以,GitHub上麻烦给个star,以后面试能讲讲这个项目,GitHub地址https://github.com/Zephery/newblog
大学的时候萌生的一个想法,就是建立一个个人网站,前前后后全部推翻重改了4、5遍,现在终于能看了,下面是首页。


由原本的ssh变成ssm,再变成ssm+shiro+lucene,到现在的前后台分离。前台使用ssm+lucene,后台使用spring boot+shiro。其中,使用pagehelper作为分页,lucene用来搜索和自动补全,使用百度统计的API做了个日志系统,统计pv和uv什么的,同时,还有使用了JMX来观察JVM的使用和cpu的使用率,机器学习方面,使用了adaboost和朴素贝叶斯对微博进行分类,有兴趣的可以点点有点意思这个页面。
本文从下面这几个方面来讲讲网站的建立:
1.建站故事与网站架构
2.lucene搜索的使用
3.使用quartz来定时备份数据库
4.使用百度统计api做日志系统
5.使用jmx观察jvm和cpu
6.使用druid来监测数据库
7.使用机器学习对微博进行分析
8.网站性能优化
9.SEO优化

1.建站故事与网站架构

1.1建站过程

起初,是因为学习的时候老是找不到什么好玩而又有挑战性的项目,看着struts、spring、hibernate的书,全都是一些小项目,做了感觉也没啥意义,有时候在博客园看到别人还有自己的网站,特羡慕,最终就选择了自己做一个个人网站。期初刚学的ssh,于是开始了自己的ssh搭建个人网站的行程,但是对于一个后端的人来说,前端是个大问题啊。。。。所以初版的时候差不多全是纯生的html、css、js,至少发博客这个功能实现了,但是确实没法看。前前后后折腾了一个多月,决定推翻重做,到百度看看别人怎么做的。首先看到的是杨青的网站,已经好几年没更新了,前端的代码看起来比较简单,也是自己能够掌握的,但是不够美观,继续找,在模板之家发现了一个高大上的模板。


第二版的界面确实是这样的,只是把图片的切换变成了wowslider,也是简单的用bootstrap和pagehelper做了下分页,现在的最终版保留了它的header,然后评论框使用了多说(超级怀念多说)。后端也由原来的ssh变成了ssm,之后加上了lucene来对文章进行索引。之后,随着多说要关闭了,突然之间有很多div都不适应了(我写死了的。。。),再一次,没法看,不想看,一怒之下再次推翻重做,变成了现在这个版本。
最终版本在考虑时,也找了很多模板,影响深刻的是tale和欲思这两个主题,期中,tale使用的是java语言写的,刚知道的那一刻我就没好感了,java后端我是要自己全部写的,tale这个页面简洁但是不够炫,而且内容量太低,可能就只是个纯博客,之后发现了欲思,拓展性强,只可惜没有静态的版本,后台是纯生的PHP(嗯,PHP是世界上最好的语言),看了看,没事,保存网页,前端自己改,后端自己全部重写,最终变成了现在这个版本,虽然拼接的时候各种css、js混入。。。。还好在做网站性能优化的时候差不多全部去掉了。最终版加入redis、quartz、shiro等,还有python机器学习、flask的restful api,可谓是大杂烩了。
页面看着还算凑合,至少不是那种看都看不过去的那种了,但是仔细看看,还是有不少问题的,比如瀑布流,还有排版什么的。只能等自己什么时候想认真学学前端的东西了。
已经部署在腾讯云服务器上,存储使用了七牛云的cdn。

1.2 网站整体技术架构

最终版的技术架构也算是用上了自己大部分所学的内容吧,虽然有些确实还不是非常理解(TT),只能在以后的专研中慢慢加深,技术架构图如下:




网站核心主要采用Spring SpringMVC和Mybatis,下图是当访问一篇博客的时候的运行流程,参考了张开涛的博客。



运行流程分析
1.浏览器发送http请求。/blogdetail.html?blogid=1。
2.tomcat容器初始化,顺序为context-param>listener>filter>servlet,此时,spring中的bean还没有被注入的,不建议在此处加载bean,网站声明了两个类(IPFilter和CacheControlFilter),IPFilter用来拦截IP,CacheControlFilter用来缓存。
3.初始化Spring。
4.DispatcherServlet->HandlerMapping进行请求到处理的映射,HandlerMapping将“/blogdetail”路径直接映射到名字为“/blogdetail”的Bean进行处理,即BlogController。
5.自定义拦截器,其中BaseIntercepter实现了HandleInterceptor的接口,用来记录每次访问的链接以及后台响应的时间。
6.DispatcherServlet-> SimpleControllerHandlerAdapter,SimpleControllerHandlerAdapter将HandlerExecutionChain中的处理器适配为BlogController。
7.BlogController执行查询,取得结果集返回数据。
8.blogdetail(ModelAndView的逻辑视图名)->InternalResourceViewResolver, InternalResourceViewResolver使用JstlView,具体视图页面在/blogdetail.jsp。
9.JstlView(/blogdetail.jsp)->渲染,将在处理器传入的模型数据(blog=Blog!)在视图中展示出来;
10.返回响应。

1.3 日志系统

日志系统架构如下:




日志系统曾经尝试采用过ELK,实时监控实在是让人不能不称赞,本地也跑起来了,但是一到服务器,卡卡卡,毕竟(1Ghz CPU、1G内存),只能放弃ELK,采用百度统计。百度统计提供了Tongji API供开发者使用,只是有次数限制,2000/日,实时的话实在有点低,只能统计前几天的PV、UV等开放出来。其实这个存放在mysql也行,不过这些零碎的数据还是放在redis中,方便管理。
出了日志系统,自己对服务器的一些使用率也是挺关心的,毕竟服务器配置太低,于是利用了使用了tomcat的JMX来对CPU和jvm使用情况进行监控,这两个都是实时的。出了这两个,对内存的分配做了监控,Eden、Survivor、Tenured的使用情况。

1.4 【有点意思】自然语言处理

本人大学里的毕业设计就是基于AdaBoost算法的情感分类,学到的东西还是要经常拿出来看看,要不然真的浪费了我这么久努力做的毕业设计啊。构建了一个基本的情感分类小系统,每天抓取微博进行分类存储在MySql上,并使用flask提供Restful API给java调用,可以点击这里尝试(请忽略Google的图片)。目前分类效果不是很明显,准确率大概只有百分之70%,因为训练样本只有500条(找不到训练样本),机器学习真的太依赖样本的标注。这个,只能请教各位路人大神指导指导了。



总结

断断续续,也总算做了一个能拿得出手仍要遮遮掩掩才能给别人看的网站,哈哈哈哈哈,也劳烦各位帮忙找找bug。前前后后从初学Java EE就一直设想的事也还算有了个了结,期间碰到的坑实在实在太多,甚至中途也停止了三个月的制作(实习太忙)。不过回头一看,貌似自己的技术并没有提升多少啊哈哈哈哈,好神奇,一年前知识广度甚至还多点,现在只是代码的规范化。好好提升自己哈哈哈。谈起写博客这件事,有时候一动笔心里就有别人博客的阴影,别人已经写好了,自己为什么还要写,换个角度?百度一搜,这个角度也有人写了,无奈,深度也比自己广,其实不管怎样以后要多多看书,专研专研,写点更加精品文章。PS:GitHub上求给个Star,以后面试能讲讲这个网站哈哈哈哈,感谢各位。

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

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

相关文章

MacOS网页自动化教程(下)- PySeTest网站自动登录到下单测试手脚架#Python3 + Selenium3+ HTMLTestRunner#工欲善其事

PySeTest网站自动登录到下单测试手脚架#Python3 Selenium3 HTMLTestRunner系统说明如何使用功能说明实现步骤测试路径测试脚本代码实现常用方法封装Selenium基础用法Selenium 中文文档Selenium3 定位方法Selenium的等待自动生成Html测试报告HTMLTestRunner 兼容Python3如何使用…

大型网站架构改进历程:存储的瓶颈(四)

摘要:什么是大型网站,从网站的技术角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标,懂点行的人也许会认为是网站在单位时间里的并发量的大小来作为指标,如果按这些标准那么像hao123网站就是了。 本文转自博…

律师所网站建设及律师事务所网站模板整理

律师网站建设的内部系统可以分为很多,根据栏目页的设定可以有不同的系统,而且随着时代的发展以及互联网技术的不断更新,各方面系统管理也在升级,网站建设者或是管理者需要不断的对网站进行优化,使得符合时代发展的要求…

做网站用企业网站模板好不好

现在很过公司企业做网站都一般有两种途径,一种找人量身定制,一种选择现成的企业网站模板,目前来说,这两种网站建设方式价格差异也不大,那么到底是定制好?还是企业网站模板好呢? 其实这个问题没有…

响应式网站建设的优缺点

首先要明白响应式网站概念,响应式网站是国外最先流行的一种网站布局理念,其理念是:集中创建页面的图片排版大小,可以智能地根据用户行为以及使用的设备环境进行相对应的布局,说简单点就是可以在pc和手机及各种浏览设备…

网站建设需要注意的几个重要因素

在互联网发达的时代,网站已经是生活当中必不可少的一个事物了,许许多多的企业都熟悉了网站建设的流程,企业可以通过网站可以自由的发布信息、更新产品、还能够为客户提供一些在线的服务等。成功的网站建设能为企业带来一定的业务和收益&#…

网站建设方案

一、网站目标 网络凭借其卓越的互动性与便捷的交流手段正成为最有发展潜力与前途的新兴媒体,成为众企业倍为关注的宣传热点。许多行业的知名企业已经通过网站建设来为自己的企业带来显著的宣传效果。企业网站为对外宣传、服务和交流的载体,来配合企业的迅…

新手如何学习网站建设,教你如何制作网站

新手开发网站具备的条件:对电脑熟练操作,使用电脑最好在一年以上,会打字,懂基本电脑知识,这个对现在的人来说都不成问题的。第一阶段:开始时最好是学些网页编辑软件和基础网页脚本语法,如&#…

网站开发流程

创建一个企业形象网站,要做好商业网站开发的前期准备、中期制作和后期的测试发布工作。前期准备包括了解网站的业务背景、明确网站的设计风格、确定网站内容等;中期制作主要包括创建站点、制作首页、制作模板和制作样式;后期的测试发布工作包…

自己建网站的步骤及方法

在当前,生活上很多事情已经和互联网息息相关了,每个我们都会网上浏览各种网站,新闻网站看新闻,购物网站在线购买,视频网站可以看视频,各种类型的网站基本都会有,企业建网站为了宣传和提供服务&a…

新站长建设网站需要学习知识

企业寻求建站公司为其做网站需要明确以下几点概要: 1、确定建设网站,首先要准备网站建设方案书制作,网站建设素材,网站页面设计与制作标准,网站功能性程序开发与页面融合,数据库设计与数据输入,服务器服务器存放,域名注册与解析。 2、对于每个流程,需要概…

安装PageAdmin Cms建站系统时候“System.ServiceModel.Activation.HttpModule”错误的解决办法

今天把PageAdmin Cms建站系统改的一个网站转移到云服务器时候,网站报提示了下面的错误,找了半天在官方网站找到解决办法,下面发出来给大家共享 错误: 未能从程序集“System.ServiceModel, Version3.0.0.0, Cultureneutral, Publ…

自助建站之PageAdmin、凡科建站、Wordpress如何选择?

国内互联网发展这么多年,网站建设行业的技术发展已经很成熟,以前做网站只能找专业网站建设公司,到现在的自助建站,技术壁垒几乎不存在,自助建站是现在,也是未来的发展趋势。 自助建站分为在线建站平台和独…

好用的免费CMS网站模板源码下载推荐

现在越来越多企业采用网站模板建站,加快了速度,也节约了建站成本,但是百度搜索很多网站模板90%都是骗流量的,根本就用不了,要不一些乱七八糟的,要不国外复制的,要么没有后台,即使有后…

织梦DEDECMS、PageAdmin Cms、wordpress哪个建站系统做网站好

现在的CMS系统非常多,CMS作为基础的网站内容管理系统,都已经比较成熟了,国内常用的CMS系统有:PageAdmin Cms、织梦DEDECMS、Wordpress等。对于老手来说,适合自己的就是最好的,那么,对于新手呢&a…

中小型网站架构分析及优化

先看网站架构图: 以上网站架构广泛运用中大型网站中,本文从架构每一层分析所用主流技术和解决手段,有助于初入网站运维朋友们,进一步对网站架构认识,从而自己形成一套架构概念。 第一层:CDN 国内网络分布主…

如何使用PageAdmin Cms建网站

PageAdmin是国内最流行的内容管理系统和网站构建器之一,全国拥有上千万个网站使用这个系统做网站,占据内容管理市场的60%以上。这个免费的开源网站系统经久不衰的原因之一就是其灵活性和易用性。从个人博客作者到企业网站,到大学网站&#xf…

建一个网站需要多少钱

很多第一次做网站的新手朋友都很关心建一个网站的费用和花销,但是需要明白,不同网站建设公司做同样一个网站,价格区别也是很大的,所以我们必须先掌握清楚网站主要费用构成。 下面先说一下网站固定价格组成: 1、网站域…

建网站如何选择好用的网站源码程序

很多新手朋友第一次建网站时候,如何选择一款适合的网站源码是比较困惑的问题,选择一款好的网站源码可以节约大量时间和金钱,但是由于网站源码参差不齐,免费的,收费的,淘宝几元钱购买的,几万块钱…

企业网站建设教程:自己怎么建网站,做网站的步骤有哪些

当今网络时代,企业网站的重要性不言而言,很多在企业在阿里巴巴这些b2b平台都会有一个商铺,这些商铺会分配一个简单的网站暂时一些产品,但是普遍存在一个问题,界面简单,没有自己的独立域名,无法彰…