2024年最全分布式部署 Zabbix 监控平台(2),Java程序员面试笔试真题

写在最后

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?

就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。

最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java经典面试问题(含答案解析).pdf和一份网上搜集的“Java程序员面试笔试真题库.pdf”(实际上比预期多花了不少精力),包含分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货!

由于篇幅有限,为了方便大家观看,这里以图片的形式给大家展示部分的目录和答案截图!

Java经典面试问题(含答案解析)

阿里巴巴技术笔试心得

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

[root@mysql ~]# yum -y install mariadb mariadb-server mariadb-libs mariadb-devel # 安装 mariadb 服务

[root@mysql ~]# systemctl start mariadb # 开启mariadb数据库

[root@mysql ~]# mysql_secure_installation # 数据库初始化设置

Enter current password for root (enter for none): # 直接回车

Set root password? [Y/n] y # 是否设置root密码

Remove anonymous users? [Y/n] n # 是否移除匿名用户

Disallow root login remotely? [Y/n] n # 是否不允许root远程登录

Remove test database and access to it? [Y/n] n # 是否移除测试数据库

Reload privilege tables now? [Y/n] y # 是否重载数据库表

[root@mysql ~]# mysql -uroot -p123123

MariaDB [(none)]> grant all on . to root@‘%’ identified by ‘123456’;

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit

在这里插入图片描述

2.配置 Nginx+PHP 服务


192.168.1.2 上操作

1)安装 Nginx

[root@nginx_php ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel

[root@nginx_php ~]# ls

anaconda-ks.cfg libmcrypt-2.5.7.tar.gz nginx-1.10.3.tar.gz php-5.6.36.tar.gz

[root@nginx_php ~]# tar xf nginx-1.10.3.tar.gz -C /usr/src/

[root@nginx_php ~]# cd /usr/src/nginx-1.10.3/

[root@nginx_php nginx-1.10.3]# useradd -s /sbin/nologin nginx

[root@nginx_php nginx-1.10.3]# ./configure \

–prefix=/usr/local/nginx \

–with-http_dav_module \

–with-http_stub_status_module \

–with-http_addition_module \

–with-http_sub_module \

–with-http_flv_module \

–with-http_mp4_module \

–with-pcre \

–with-http_ssl_module \

–with-http_gzip_static_module \

–user=nginx --group=nginx && make && make install

创建软链接优化执行路径

[root@nginx_php nginx-1.10.3]# cd

[root@nginx_php ~]# ln -s /usr/local/nginx/sbin/* /usr/local/bin/

2)安装 PHP

[root@nginx_php ~]# yum -y install make apr* autoconf automake curl-devel gcc gcc-c++ openssl openssl-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* libtool* libxml2 libxml2-devel patch libcurl-devel bzip2-devel freetype-devel

[root@nginx_php ~]# tar zxf libmcrypt-2.5.7.tar.gz -C /usr/src/

[root@nginx_php ~]# cd /usr/src/libmcrypt-2.5.7/

[root@nginx_php libmcrypt-2.5.7]# ./configure \

–prefix=/usr/local/libmcrypt && make && make install

[root@nginx_php libmcrypt-2.5.7]# cd

[root@nginx_php ~]# tar zxf php-5.6.36.tar.gz -C /usr/src/

[root@nginx_php ~]# cd /usr/src/php-5.6.36/

[root@nginx_php php-5.6.36]# ./configure \

–prefix=/usr/local/php5.6 \

–with-config-file-path=/etc \

–with-mysql=mysqlnd \

–with-pdo-mysql=mysqlnd \

–with-mysqli=mysqlnd \

–with-gd \

–with-iconv \

–with-libxml-dir=/usr \

–with-mhash \

–with-mcrypt \

–with-config-file-scan-dir=/etc/php.d \

–with-bz2 \

–with-zlib \

–with-freetype-dir \

–with-png-dir \

–with-jpeg-dir \

–enable-xml \

–enable-bcmath \

–enable-shmop \

–enable-sysvsem \

–enable-inline-optimization \

–enable-mbregex \

–enable-fpm \

–enable-mbstring \

–enable-ftp \

–enable-gd-native-ttf \

–with-openssl \

–enable-pcntl \

–enable-sockets \

–with-xmlrpc \

–enable-zip \

–enable-soap \

–without-pear \

–with-gettext \

–enable-session \

–with-mcrypt=/usr/local/libmcrypt \

–with-curl

[root@nginx_php php-5.6.36]# make && make install

[root@nginx_php php-5.6.36]# cp php.ini-production /etc/php.ini

3.修改 PHP 配置文件


[root@nginx_php php-5.6.36]# vim /etc/php.ini

修改:

202 short_open_tag = On # 支持短标签

363 expose_php = Off # 禁止显示 PHP 版本

372 max_execution_time = 300 # PHP 脚本最大执行时间

