最后
关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:
- Java基础部分
- 算法与编程
- 数据库部分
- 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=7070
dubbo.jetty.port=8180
dubbo.jetty.directory=/data/dubbo/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
dubbo.log4j.file=logs/dubbo-monitor-simple.log
dubbo.log4j.level=WARN
参考上面改,然后bin
下有一个start.sh
脚本,启动即可,访问后浏览http://localhost:8180
(端口号要跟配置里一致)
服务调用次数的统计:
服务之间的依赖关系:
注1:官网的监控是把所有监控数据(主要是统计数据和表图数据)保存到服务器磁盘上的,运行时间久了,硬盘可能会撑满,要注意及时清理(就是配置文件里面配置的3个目录下)。
注2:监控数据也并非实时统计的,所以第1次部署成功后马上去看统计数据,可能没有,随便跑一个service provider/service consumer的用例,然后等一会儿就可以了。
三、dubbo-monitor-x
oschina
上的开源项目,(为了与dubbox
里的dubbo-monitor
子项目名称上分开,在后面加了-x
),其中的开发者『马金凯』,也是dubbox
的作者之一。
不过,这个版本好象有点bug
,charts
上图表展示时会报错,通过跟代码,发现是sql
的问题,已经在个人fork
的分支上修复,有兴趣的可以参考。
注:与官网的监控存储方案不同,dubbo-monitor-x
是把数据保存在mysql
里的,参考README.md
很容易搞定部署。
此外,该版本还有一个mongodb
的分支,见:dubbo-monitor-mongo
(推荐使用)
四、dubbo keeper
这是托管在git上的开源项目,从github
用户信息上的邮箱后缀看,可能是阿里云的人发起的,与前面的项目不同,这个项目把管理+监控
集成在一起了,而且存储方案除了mysql
,还支持mongodb
,lucene
,不过好像项目没做完,只覆盖了dubbo-admin
官方功能的90%左右(比如:添加路由功能就没有),如果这个项目逐渐完善了,个人觉得最有前途。
不过,该项目部署略复杂:
如果决定用mysql
存储,先执行根目录下的install-mysql.sh
然后在target
目录下,dubbokeeper/target/mysql-dubbokeeper-server/mysql-server/conf
修改如下配置信息:
dubbo.application.name=mysql-monitor
dubbo.application.owner=bieber
dubbo.registry.address=zookeeper://localhost:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20884
monitor.collect.interval=100
#usered netty4
dubbo.provider.transporter=netty4
#mysql
dubbo.monitor.mysql.url=jdbc:mysql://default:3306/dubbokeeper
dubbo.monitor.mysql.username=root
dubbo.monitor.mysql.password=123456
dubbo.monitor.mysql.pool.max=10
dubbo.monitor.mysql.pool.min=10
主要是zk
及mysql
的连接信息,以及端口号,然后执行上一级目录../bin
下的start-mysql.sh
启动监控数据的存储服务(即:mysql-dubbokeeper-server
本身就是一个dubbo
服务,用于保存监控数据)。
dubbokeeper/target/mysql-dubbokeeper-ui
这个下面的war
包扔到tomcat
或jetty
部署即可(这个才是真正的管理+监控 UI
),如果启动失败,检查dubbokeeper/dubbokeeper-ui/src/main/resources/dubbo.properties
配置是否正确,如果不对,改正确了,再重新打包部署。
这个项目可以很方便的看各项目的依赖关系图,以及每个服务的调用次数等信息,可惜没有关键的QPS
数据。
问题:这几套方案统计出来的数据,对于同样的用例,都不一样,也是醉了,不知道哪家的更准,看个人喜好吧。
下面推荐几种搭配:
- 官方的
dubbo-admin
+ 韩都的dubbo-monitor-x
; - 全官方的
dubbo-admin
+dubbo-monitor-simple
; dubbokeeper
一套;
总结
我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。
这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。
大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:
希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!
sdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**