fastdfs文件缓存
① 技术面试会问很多技术问题吗
笔者其实没有想到去面试,只是在智联上更新了一下简历,就陆陆续续接到很多猎头的邮件和电话,实在是没准备好要去面试,就推掉了几家公司的面试了。正因为笔者也很久没有面试了,笔者也想去面试学习一下,闲话少说,下面就分享给大家笔者在2018年1月4号上午10点30分的面试经历:
首先,猎头或者公司人资会把公司的介绍及岗位要求发到你邮箱(或者QQ、微信),下面这份是猎头发给我的岗位说明,为了职业道德操守,公司的介绍和面试通知信息我就不贴出来了,我就把岗位要求贴出来:
职位描述:
1、 负责应用服务器的安装、配置、优化与维护;
2、 负责应用系统的日志信息备份、管理、维护与分析;
3、 负责应用系统的日常监测于维护、故障处理、性能分析与优化;
4、 负责应用部署系统、环境配置系统、监控系统的开发、部署、升级与维护,建设高性能的运维平台。
岗位要求:
1、 熟悉linux操作系统的基础知识,熟练使用Linux常用操作命令;
2、 熟练配置Nginx、HAproxy 等应用相关软件的部署、配置与优化维护;
3、 熟悉网络基础知识、熟悉TCP/IP的工作原理,会配交换机或路由器,能熟练的对网络情况进行分析
4、 熟悉shell/perl/python中的一种或多种进行运维程序的开发;
5、 熟悉Nagios,Ganglia等监控软件
看着上面的要求大家是不是觉得要求也不高啊,你要细看就会发现,这家公司要求的还挺多,不仅要会网络知识(熟悉TCP/IP好像是每家单位的都会写这样的要求),还要会开发技能。相信很多做运维的兄弟在网络这一块是个头疼的事情,都对交换机和路由器不怎么会配置和管理。
然后,笔者详细了解他们公司,了解岗位要求,在突击复习一下可能会问到的知识点和技术点。到了面试的这天时间,早早的起床,把牙一定要刷干净,特别是有口臭的兄弟,最好准备点口香糖,到达面试公司前嚼块口香糖,以免因为口气的原因熏到面试官,让你在面试官心里减分。早点要记得吃,如果你是下午面试的话也要吃午饭,吃早点了精气神就有了。还要注意,带上你的简历和一支笔,虽然他们那边也会有你的简历,为了以防万一还是准备好简历。
最后,关键点来了,就是和面试官沟通了,有笔试的公司会让你做些面试题,没有笔试就直接和面试官聊了,下面是我和面试官沟通完之后记住的一些问题,分享给大家看一下,笔者一共记住了7个问题,好像还有两个问题实在想不起来了,如果大家有更恰当的回答一定要贴出来一起探讨和进步:
1、介绍下自己?(几乎每家公司首先都会让你做个自我介绍,好像是必修课一样)
笔者回答:此处省略笔者的自我介绍,笔者建议介绍自己的时间不宜过长,3-4分钟为宜,说多了面试官会觉得你太啰嗦了。说太少了也不行,那样会让人感觉你的经历太简单了、太空了。正常情况下,一般你在做自我介绍的同时,面试官这个时候在看你的简历,他需要一边看简历、一边听你介绍自己,如果你说个几句话就把自己介绍完了,他肯定还没缓过神来,对你的映像会减分的。在介绍的同时思维要清晰,逻辑要清楚,最好是根据你简历上写的经历来介绍,这样可以把面试官的思路带到你这里来,让他思路跟着你走。不要东扯一句,西扯一句。竟量少介绍自己的性格、爱好(最好能不说就不说),你可以简单罗列干过几家公司(最多罗列3家公司/也包含目前所在的公司,注意顺序不要乱),都在那几家公司负责什么工作,都用过什么技术,在着重介绍一下你目前所在的公司是负责哪些工作的,可以稍微详细一点介绍,不要让面试官听着晕头转向的感觉。
2、灰度发布如何实现?
笔者回答:其实对这个问题笔者也答的不好,就不写出来误导大家了。大家有好的方法可以共享出来。不过笔事后在知呼上看到了一位网友的建议觉得不错,大家可以参考看一下 :https://www.hu.com/question/20584476
3、Mongodb熟悉吗,一般部署几台?
笔者回答:部署过,没有深入研究过,一般mongodb部署主从、或者mongodb分片集群;建议3台或5台服务器来部署。MongoDB分片的基本思想就是将集合切分成小块。这些块分散到若干片里面,每个片只负责总数据的一部分。 对于客户端来说,无需知道数据被拆分了,也无需知道服务端哪个分片对应哪些数据。数据在分片之前需要运行一个路由进程,进程名为mongos。这个路由器知道所有数据的存放位置,知道数据和片的对应关系。对客户端来说,它仅知道连接了一个普通的mongod,在请求数据的过程中,通过路由器上的数据和片的对应关系,路由到目标数据所在的片上,如果请求有了回应,路由器将其收集起来回送给客户端。
4、如何发布和回滚,用jenkins又是怎么实现?
笔者回答:发布:jenkins配置好代码路径(SVN或GIT),然后拉代码,打tag。需要编译就编译,编译之后推送到发布服务器(jenkins里面可以调脚本),然后从分发服务器往下分发到业务服务器上。
回滚:按照版本号到发布服务器找到对应的版本推送
5、Tomcat工作模式?
笔者回答:Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。
进入Tomcat的请求可以根据Tomcat的工作模式分为如下两类:
Tomcat作为应用程序服务器:请求来自于前端的web服务器,这可能是Apache, IIS, Nginx等;
Tomcat作为独立服务器:请求来自于web浏览器;
6、监控用什么实现的?
笔者回答:现在公司的业务都跑在阿里云上,我们首选的监控就是用阿里云监控,阿里云监控自带了ECS、RDS等服务的监控模板,可结合自定义报警规则来触发监控项。上家公司的业务是托管在IDC,用的是zabbix监控方案,zabbix图形界面丰富,也自带很多监控模板,特别是多个分区、多个网卡等自动发现并进行监控做得非常不错,不过需要在每台客户机(被监控端)安装zabbix agent。
7、你是怎么备份数据的,包括数据库备份?
笔者回答:在生产环境下,不管是应用数据、还是数据库数据首先在部署的时候就会有主从架构、或者集群,这本身就是属于数据的热备份;其实考虑冷备份,用专门一台服务器做为备份服务器,比如可以用rsync+inotify配合计划任务来实现数据的冷备份,如果是发版的包备份,正常情况下有台发布服务器,每次发版都会保存好发版的包。
总结
总结一下面试注意几点事项,可能笔者也说得不太对,为了我们运维工作的兄弟们都能拿到高薪,大家一定要指证出来一起进步、一起探讨:
第一,你要对自己的简历很熟悉,简历上的写的技能自己一定要能说出个一二,因为面试官的很多问题都会挑你简历上写的问。比如你简历上写了这么一条技能“熟悉mysql数据库的部署安装及原理”。你即然写了这么一条技能,你在怎么不熟悉你也要了解mysql的原理,能说出个大概意思。万一面试官问到了你写的这一条,你都答不上来,那在他心里你又减分了,基本上这次面试希望不大。
第二,如果面试官问到你不会的问题,你就说这个不太熟悉,没有具体研究过,千万别不懂装懂,还扯一堆没用的话题来掩饰,这样只会让面试官反感你。
第三,准备充分,竟可能多的记住原理性的知识,一般面试问的多的就是原理。很少问具体的配置文件是怎么配置的。面试前也要了解清楚“职位描述”和“岗位要求”,虽然有时候大多数不会问到岗位要求的问题,但也要了解和熟悉。
第四,面试完后一定要总结,尽量记住面试官问的每一个问题,回去记录下来,如果问到不会的问题,事后要立马查网络或者找朋友搞清楚、弄明白,这样你才能记劳,下次面试说不定又问到同样的问题。
问完之后,面试官就跟我聊薪资待遇了,问我多少钱能达到自己的要求,我就不便透露了,可以私聊,哈哈,后续笔者会陆陆续续更新以前面试的经历和问题,有需要的朋友可以转载或者收藏起来一起讨论。
基于大家热情高昂的气氛,笔者又花了一个下午的时间回忆并整理在2017年2月24号笔者在东三环边上(快到东四环了,没有地铁过去,到了四惠还要转公交车)的一家传媒公司的面试经历,还好笔者有做笔记的习惯,把之前面试的问题都记录在案,这一次的面试笔者可是记忆犹新,因为这次这家公司都跟笔者发offer了,实在是真心不想去这家公司就找原因推掉了,大家可别学我这么不靠谱。下面是这家公司中的岗位要求说明:
岗位职责:
1、负责公司产品的版本控制、构建和发布管理;
2、负责公司统一配置库管理工作,权限管理与分配准确及时,定期完成配置备份;
3、负责公司内部开发/测试服务器的运行管理工作;
4、负责Linux操作系统的安装、配置、监控和维护、问题处理、软件升级、 数据备份、应急响应、故障排除等、保证线上环境的稳定运行;
5、负责支撑平台24×7稳定运行,并进行前瞻性容量规划;
6、负责公司机房服务器日常维护及网络系统安装、部署、维护工作。
岗位要求:
1、计算机相关专业本科及以上学历,2年以上运维或配置管理工作经验;
2、至少熟悉一种监控系统搭建,如Nagios/Zabbix/等;
3、至少熟悉一种集群管理工具,如Ansible/SaltStack等;
4、有使用集成发布工具发布构建经验优先。比如:bamboo或者Jenkins;
5、熟悉Unix/Linux操作系统,熟悉Weblogic/tomcat等中间件,能够编写shell脚本,熟悉软件开发过程及过程产品,有一定的网络基础;
6、熟悉rsyslog, flume等日志收集和处理系统;
7、具有强烈的安全意识及较强的沟通协调和学习能力,良好的团队合作精神,工作积极主动。
过去之后,前台美眉把我带到他们公司的地下室,我扫视了一下周围的环境,貌似旁边就是机房,因为我听到服务器的声音。等了几分钟,面试官下来了,面试官目测比较瘦,看着跟我身材差不多(应该不到120),他说他是负责运维部的,然后开始就叫我先自我介绍,都是一个套路,免不了介绍的,所以兄弟们一定要把自我介绍练好。然后开始问我问题了,跟面试官聊得还行,问我应该有不下10个以上的问题,我记住了下面有10个问题:
1、LVS负载的原理,和Nginx负载有啥区别?
笔者回答:这个问题我觉得面试官司没问好,正常都会这么问“LVS有哪些负载均衡技术和调度算法?"。我回答就是按我说的这种问法回答的,反正他也频繁点头,当然,笔者回答的可能没有下面我整理出来的那么详细,大概意思我都说明白了。
LVS是Liunx虚拟服务器的简称,利用LVS提供的负载均衡技术和linux操作系统可实现高性能、高可用的服务器集群,一般LVS都是位于整个集群系统的最前端,由一台或者多台负载调度器(Director Server)组成,分发给应用服务器(Real Server)。它是工作在4层(也就是TCP/IP中的传输层),LVS是基于IP负载均衡技术的IPVS模块来实现的,IPVS实现负载均衡机制有三种,分别是NAT、TUN和DR,详述如下:
VS/NAT: 即(Virtual Server via Network Address Translation)
也就是网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server返回数据给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。
可以看出,在NAT方式下,用户请求和响应报文都必须经过Director Server地址重写,当用户请求越来越多时,调度器的处理能力将称为瓶颈。
VS/TUN :即(Virtual Server via IP Tunneling)
也就是IP隧道技术实现虚拟服务器。它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,此外,对Real Server的地域位置没有要求,可以和Director Server位于同一个网段,也可以是独立的一个网络。因此,在TUN方式中,调度器将只处理用户的报文请求,集群系统的吞吐量大大提高。
VS/DR: 即(Virtual Server via Direct Routing)
也就是用直接路由技术实现虚拟服务器。它的连接调度和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一物理网段上。
回答负载调度算法,IPVS实现在八种负载调度算法,我们常用的有四种调度算法(轮叫调度、加权轮叫调度、最少链接调度、加权最少链接调度)。一般说了这四种就够了,也不会需要你详细解释这四种算法的。你只要把上面3种负载均衡技术讲明白面试官就对这道问题很满意了。接下来你在简单说下与nginx的区别:
LVS的优点:
抗负载能力强、工作在第4层仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;无流量,同时保证了均衡器IO的性能不会受到大流量的影响;
工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat;
应用范围比较广,可以对所有应用做负载均衡;
配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率。
LVS的缺点:
软件本身不支持正则处理,不能做动静分离,这就凸显了Nginx/HAProxy+Keepalived的优势。
如果网站应用比较庞大,LVS/DR+Keepalived就比较复杂了,特别是后面有Windows Server应用的机器,实施及配置还有维护过程就比较麻烦,相对而言,Nginx/HAProxy+Keepalived就简单一点
Nginx的优点:
工作在OSI第7层,可以针对http应用做一些分流的策略。比如针对域名、目录结构。它的正则比HAProxy更为强大和灵活;
Nginx对网络的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势所在;
Nginx安装和配置比较简单,测试起来比较方便;
可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;
Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点;
Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。LNMP现在也是非常流行的web环境,大有和LAMP环境分庭抗礼之势,Nginx在处理静态页面、特别是抗高并发方面相对apache有优势;
Nginx现在作为Web反向加速缓存越来越成熟了,速度比传统的Squid服务器更快,有需求的朋友可以考虑用其作为反向代理加速器;
Nginx的缺点:
Nginx不支持url来检测。
Nginx仅能支持http和Email,这个它的弱势。
Nginx的Session的保持,Cookie的引导能力相对欠缺。
2、redis集群的原理,redis分片是怎么实现的,你们公司redis用在了哪些环境?
笔者回答:reids集群原理:
其实它的原理不是三两句话能说明白的,redis 3.0版本之前是不支持集群的,官方推荐最大的节点数量为1000,至少需要3(Master)+3(Slave)才能建立集群,是无中心的分布式存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。集群可以将数据自动切分(split)到多个节点,当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。
redis分片:
分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集。当数据量大的时候,把数据分散存入多个数据库中,减少单节点的连接压力,实现海量数据存储。分片部署方式一般分为以下三种:
(1)在客户端做分片;这种方式在客户端确定要连接的redis实例,然后直接访问相应的redis实例;
(2)在代理中做分片;这种方式中,客户端并不直接访问redis实例,它也不知道自己要访问的具体是哪个redis实例,而是由代理转发请求和结果;其工作过程为:客户端先将请求发送给代理,代理通过分片算法确定要访问的是哪个redis实例,然后将请求发送给相应的redis实例,redis实例将结果返回给代理,代理最后将结果返回给客户端。
(3)在redis服务器端做分片;这种方式被称为“查询路由”,在这种方式中客户端随机选择一个redis实例发送请求,如果所请求的内容不再当前redis实例中它会负责将请求转交给正确的redis实例,也有的实现中,redis实例不会转发请求,而是将正确redis的信息发给客户端,由客户端再去向正确的redis实例发送请求。
redis用在了哪些环境:
java、php环境用到了redis,主要缓存有登录用户信息数据、设备详情数据、会员签到数据等
3、你会怎么统计当前访问的IP,并排序?
笔者回答:统计用户的访问IP,用awk结合uniq、sort过滤access.log日志就能统计并排序好。一般这么回答就够了,当然你还可以说出其它方式来统计,这都是你的加分项。
4、你会使用哪些虚拟化技术?
笔者回答:vmware vsphere及kvm,我用得比较多的是vmware vsphere虚拟化,几本上生产环境都用的vmware vsphere,kvm我是用在测试环境中使用。vmware 是属于原生架构虚拟化技术,也就是可直接在硬件上运行。kvm属于寄居架构的虚拟化技术,它是依托在系统之上运行。vmware vcenter
管理上比较方便,图形管理界面功能很强大,稳定性强,一般比较适合企业使用。KVM管理界面稍差点,需要管理人员花费点时间学习它的维护管理技术。
5、假如有人反应,调取后端接口时特别慢,你会如何排查?
笔者回答:其实这种问题都没有具体答案,只是看你回答的内容与面试官契合度有多高,能不能说到他想要的点上,主要是看你排查问题的思路。我是这么说的:问清楚反应的人哪个服务应用或者页面调取哪个接口慢,叫他把页面或相关的URL发给你,首先,最直观的分析就是用浏览器按F12,看下是哪一块的内容过慢(DNS解析、网络加载、大图片、还是某个文件内容等),如果有,就对症下药去解决(图片慢就优化图片、网络慢就查看内网情况等)。其次,看后端服务的日志,其实大多数的问题看相关日志是最有效分析,最好用tail -f 跟踪一下日志,当然你也要点击测试来访问接口日志才会打出来。最后,排除sql,,找到sql去mysql执行一下,看看时间是否很久,如果很久,就要优化SQL问题了,expain一下SQL看看索引情况啥的,针对性优化。数据量太大的能分表就分表,能分库就分库。如果SQL没啥问题,那可能就是写的逻辑代码的问题了,一行行审代码,找到耗时的地方改造,优化逻辑。
6、mysql数据库用的是主从读写分离,主库写,从库读,假如从库无法读取了、或者从库读取特别慢,你会如何解决?
笔者回答:这个问题笔者觉得回答的不太好,对mysql比较在行的朋友希望能给点建议。以解决问题为前提条件,先添加从库数量,临时把问题给解决,然后抓取slow log ,分析sql语句,该优化就优化处理。慢要不就是硬件跟不上,需要升级;要不就是软件需要调试优化,等问题解决在细化。
7、cpu单核和多核有啥区别?
笔者回答:很少有面试官会问这样的问题,即然问到了,也要老实回答。还好笔者之前了解过CPU,我是这么说的:双核CPU就是能处理多份任务,顺序排成队列来处理。单核CPU一次处理一份任务,轮流处理每个程序任务。双核的优势不是频率,而是对付同时处理多件事情。单核同时只能干一件事,比如你同时在后台BT下载,前台一边看电影一边拷贝文件一边QQ。
8、机械磁盘和固态硬盘有啥区别?
笔者回答:我擦,啥年代了,还问磁盘的问题,这面试官有点逗啊。那也要回答啊:
HDD代表机械硬盘,SSD代表固态硬盘。首先,从性能方面来说,固态硬盘几乎完胜机械硬盘,固态硬盘的读写速度肯定要快机械硬盘,因为固态硬盘和机械硬盘的构造是完全不同的(具体的构造就没必要解释了)。其次,固态盘几乎没有噪音、而机械盘噪音比较大。还有就是,以目前的市场情况来看,一般机械盘容量大,价格低;固态盘容量小,价格偏高。但是企业还是首选固态盘。
9、说一下用过哪些监控系统?
笔者回答:这个监控的问题又问到了,笔者在2018年1月4号也被问到类似这样的问题,笔者曾经用过zabbix、nagios、 cacit等。但是在这次面试中只说用过zabbix和nagios。说完了之后,面试官就让我说一下这两个监控有啥区别:
从web功能及画图来讲:
Nagios简单直观,报警与数据都在同一页面, 红色即为问题项。Nagios web端不要做任何配置。 Nagios需要额外安装插件,且插件画图不够美观。
Zabbix监控数据与报警是分开的,查看问题项需要看触发器,查看数据在最新数据查看。而且zabbix有很多其它配置项, zabbix携带画图功能,且能手动把多个监控项集在一个图中展示。
从监控服务来讲:
Nagios自带的监控项很少。对一些变动的如多个分区、多个网卡进行监控时需要手动配置。
Zabbix自带了很多监控内容,感觉zabbix一开始就为你做了很多事,特别是对多个分区、多个网卡等自动发现并进行监控时,那一瞬间很惊喜,很省心的感觉。
从批量配置和报警来讲:
Nagios对于批量监控主机,需要用脚本在server端新增host,并拷贝service文件。 Nagios用脚本来修改所有主机的services文件,加入新增服务。
Zabbix在server端配置自动注册规则,配置好规则后,后续新增client端不需要对server端进行操作。 Zabbix只需手动在模板中新增一监控项即可。
总体来讲:
Nagios要花很多时间写插件,Zabbix要花很多时间探索功能。
Nagios更易上手,Nagios两天弄会,Zabbix两周弄会。
Zabbix画图功能比Nagios更强大
Zabbix对于批量监控与服务更改,操作更简洁;Nagios如果写好自动化脚本后,也很简单,问题在于写自动化脚本很费神。
10、给你一套环境,你会如何设计高可用、高并发的架构?
笔者回答:如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的SLB+ECS+RDS这套标准的高可用、高并发的架构。对外服务直接上SLB负载均衡技术,由阿里的SLB分发到后端的ECS主机;ECS主机部署多台,应用拆分在不同的ECS主机上,尽量细分服务。数据库用RDS高可用版本(一主一备的经典高可用架构)、或者用RDS金融版(一主两备的三节点架构)。在结合阿里其它的服务就完全OK,业务量上来了,主机不够用了,直横向扩容ECS主机搞定。
如果这套环境托管在IDC,那么你就要从硬件、软件(应用服务)双面去考虑了。硬件要达到高可用、高并发公司必须买多套网络硬件设备(比如负载设备F5、防火墙、核心层交换、接入层交换)都必须要冗余,由其是在网络设计上,设备之间都必须有双线连接。设备如果都是跑的单机,其中一个设备挂了,你整个网络都瘫痪了,就谈不上高可用、高并发了。其次在是考虑应用服务了,对外服务我会采用成熟的开源方案LVS+Keepalived或者Nginx+Keepalived,缓存层可以考虑redis集群及Mongodb集群,中间件等其它服务可以用kafka、zookeeper,图片存储可以用fastDFS或MFS,如果数据量大、又非常多,那么可采用hadoop这一套方案。后端数据库可采用 “主从+MHA”。这样一套环境下来是绝对满足高可用、高并发的架构
② JAVA前端开发的学习路线是怎样的
给你整理了一些java的知识点,一共分为六个阶段,273个技能点,第一阶段、第二阶段、第三阶段、第四阶段是必须要掌握的,很多机构忽悠人,就只学到第四阶段,第五阶段和第六阶段就是高薪、高职的保障,就说说想高薪必须得把后面两个阶段的给掌握了,老铁你慢慢看。
第一阶段:java基本功修炼
1.认识计算机硬件
2.计算机组成原理
3.计算机软件知识
4.计算机网络知识
5.常用网络应用操作
6.认识计算机病毒
7.逻辑训练
8.初识Java
9.变量和数据类型
10.选择结构
11.循环结构for
12.循环结构do-while
13.循环结构while
14.多重循环及程序调试
15.循环进阶
16.一维数组及经典应用
17.二维数组
18.认识类与对象
19.方法及方法重载
20.封装与继承
21.方法重写与多态
22.项目实战-汽车租赁系统
23.抽象类和接口
24.异常
25.项目实战-QuickHit
26.Java中的集合类型
27.List集合
28.Set集合
29.HashMap集合
30.Iterator
31.Collections算法类及常用方法
32.enum
33.包装类及装箱拆箱
34.String、StringBuffer类常用方法操作字符串
35.Date、Calendar
36.Math类常用方法
37.IO/NIO
38.字节输入流(InputStream、FileInputStream、BufferedInputStream)
39.字节输出流(OutputStream、FileOutputStream、BufferedOutputStream)
40.字符输入流(Reader、InputStreamReader、FileReader BufferedReader)
41.字节输出流(Writer、OutputStreamWriter、FileWriter、BufferedWriter)
42.文件复制
43.Serialize、Deserialize
44.职场晋升力:四象限时间管理与精力管理
45.多线程(Thread、Runnable)
46.ThreadLifeCycle
47.线程的调度
48.线程的同步和死锁
49.ThreadPool
50.职场晋升力:团队合作
51.Socket(TCP、UDP)
52.XML概念、优势、规范
53.XML中特殊字符的处理
54.使用DOM读取、添加、删除、解析 XML数据
第二阶段:javaweb开发
55.搭建和配置MySQL数据库
56.数据库增、删、查、改语句
57.事务
58.视图
59.数据库备份与恢复
60.数据库用户管理
61.数据库设计
62.项目实战-银行ATM存取款机系统
63.走进 HTML和CSS
64.列表表格及表单美化
65.CSS 高级操作
66.Bootstrap
67.CSS 组件
68.JavaScript面向对象
69.JavaScript判断、循环
70.JavaScript闭包
71.JavaScript语法
72.Bootstrap综合案例
73.HTML5、CSS3
74.jQuery基础
75.jQuery基本操作
76.jQuery事件与特效
77.jQuery Ajax
78.jQuery插件
79.搭建Web 环境初识JSP
80.JSP九大内置对象
81.JSP实现数据传递和保存
82.JDBC
83.单例模式、工厂模式
84.MVC、三层模式
85.Commons-fileupload、CKEditor
86.分页查询
87.EL 与 JSTL
88.Servlet与Filter
89.Listener与MVC
90.Ajax 与 jQuery
91.jQuery的Ajax交互扩展
92.项目实战—使用Ajax技术改进新闻发布系统
93.反射
94.Linux系统的安装
95.在Linux中管理目录和文件
96.在Linux中管理用户和权限
97.在Linux服务器环境下安装软件和部署项目
98.职场晋升力:职场沟通
第三阶段: 企业级框架开发
99. MyBatis 环境搭建
100. SQL 映射文件
101. 动态SQL
102. MyBatis 框架原理
103.SpringIOC
104.构造注入、依赖注入、注解
105. Spring 整合MyBatis(SqlSessionTemplate、MapperFactoryBean、事务
处理)
106. Spring 数据源(属性文件、JNDI)、Bean 作用域
107. Spring 框架的运行原理
108.SpringMVC 体系概念
109.SpringMVC 之数据绑定、数据效验、
110.SpringMVC 之视图及视图解析
111.SpringMVC 之文件上传、本地化解析
112.SpringMVC 之静态资源处理、请求拦截器、异常处理
113.Oracle数据库环境搭建、安装
114.Oracle数据库 SQL、分页、备份、还原
115.Hibernate 概念、依赖
116.HQL查询语言
117.Hibernate 中配置关联映射
118.HQL连接查询与 Hibernate注解
119.Struts2概念、依赖
120.Struts2配置
121.OGNL表达式
122.Struts2拦截器
123.SSH框架整合
124.使用Maven构建项目
125.使用Struts2实现Ajax
126.Jsoup网络爬虫
127.多线程网络爬虫
128.反爬及反反爬策略
129.通用爬虫设计
130.Echart图表分析
131.IKAnalyzer分词
132.企业框架项目实战-代理商管理系统
133.企业框架项目实战-SL 会员商城
134.企业框架项目实战-会员管理系统
135.企业框架项目实战-互联网招聘信息采集分析平台
第四阶段: 前后端分离开发
136.GitHub
137.Git基础(checkout、pull、commit、push、merge等)
138.Git进阶(多分支协作)
139.GitLab
140.IDEA的使用
141.Maven介绍(概念、仓库、构建、命令)
142.使用Maven构建WEB项目
143.使用Maven构建多模块项目
144.使用Maven搭建私服仓库
145.Scrum框架介绍(三个角色、三个工件、四个会议)
146.ScrumTeam组建团队
147.产品需求和用户故事
148.每日立会
149.使用敏捷-Scrum方式开发管理实战
150.前后端分离、分布式集群架构、垂直架构
151.SSM(SpringMVC+Spring+MyBatis)整合实战
152.Git、Maven私服Nexus
153.第三方接入技术(微信、阿里)
154.MySQL电商实战
155.Redis(缓存服务)
156.搜索引擎-Solr
157.集成APIDoc工具-Swagger
158.图片自动化处理:Tengine+LUA+GraphicsMagic
159.手机、邮箱注册
160.单点登录 Token
161.OAuth2.0认证
162.Jsoup网络爬虫(多线程爬虫/代理 IP爬虫)
163.ExecutorService线程池
164.IK中文分词
165.Postman
166.ReactJS
167.webpack
168.职场晋升力:简历撰写
169.程序猿面试宝典之项目面试
170.大型互联网旅游电商项目实战-爱旅行
第五阶段: 分布式微服架构开发
171.SpringBoot环境搭建
172.SpringBoot常用技能
173.SpringBoot整合Redis
174.SpringBoot整合Mybatis
175.微服务架构及架构设计
176.消息队列
ActiveMQRabbitMQ
177.分布式事务
178.分布式锁 Redis-setnx
179.Zookeeper注册中心
180.基于 ActiveMQ实现高并发
181.Docker环境搭建
182.Docker镜像加速
183.Docker容器管理
184.Docker镜像管理
185.Docker容器文件备份
186.Dockerfile
187.Docker私服仓库
188.真实互联网高并发电商项目实战-双十一抢购
189.可视化监控 Portainer
190.DockerCompose 容器编排
191.DockerCompose扩容、缩容
192.DockerSwarm集群编排
193.Jenkins安装、插件配置
194.Jenkins配置普通任务
195.Jenkins配置管道任务
196.Jenkins自动发布服务
197.Spring CloudEureka
198.Spring CloudFeign
199.Spring CloudRibbon
200.Spring CloudZuul
201.Spring CloudConfig
202.Spring CloudHystrix
203.Spring CloudSleuth
204.Spring BootAdmin
205.Eureka注册原理探秘
206.SpringCloud 大坑解读
207.Zipkin
208.Zipkin整合RabbitMQ
209.Zipkin整合MySQL
210.ELK日志收集
211.Kafka
212.Elasticsearch映射管理
213.Elasticsearch查询/复合查询
214.Elasticsearch集群/集群规划
215.Elasticsearch聚合
216.Elasticsearch集群监控
217.Elasticsearch插件
(Head/BigDesk)
218.Mycat读写分离
219.Mycat一主多从
220.Mycat多主多从
221.Mycat数据分片
222.Redis
223.Redis-Redlock
224.Elasticsearch环境搭建
225.Elasticsearch客户端
226.Elasticsearch索引管理
227.Elasticsearch文档管理
228.Mycat集群
229.Jmeter 并发测试
230.Jmeter 生成测试报告
231.微信登录
232.微信支付
233.支付宝支付
234.网络地图
235.Sonar本地检测
236.Sonar+Jenkins线上检测
237.CI/CD
238.SpringBoot改造爱旅行项目实战
239.大型互联网票务类电商项目实战-大觅网
240.ES6概念(les、const)
241.ES6对象和数组
242.ES6函数扩展
243.VUE环境搭建
244.VUE.JS指令
245.VUE 交互
246.VUE 实例生命周期
247.VUE 组件
248.VUE项目环境配置及单文件组件
249.VUE 路由
第六阶段:cc服务
250. Spring Cloud Gateway
251. Consul
252. Nacos
253. Eureka、Consu、lNacos、Zookeeper 对比分析
254. Prometheus + Grafana
255. ES 分布式存储原理
256. NoSQL 数据库解决方案(Redis、MongoDB)
257. OAuth2.0 认证( authorization code 模式)
258. OAuth2.0 认证( implicit 模式)
259. OAuth2.0 认证( resource owner password credentials 模式)
260.OAuth2.0认证( clientcredentials模式)
261.NAS/FastDFS分布式文件存储
262.Python基础
263.Python爬虫
264. 大数据及 Hadoop 概述
265. 分布式文件系统 HDFS
266. 分布式计算框架MapRece
267. 分布式列式数据库 HBase
268. Hadoop 综合应用
269. 面试大局观
270. 职业规划
271. 项目面试
272. 具体业务场景化解决方案
273. 更多技术专题持续增加中
有不清楚的可以继续问我!
③ 分布式存储有哪些
问题一:当前主流分布式文件系统有哪些?各有什么优缺点 目前几个主流的分布式文件系统除GPFS外,还有PVFS、Lustre、PanFS、GoogleFS等。
1.PVFS(Parallel Virtual File System)项目是Clemson大学为了运行Linux集群而创建的一个开源项目,目前PVFS还存在以下不足:
1)单一管理节点:只有一个管理节点来管理元数据,当集群系统达到一定的规模之后,管理节点将可能出现过度繁忙的情况,这时管理节点将成为系统瓶颈;
2)对数据的存储缺乏容错机制:当某一I/O节点无法工作时,数据将出现不可用的情况;
3)静态配置:对PVFS的配置只能在启动前进行,一旦系统运行则不可再更改原先的配置。
2.Lustre文件系统是一个基于对象存储的分布式文件系统,此项目于1999年在Carnegie Mellon University启动,Lustre也是一个开源项目。它只有两个元数据管理节点,同PVFS类似,当系统达到一定的规模之后,管理节点会成为Lustre系统中的瓶颈。
3.PanFS(Panasas File System)是Panasas公司用于管理自己的集群存储系统的分布式文件系统。
4.GoogleFS(Google File System)是Google公司为了满足公司内部的数据处理需要而设计的一套分布式文件系统。
5.相对其它的文件系统,GPFS的主要优点有以下三点:
1)使用分布式锁管理和大数据块策略支持更大规模的集群系统,文件系统的令牌管理器为块、inode、属性和目录项建立细粒度的锁,第一个获得锁的客户将负责维护相应共享对象的一致性管理,这减少了元数据服务器的负担;
2)拥有多个元数据服务器,元数据也是分布式,使得元数据的管理不再是系统瓶颈;
3)令牌管理以字节作为锁的最小单位,也就是说除非两个请求访问的是同一文件的同一字节数据,对于数据的访问请求永远不会冲突.
问题二:分布式存储是什么?选择什么样的分布式存储更好? 分布式存储系统,是将数据分散存储在多 *** 立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
联想超融合ThinkCloud AIO超融合云一体机是联想针对企业级用户推出的核心产品。ThinkCloud AIO超融合云一体机实现了对云管理平台、计算、网络和存储系统的无缝集成,构建了云计算基础设施即服务的一站式解决方案,为用户提供了一个高度简化的一站式基础设施云平台。这不仅使得业务部署上线从周缩短到天,而且与企业应用软件、中间件及数据库软件完全解耦,能够有效提升企业IT基础设施运维管理的效率和关键应用的性能
问题三:什么是分布式存储系统? 就是将数据分散存储在多 *** 立的设备上
问题四:什么是分布式数据存储 定义:
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式架构发展,基于关系型的分布式数据库在保留了传统数据库的数据模型和基本特征下,从集中式存储走向分布式存储,从集中式计算走向分布式计算。
特点:
1.高可扩展性:分布式数据库必须具有高可扩展性,能够动态地增添存储节点以实现存储容量的线性扩展。
2 高并发性:分布式数据库必须及时响应大规模用户的读/写请求,能对海量数据进行随机读/写。
3. 高可用性:分布式数据库必须提供容错机制,能够实现对数据的冗余备份,保证数据和服务的高度可靠性。
问题五:分布式文件系统有哪些主要的类别? 分布式存储在大数据、云计算、虚拟化场景都有勇武之地,在大部分场景还至关重要。munity.emc/message/655951 下面简要介绍*nix平台下分布式文件系统的发展历史:
1、单机文件系统
用于操作系统和应用程序的本地存储。
2、网络文件系统(简称:NAS)
基于现有以太网架构,实现不同服务器之间传统文件系统数据共享。
3、集群文件系统
在共享存储基础上,通过集群锁,实现不同服务器能够共用一个传统文件系统。
4、分布式文件系统
在传统文件系统上,通过额外模块实现数据跨服务器分布,并且自身集成raid保护功能,可以保证多台服务器同时访问、修改同一个文件系统。性能优越,扩展性很好,成本低廉。
问题六:分布式文件系统和分布式数据库有什么不同 分布式文件系统(dfs)和分布式数据库都支持存入,取出和删除。但是分布式文件系统比较暴力,可以当做key/value的存取。分布式数据库涉及精炼的数据,传统的分布式关系型数据库会定义数据元组的schema,存入取出删除的粒度较小。
分布式文件系统现在比较出名的有GFS(未开源),HDFS(Hadoop distributed file system)。分布式数据库现在出名的有Hbase,oceanbase。其中Hbase是基于HDFS,而oceanbase是自己内部实现的分布式文件系统,在此也可以说分布式数据库以分布式文件系统做基础存储。
问题七:分布式存储有哪些 华为的fusionstorage属于分布式 您好,很高兴能帮助您,首先,FusionDrive其实是一块1TB或3TB机械硬盘跟一块128GB三星830固态硬盘的组合。我们都知道,很多超极本同样采用了混合型硬盘,但是固态硬盘部分的容量大都只有8GB到32GB之间,这个区间无法作为系统盘来使用,只能作
问题八:linux下常用的分布式文件系统有哪些 这他妈不是腾讯今年的笔试题么
NFS(tldp/HOWTO/NFS-HOWTO/index)
网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS。
NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS, 用户和程序可以象访问本地文件一样访问远端系统上的文件。它的好处是:
1、本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。
2、用户不必在每个网络上机器里面都有一个home目录。home目录可以被放在NFS服务器上并且在网络上处处可用。
3、诸如软驱、CDROM、和ZIP之类的存储设备可以在网络上面被别的机器使用。可以减少整个网络上的可移动介质设备的数量。
开发语言c/c++,可跨平台运行。
OpenAFS(openafs)
OpenAFS是一套开放源代码的分布式文件系统,允许系统之间通过局域网和广域网来分享档案和资源。OpenAFS是围绕一组叫做cell的文件服务器组织的,每个服务器的标识通常是隐藏在文件系统中,从AFS客户机登陆的用户将分辨不出他们在那个服务器上运行,因为从用户的角度上看,他们想在有识别的Unix文件系统语义的单个系统上运行。
文件系统内容通常都是跨cell复制,一便一个硬盘的失效不会损害OpenAFS客户机上的运行。OpenAFS需要高达1GB的大容量客户机缓存,以允许访问经常使用的文件。它是一个十分安全的基于kerbero的系统,它使用访问控制列表(ACL)以便可以进行细粒度的访问,这不是基于通常的Linux和Unix安全模型。开发协议IBM Public,运行在linux下。
MooseFs(derf.homelinux)
Moose File System是一个具备容错功能的网路分布式文件统,它将数据分布在网络中的不同服务器上,MooseFs通过FUSE使之看起来就 是一个Unix的文件系统。但有一点问题,它还是不能解决单点故障的问题。开发语言perl,可跨平台操作。
pNFS(pnfs)
网络文件系统(Network FileSystem,NFS)是大多数局域网(LAN)的重要的组成部分。但NFS不适用于高性能计算中苛刻的输入书橱密集型程序,至少以前是这样。NFS标准的罪行修改纳入了Parallel NFS(pNFS),它是文件共享的并行实现,将传输速率提高了几个数量级。
开发语言c/c++,运行在linu下。
googleFs
据说是一个比较不错的一个可扩展分布式文件系统,用于大型的,分布式的,对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能,它可以给大量的用户提供性能较高的服务。google自己开发的。
问题九:分布式存储都有哪些,并阐述其基本实现原理 神州云科 DCN NCS DFS2000(简称DFS2000)系列是面向大数据的存储系统,采用分布式架构,真正的分布式、全对称群集体系结构,将模块化存储节点与数据和存储管理软件相结合,跨节点的客户端连接负载均衡,自动平衡容量和性能,优化集群资源,3-144节点无缝扩展,容量、性能岁节点增加而线性增长,在 60 秒钟内添加一个节点以扩展性能和容量。
问题十:linux 分布式系统都有哪些? 常见的分布式文件系统有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。
GFS(Google File System)
--------------------------------------
Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。
下面分布式文件系统都是类 GFS的产品。
HDFS
--------------------------------------
Hadoop 实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。 Hadoop是Apache Lucene创始人Doug Cutting开发的使用广泛的文本搜索库。它起源于Apache Nutch,后者是一个开源的网络搜索引擎,本身也是Luene项目的一部分。Aapche Hadoop架构是MapRece算法的一种开源应用,是Google开创其帝国的重要基石。
Ceph
---------------------------------------
是加州大学圣克鲁兹分校的Sage weil攻读博士时开发的分布式文件系统。并使用Ceph完成了他的论文。
说 ceph 性能最高,C++编写的代码,支持Fuse,并且没有单点故障依赖, 于是下载安装, 由于 ceph 使用 btrfs 文件系统, 而btrfs 文件系统需要 Linux 2.6.34 以上的内核才支持。
可是ceph太不成熟了,它基于的btrfs本身就不成熟,它的官方网站上也明确指出不要把ceph用在生产环境中。
Lustre
---------------------------------------
Lustre是一个大规模的、安全可靠的,具备高可用性的集群文件系统,它是由SUN公司开发和维护的。
该项目主要的目的就是开发下一代的集群文件系统,可以支持超过10000个节点,数以PB的数据量存储系统。
目前Lustre已经运用在一些领域,例如HP SFS产品等。
④ 数据自动化运维应该注意哪些事项
一、基础数据概况
CMDB中文是配置管理数据库,存储与管理企业IT架构中设备的各种配置信息,与未来的IT运维管理标准化和流程化紧密关联,并且支持流程的运转。运维管理平台创建初期或初版中的CMDB更多是偏向IT资产管理,我们在这里定义的IT资产管理,暂时抛除公司个人使用的普通PC机。
日志主要存储CMDB中涉及到服务器或是其它设备的日志信息。
DB主要是所有IT系统的数据库信息,包括运维管理系统本身的数据库。由于数据库的重要性,所以在基础数据中单独一个模块管理数据库,包括生产数据库、测试数据库、开发数据库。数据库的日志放在日志模块进行统一管理,监控和备份。
知识库主要存储日常运维管理中发生的事件、问题以及一些经典问题的解决和常用的谨败戚解决方案,主要起到运维管理辅助的功能。
二、基础数据三要素
基础数据要求完整、准确、实时,这三个特性缺一不可。
1.完整性
完整性,要求在数据采集整理阶段,要一一梳理,不能有遗漏。任何一个设备的疏漏都将会导致未来出现问题。例如最近的勒索病毒在防范上需要给服务器升级打补丁,这个时候就是根据服务器清单一一对照,升级。如果有遗漏落下的服务器未及时打补丁而导致病毒入侵,后果将很严重。那么,如何做到完整性呢?大致可以分为以下几步:
文档库也包括一些企业或是部门的规章制度,与供应商的合同条文等。主要是涉及到IT系统文档的一个存放和查阅的地方。
运维标准和运维流程的文档一定是必不可少的。因为运维自动化的前提就是运维的标准化和流程化。如果没有明确的标准和规范的流程,运维自动化就只能一直停留在测试环境的假想空间中。
总结
基础数据在整个运维管理中起到基础、奠基的重要作用,也是做运维管理平台的第一步和以后每一步的重要依据。一定要舍得投入时间、人力等来建立起完整、准确、实时的基础数据。打好地基,以后运维的每一步都将有条不紊地循序渐进,终将建设成属于运维的高楼大厦。