382 max_input_time = 300 # 以秒为单位对通过 POST | GET 以及 PUT 方式接收数据进行限制

660 post_max_size = 16M # 上传文件大小限制

702 always_populate_raw_post_data = -1

936 date.timezone = Asia/Shanghai # 时区设置为上海

1811 mbstring.func_overload = 0

4.启动脚本


[root@nginx_php php-5.6.36]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # 复制启动脚本

[root@nginx_php php-5.6.36]# chmod +x /etc/init.d/php-fpm # 添加可执行权限

[root@nginx_php php-5.6.36]# chkconfig --add php-fpm # 添加为系统服务

[root@nginx_php php-5.6.36]# cd

5.修改 PHP-fpm 配置文件


[root@nginx_php ~]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf

[root@nginx_php ~]# vim /usr/local/php5.6/etc/php-fpm.conf

25 pid = run/php-fpm.pid # PHP 进程位置

149 user = nginx # 运行用户

150 group = nginx # 运行组

164 listen = 127.0.0.1:9000 # PHP 监听 IP 和端口

241 pm.max_children = 300 # 子进程最大数

246 pm.start_servers = 10 # 启动时的进程数

251 pm.min_spare_servers = 10 # 保证空闲进程数最小值. 如果空闲进程小于此值. 则创建新的子进程

256 pm.max_spare_servers = 50 # 保证空闲进程数最大值. 如果空闲进程大于此值. 则进行清理

[root@nginx_php ~]# /etc/init.d/php-fpm start # 开启 PHP 服务

[root@nginx_php ~]# netstat -anpt | grep php-fpm # 查看端口是否开启

在这里插入图片描述

让 Nginx 支持 PHP

[root@nginx_php ~]# cd /usr/local/nginx/conf/

[root@nginx_php conf]# rm -rf nginx.conf

[root@nginx_php conf]# vim nginx.conf

user nginx;

worker_processes 4;

error_log logs/error.log;

pid logs/nginx.pid;

events {

use epoll;

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - r e m o t e u s e r [ remote_user [ remoteuser[time_local] “$request” ’

'$status b o d y b y t e s s e n t " body_bytes_sent " bodybytessent"http_referer" ’

‘“ h t t p u s e r a g e n t " " http_user_agent" " httpuseragent""http_x_forwarded_for”’;

access_log logs/access.log main;

sendfile on;

keepalive_timeout 65;

server {

listen 80;

server_name localhost;

charset utf-8;

location / {

root html;

index index.php index.html index.htm;

}

location ~ .php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

}

[root@nginx_php conf]# nginx -t # 检查 Nginx 主配置文件是否正确

[root@nginx_php conf]# nginx # 启动

[root@nginx_php conf]# netstat -anpt | grep 80 # 查看端口是否开启

在这里插入图片描述

6.测试 LNMP


[root@nginx_php ~]# vim /usr/local/nginx/html/test1.php

<?php phpinfo() ?>

[root@nginx_php ~]# vim /usr/local/nginx/html/test2.php

<?php $link=mysqli_connect('192.168.1.3','root','123456'); if($link) echo "恭喜你,数据库连接成功了!!"; mysqli_close($link); ?>

在这里插入图片描述

在这里插入图片描述

三、部署 Zabbix 监控平台

===================================================================================

1.在 MySQL 中导入 Zabbix 所需的数据库


[root@mysql ~]# mysql -u root -p123123

MariaDB [(none)]> create database zabbix character set utf8;

MariaDB [(none)]> grant all on zabbix.* to zabbix@‘192.168.1.%’ identified by ‘zabbix’;

MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by ‘zabbix’;

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit

在这里插入图片描述

[root@mysql ~]# ls

anaconda-ks.cfg zabbix-4.2.6.tar.gz

[root@mysql ~]# tar zxf zabbix-4.2.6.tar.gz -C /usr/src/

[root@mysql ~]# cd /usr/src/zabbix-4.2.6/

[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql

[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql

[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

在这里插入图片描述

2.安装 Zabbix_Server 服务


[root@zabbix ~]# yum -y install createrepo

[root@zabbix ~]# ls

anaconda-ks.cfg zabbix-4.2.6.tar.gz zabbix_rpm.tar.gz

[root@zabbix ~]# tar zxf zabbix_rpm.tar.gz -C /mnt

[root@zabbix ~]# createrepo /mnt/zabbix_rpm

[root@zabbix ~]# cat < /etc/yum.repos.d/zabbix.repo

[zabbix]

name=zabbix

baseurl=file:///mnt/zabbix_rpm

enabled=1

gpgcheck=0

END

在这里插入图片描述

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

g-blog.csdnimg.cn/20201219212346254.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjkwMjM5Ng==,size_16,color_FFFFFF,t_70)

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

[外链图片转存中…(img-leL9TUbj-1715104166364)]

[外链图片转存中…(img-wwqhZ40i-1715104166364)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值