精华内容
下载资源
问答
  • web服务器常见配置搭建详解(超详细)

    千次阅读 2019-11-02 11:59:35
    本博客借鉴一些写的比较好的博客,进行归纳总结,整理了一篇比较详细的服务器常见配置搭建教程 一来是和大家一起分享,二来也是作为自己的学习笔记记录一下。 温馨提示: 篇幅较长,请分阶段选择性查看。觉得不错,...

    前言:

    本博客借鉴一些写的比较好的博客,进行归纳总结,整理了一篇比较详细的服务器常见配置搭建教程
    一来是和大家一起分享,二来也是作为自己的学习笔记记录一下。

    温馨提示:

    篇幅较长,请分阶段选择性查看。觉得不错,可以收藏一下,方便后期查看哦。

    目录

    体系:jdk + tomcat + Nginx + MySQL + Redis + Zookeeper

    • jdk1.8 安装搭建

    • tomcat 安装配置

    • Nginx 安装配置

    • MySQL5.7 安装配置

    • Redis 安装配置

    • zookeeper 安装配置

    • arthas工具安装配置

    JDK1.8安装配置

    Linux安装JDK完整步骤

    1、检查一下系统中的jdk版本

    [root@localhost software]# java -version
    

    显示:

    openjdk version "1.8.0_102"
    OpenJDK Runtime Environment (build 1.8.0_102-b14)
    OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
    

    2、检测jdk安装包

    [root@localhost software]# rpm -qa | grep java
    

    显示:

    java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
    python-javapackages-3.4.1-11.el7.noarch
    tzdata-java-2016g-2.el7.noarch
    javapackages-tools-3.4.1-11.el7.noarch
    java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
    java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
    java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
    

    3、卸载openjdk

    [root@localhost software]# rpm -e --nodeps tzdata-java-2016g-2.el7.noarch
    [root@localhost software]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
    [root@localhost software]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
    [root@localhost software]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
    [root@localhost software]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
    

    或者使用

    [root@localhost jvm]# yum remove *openjdk*
    

    之后再次输入rpm -qa | grep java 查看卸载情况:

    [root@localhost software]# rpm -qa | grep java
    python-javapackages-3.4.1-11.el7.noarch
    javapackages-tools-3.4.1-11.el7.noarch
    

    4、安装新的jdk

    首先到jdk官网上下载你想要的jdk版本,下载完成之后将需要安装的jdk安装包放到Linux系统指定的文件夹下,并且命令进入该文件夹下:

    [root@localhost software]# ll
    total 252664
    -rw-r--r--. 1 root root  11830603 Jun  9 06:43 alibaba-rocketmq-3.2.6.tar.gz
    -rw-r--r--. 1 root root  43399561 Jun  9 06:42 apache-activemq-5.11.1-bin.tar.gz
    -rwxrw-rw-. 1 root root 185540433 Apr 21 09:06 jdk-8u131-linux-x64.tar.gz
    -rw-r--r--. 1 root root   1547695 Jun  9 06:44 redis-3.2.9.tar.gz
    -rw-r--r--. 1 root root  16402010 Jun  9 06:40 zookeeper-3.4.5.tar.gz
    

    解压 jdk-8u131-linux-x64.tar.gz安装包

    [root@localhost software]# mkdir -p /usr/lib/jvm
    [root@localhost software]# tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm
    

    5、设置环境变量

    [root@localhost software]# vim /etc/profile
    

    在最前面添加:

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131  
    export JRE_HOME=${JAVA_HOME}/jre  
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
    export  PATH=${JAVA_HOME}/bin:$PATH
    

    6、执行profile文件

    [root@localhost software]# source /etc/profile
    

    这样可以使配置不用重启即可立即生效。

    7、检查新安装的jdk

    [root@localhost software]# java -version
    

    显示:

    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    

    到此为止,整个安装过程结束。


    Tomcat服务器安装与配置

    首先在/usr/local/下建立一个tomcat的文件夹

    cd /usr/local/
    
    mkdir tomcat
    
    cd tomcat/
    

    在网上下载tomcat的包,我现在的是tomcat8,也可根据实际需要到官网上获取下载链接。

    wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz
    

    然后解压缩

    tar zxvf apache-tomcat-8.5.20.tar.gz
    

    将tomcat中的/bin/catalina.sh 脚本 拷贝到init.d下,这样是为了比较方面的启动tomcat,在任务地方通过service tomcat start 就可以启动tomcat

    cp -p /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
    
    vim /etc/init.d/tomcat
    

    在第二行加入以下内容:

    # chkconfig: 112 63 37
    # description: tomcat server init script
    # Source Function Library
    . /etc/init.d/functions
    
    JAVA_HOME=你的jdk路径
    CATALINA_HOME=tomcat安装路径
    

    例如:我的是

    JAVA_HOME=/usr/java/jdk1.8.0_144/
    
    CATALINA_HOME=/usr/local/tomcat
    

    保存文件后执行以下操作

    chmod 755 /etc/init.d/tomcat
    chkconfig --add tomcat
    chkconfig tomcat on
    

    启动tomcat:

    service tomcat start
    

    可在浏览器输入http://你的ip:8080,tomcat默认端口是8080,如果成功启动的话会看到tomcat主界面

    配置
    Linux下tomcat配置和windows下是一样的,这里讲下配置tomcat服务的访问端口:

    cd /usr/local/tomcat/conf/
    vim server.xml
    

    找到:

    <Connector port="8080" protocol="HTTP/1.1"
    

    修改为:

    <Connector port="你想要的端口" protocol="HTTP/1.1"
    

    重启tomcat

    service tomcat stop
    
    service tomcat start
    

    这样tomcat就配置成功了


    Linux Nginx安装配置

    • 安装依赖
    yum install gcc
    yum install pcre-devel
    yum install zlib zlib-devel
    yum install openssl openssl-devel
    
    //一键安装上面四个依赖
    yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
    
    • 下载nginx的tar包
    //创建一个文件夹
    cd /usr/local
    mkdir nginx
    cd nginx
    //下载tar包
    wget http://nginx.org/download/nginx-1.13.7.tar.gz
    tar -xvf nginx-1.13.7.tar.g
    
    • 安装nginx
    //进入nginx目录
    cd /usr/local/nginx
    //执行命令
    ./configure
    //执行make命令
    make
    //执行make install命令
    make install
    
    • Nginx常用命令
    //测试配置文件
    安装路径下的/nginx/sbin/nginx -t
    //启动命令
    安装路径下的/nginx/sbin/nginx
    //停止命令
    安装路径下的/nginx/sbin/nginx -s stop
    或者 : nginx -s quit
    //重启命令
    安装路径下的/nginx/sbin/nginx -s reload
    //查看进程命令
    ps -ef | grep nginx
    //平滑重启
    kill -HUP Nginx主进程号
    
    • 配置防火墙
    //打开防火墙文件
    sudo vim /etc/sysconfig/iptables
    //新增行  开放80端口
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
    //保存退
    //重启防火墙
    sudo service iptables restart
    Nginx虚拟域名配置及测试验证
    //编辑nginx.conf
    sudo vim /usr/local/nginx/conf/nginx.conf
    //增加行 
    include vhost/*.conf
    //保存退出
    //在/usr/local/nginx/conf目录新建vhost文件夹
    mkdir vhost
    //创建每个域名的配置
    sudo vim jimisun.com.conf
    //节点中增加入响应的配置 端口转发  或者访问文件系统
    
    • Nginx启动
    //进入nginx安装目录
    cd sbin
    sudo ./nginx
    测试访问
    http://ip地址
    
    • Nginx负载均衡配置

    Nginx集反向代理和负载均衡于一身,在配置文件中修改配就可以实现

    首先我们打开配置文件

    [root@localhost nginx]# vim conf/nginx.conf
    

    每一个server就是一个虚拟主机,我们有一个当作web服务器来使用

    listen 80;代表监听80端口
    server_name xxx.com;代表外网访问的域名
    location / {};代表一个过滤器,/匹配所有请求,我们还可以根据自己的情况定义不同的过滤,比如对静态文件js、css、image制定专属过滤
    root html;代表站点根目录
    index index.html;代表默认主页
    

    这样配置完毕我们输入域名就可以访问到该站点了。

    负载均衡功能往往在接收到某个请求后分配到后端的多台服务器上,那我们就需要upstream{}块来配合使用

    upstream xxx{};upstream模块是命名一个后端服务器组,组名必须为后端服务器站点域名,内部可以写多台服务器ip和port,还可以设置跳转规则及权重等等
    ip_hash;代表使用ip地址方式分配跳转后端服务器,同一ip请求每次都会访问同一台后端服务器
    server;代表后端服务器地址
    
    server{};server模块依然是接收外部请求的部分
    server_name;代表外网访问域名
    location / {};同样代表过滤器,用于制定不同请求的不同操作
    proxy_pass;代表后端服务器组名,此组名必须为后端服务器站点域名
    
    server_name和upstream{}的组名可以不一致,server_name是外网访问接收请求的域名,upstream{}的组名是跳转后端服务器时站点访问的域名
    
    • 示例
    配置Nginx负载均衡
    
    vi /nignx目录/nginx.conf
    
    #添加下面这段 backend可以自由命名
    
    upstream backend {
    
       #添加服务器到负载均衡
    
         server 192.168.1.252;
    
                 server 192.168.1.251 weight=2;#设置该服务器在负载均衡中的权重  默认为1;越高则访问的频次越大
    
                 server 192.168.1.252 down;  #表示down掉这台服务器,不参与负载均衡
    
                 server 192.168.1.247 backup; #备用服务器 当其他服务器很忙或者down掉之后才会启动这台的
    
             }
    
    #配置参数
    #max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
    
    #fail_timeout:max_fails次失败后,暂停的时间。
    
     
    
    server {
    
            listen       80;
    
            server_name  localhost;
    
     
    
            location / {
    
                 #反向代理的地址
    
                 proxy_pass http://backend;     
    
            }
    
    }
    

    Linux MySQL安装

    将下载的压缩包复制到linux服务器/usr/local/路径下(下载地址https://dev.mysql.com/downloads/mysql/,进去下载默认是最新的,找到Looking for previous GA versions?,点击就可以找到以前的版本,Linux-Generic是通用版的意思)

    1、进入压缩包存放目录

    [root@localhost ~]# cd /usr/local
    

    2、解压压缩包

    [root@localhost local]# tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
    

    3、修改文件夹名字

    将解压后的文件夹修改名字,文件夹名字改为mysql
    

    4、检查并创建用户和用户组

      [root@localhost local]# cat /etc/group | grep mysql
      [root@localhost local]# cat /etc/passwd |grep mysql
      [root@localhost local]# groupadd mysql
      [root@localhost local]# useradd -r -g mysql mysql
    

    5、创建data文件夹

    某个版本之后就没有data文件夹了
    
    [root@localhost local]mkdir /usr/local/mysql/data
    

    6、授权目录和用户

    
    [root@localhost /]# cd /usr/local/ 
    [root@localhost local]# chown -R mysql:mysql mysql/
    [root@localhost local]# chmod -R 755 mysql/
    

    7、安装并初始化(重要*)

    执行下面之前去/etc/目录下查看是否有my.cnf配置文件,如果有,删除或者修改名字备份起来!不然会出现各种PID或者SOCK有关的问题

    某个版本之后这个步骤是下面这样,以前是mysql_install_db,datadir就是安装路径,basedir就是根目录

    [root@localhost local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
    

    执行完上面之后,检查是否有Error,有的话及时解决。

    [root@localhost local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
    2019-07-18T07:38:20.300936Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server      option (see documentation for more details).
    2019-07-18T07:38:21.037889Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2019-07-18T07:38:21.124063Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2019-07-18T07:38:21.194242Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been start     ed. Generating a new UUID: 0448b7a0-a92f-11e9-ac91-fa163e17d701.
    2019-07-18T07:38:21.195622Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2019-07-18T07:38:21.196412Z 1 [Note] A temporary password is generated for root@localhost: n2ta1yWih9-/
    

    最后一行会有默认生成的密码,记下来

    A temporary password is generated for root@localhost: n2ta1yWih9-/
    

    8、复制启动脚本到资源目录

    [root@localhost local]# cd mysql
    [root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    

    提示是否覆盖的话,可能之前装过没删除,输入y覆盖

    9、增加mysqld服务控制脚本执行权限

    [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
    10、将mysqld服务加入到系统服务
    [root@localhost mysql]# chkconfig --add mysqld
    

    11、检查mysqld服务是否已经生效

    [root@localhost mysql]# chkconfig --list mysqld
    mysqld          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
    

    12、启动mysql

    [root@localhost mysql]# service mysqld start
    

    显示SUCCESS的话,到这里就已经启动成功了

    12-2、启动mysql失败
    提示找不到mysql命令的话

    [root@localhost mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin
    

    13、登录mysql
    失败的话看下面

    [root@localhost mysql]# service mysqld start
    Starting MySQL.2019-07-18T07:41:24.268830Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
    The server quit without updating PID file (/var/lib/mysql/z[失败]pid).
    [root@localhost mysql]# mkdir /var/lib/mysql
    [root@localhost mysql]# service mysqld start
    Starting MySQL.The server quit without updating PID file (/[失败]b/mysql/localhost.pid).
    [root@localhost mysql]# mysql -uroot -p
    Enter password:
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    13-2、登录mysql失败
    失败信息:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    
    [root@localhost mysql]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
    然后返回13步重新执行
    

    14、(在mysql命令行模式下)修改密码

    下面最后面的root就是密码,修改完之后退出重新登录一次试试,有些在修改密码的时候执行下面的会报错,可以参考https://blog.csdn.net/q258523454/article/details/84555847,或者百度一下,很容易解决
    
    mysql> flush privileges;
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
    mysql> flush privileges;
    mysql> quit
    
    [root@localhost mysql]# mysql -uroot -p
    

    15、配置3306端口
    开启防火墙(如果以前已经安装过mysql的,这个一般都已经设置好了,我的是新建的虚拟机,所以没有设置)

    配置方法:打开/etc/sysconfig/iptables文件,找到22端口(这个是默认配置好的),复制多一行在下面,把22改成3306就行,记住,不要复制到最后一行,有些竟然没有iptables的文件?这是可以生成的,百度一下就行,有些防火墙文件不是这个,可能要先取消或者设置,之前百度过,忘了

    当然下面这个步骤也可以用vim命令进行编辑

    修改完保存之后执行命令行重启防火墙

    [root@localhost mysql] service iptables restart
    

    有些Linux版本的重启如下

    [root@localhost mysql] systemctl restart iptables.service
    

    16、测试连接
    本地使用Navicat连接测试,填写完点击连接测试

    显示错误信息不允许连接1130 - Host ‘192.168.114.1’ is not allowed to connect to this MySQL server

    解决方法:(如果还没登录mysql,记得登录先)

    mysql> flush privileges;
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    mysql> flush privileges;
    

    执行完再次连接测试

    还是报错1045 - Access denied for user ‘root’@‘192.168.114.1’ (using password:YES),不过这次结果是密码错误,原因是因为未授权,第一次启动是这样的,解决如下:

    mysql> grant all privileges on *.* to 'root'@'%' identified by 'root';
    mysql> flush privileges;
    

    再去连接测试就行了,到这里就已经安装完毕,可以使用了


    Redis安装配置

    1.可以通过官网下载 地址:http://download.redis.io/releases/redis-3.0.0.tar.gz
     2.使用linux wget命令

    wget http://download.redis.io/releases/redis-3.0.0.tar.gz
    

    将redis-3.0.0.tar.gz拷贝到/usr/local下

    cp redis-3.0.0.rar.gz /usr/local
    

    解压源码

    tar -zxvf redis-3.0.0.tar.gz
    

    进入解压后的目录进行编译

    cd /usr/local/redis-3.0.0
    

    安装到指定目录 如 /usr/local/redis

    make PREFIX=/usr/local/redis install
    

    redis.conf是redis的配置文件,redis.conf在redis源码目录。
    拷贝配置文件到安装目录下
    进入源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下

    cd /usr/local/redis
    cp /usr/local/redis-3.0.0/redis.conf  /usr/local/redis/bin
    

    进入安装目录bin下

    cd /usr/local/redis/bin
    此时我们看到的目录结构是这样的

    redis-benchmark redis性能测试工具
    redis-check-aof AOF文件修复工具
    redis-check-rdb RDB文件修复工具
    redis-cli redis命令行客户端
    redis.conf redis配置文件
    redis-sentinal redis集群管理工具
    redis-server redis服务进程
    
    • 启动redis
    • 前端模式启动
      直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法
    ./redis-server
    
    • 后端模式启动
      修改redis.conf配置文件, daemonize yes 以后端模式启动
    vim /usr/local/redis/bin/redis.conf
    
    执行如下命令启动redis:
    
    cd /usr/local/redis
    ./bin/redis-server ./redis.conf
    连接redis
    
    /usr/local/redis/bin/redis-cli
    
    • 关闭redis
      强行终止redis进程可能会导致redis持久化数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,命令为:
    cd /usr/local/redis
    ./bin/redis-cli shutdown
    强行终止redis
    
    pkill redis-server
    让redis开机自启
    
    vim /etc/rc.local
    //添加
    /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf
    至此redis已经全部安装完,后面我会分享redis.conf 详细配置以及说明。
    
    • 配置
     修改 redis.conf
     vim redis.conf
     修改内容如下:
    
    #修改为守护模式
    daemonize yes
    
    #设置进程锁文件
    pidfile /usr/local/redis/redis.pid
    
    #端口
    port 6379
    
    #客户端超时时间
    timeout 300
    
    #日志级别
    loglevel debug
    
    #日志文件位置
    logfile /usr/local/redis/log-redis.log
    
    #设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
    databases 8
    
    ##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
    #save <seconds> <changes>
    
    #Redis默认配置文件中提供了三个条件:
    save 900 1
    save 300 10
    save 60 10000
    
    #指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,
    
    #可以关闭该#选项,但会导致数据库文件变的巨大
    rdbcompression yes
    
    #指定本地数据库文件名
    dbfilename dump.rdb
    
    #指定本地数据库路径
    dir /usr/local/redis/db/
    
    #指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能
    #会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有
    #的数据会在一段时间内只存在于内存中
    appendonly no
    #指定更新日志条件,共有3个可选值:
    #no:表示等操作系统进行数据缓存同步到磁盘(快)
    #always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
    #everysec:表示每秒同步一次(折衷,默认值)
    appendfsync everysec
      
    
    5. 修改权限为当前使用者 xxx
    chown -R xxxx /usr/local/redis 
    
    6.启动服务
     cd /usr/local/redis
    ./bin/redis-server ./etc/redis.conf
    
    7.命令行访问服务
    cd /usr/local/redis
    ./bin/redis-cli
    
    • 总结Linux 、Redis 操作常用命令

    Linux:

    cd /usr 从子文件夹进入上级文件夹usr
    cd local 从父到子
    mv /A /B 将文件A移动到B
    vi usr/local/redis/redis.conf 编辑redis.conf 文件
    :wq 保存修改,并退出
    

    Redis:

    Redis-server /usr..../redis.conf 启动redis服务,并指定配置文件
    Redis-cli 启动redis 客户端
    Pkill redis-server 关闭redis服务
    Redis-cli shutdown 关闭redis客户端
    Netstat -tunpl|grep 6379 查看redis 默认端口号6379占用情况
    
    1. Redis的配置

    4.1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程

    daemonize no
    

    4.2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定

    pidfile /var/run/redis.pid
    

    4.3. 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字

    port 6379
    

    4.4. 绑定的主机地址

    bind 127.0.0.1
    

    4.5.当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

    timeout 300
    

    4.6. 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose

    loglevel verbose
    

    4.7. 日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null

    logfile stdout
    

    4.8. 设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id

    databases 16
    

    4.9. 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合

    save <seconds> <changes>
    
    Redis默认配置文件中提供了三个条件:
    
    save 900 1
    
    save 300 10
    
    save 60 10000
    
    分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
    

    4.10. 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大

    rdbcompression yes
    

    4.11. 指定本地数据库文件名,默认值为dump.rdb

    dbfilename dump.rdb
    

    4.12. 指定本地数据库存放目录

    dir ./
    

    4.13. 设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步

    slaveof <masterip> <masterport>
    

    4.14. 当master服务设置了密码保护时,slav服务连接master的密码

    masterauth <master-password>
    

    4.15. 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH 命令提供密码,默认关闭

    requirepass foobared
    

    4.16. 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

    maxclients 128
    

    4.17. 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区

    maxmemory <bytes>
    

    4.18. 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no

    appendonly no
    

    4.19. 指定更新日志文件名,默认为appendonly.aof

     appendfilename appendonly.aof
    

    4.20. 指定更新日志条件,共有3个可选值:
    no:表示等操作系统进行数据缓存同步到磁盘(快)
    always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
    everysec:表示每秒同步一次(折衷,默认值)

    appendfsync everysec
    

    4.21. 指定是否启用虚拟内存机制,默认值为no,简单的介绍一下,VM机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中(在后面的文章我会仔细分析Redis的VM机制)

     vm-enabled no
    

    4.22. 虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享

     vm-swap-file /tmp/redis.swap
    

    4.23. 将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据 就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0

     vm-max-memory 0
    

    4.24. Redis swap文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,vm-page-size是要根据存储的 数据大小来设定的,作者建议如果存储很多小对象,page大小最好设置为32或者64bytes;如果存储很大大对象,则可以使用更大的page,如果不 确定,就使用默认值

     vm-page-size 32
    

    4.25. 设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,,在磁盘上每8个pages将消耗1byte的内存。

     vm-pages 134217728
    

    4.26. 设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4

     vm-max-threads 4
    

    4.27. 设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启

    glueoutputbuf yes
    

    4.28. 指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法

    hash-max-zipmap-entries 64
    
    hash-max-zipmap-value 512
    

    4.29. 指定是否激活重置哈希,默认为开启(后面在介绍Redis的哈希算法时具体介绍)

    activerehashing yes
    

    4.30. 指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件

    include /path/to/local.conf
    

    zookeeper

    1. 先进入/usr/local/目录,也可以是其他的目录:
    [root@localhost /]# cd /usr/local
    
    1. zookeeper安装包可以在官网下载。

    也可以在后面这个地址下载

    http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
    

    如果链接打不开,就先打开 http://mirror.bit.edu.cn/apache/zookeeper , 再选择版本。

    在此目录下载zookeeper安装包:

    [root@localhost local]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
    
    1. 解压:
    [root@localhost local]# tar -zxvf zookeeper-3.4.13.tar.gz
    

    三、编辑配置文件
    1.进入conf目录:

    [root@localhost local]# cd zookeeper-3.4.13/conf
    
    1. 将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名)
    [root@localhost conf]# cp  zoo_sample.cfg  zoo.cfg
    
    1. 进入zoo.cfg文件进行编辑
    [root@localhost conf]# vim zoo.cfg
    
    1. 按 i 进入编辑模式,修改以下内容:
    dataDir=/tmp/zookeeper/data
    dataLogDir=/tmp/zookeeper/log
    
    注意:如果想配置集群的话,请在clientPort下面添加服务器的ip。如
    
    server.1=192.168.180.132:2888:3888
    server.2=192.168.180.133:2888:3888
    
    server.3=192.168.180.134:2888:3888
    

    如果电脑内存比较小,zookeeper还可以设置成伪集群。也就是全部服务器采用同一个ip,但是使用不同的端口。

    1. 在tmp目录创建目录。
    [root@localhost conf]# mkdir /tmp/zookeeper
    
    [root@localhost conf]# mkdir /tmp/zookeeper/data
    [root@localhost conf]# mkdir /tmp/zookeeper/log
    

    6.如果是配置集群,还需要在前面配置过的dataDir路径下新增myid文件

    [root@localhost conf]# cd /tmp/zookeeper/data
    
    [root@localhost data]# touch myid
    [root@localhost data]# vim myid
    

    在data目录下创建文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
    如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.133上,内容就是2。

    四、配置环境变量
    1.上面的操作都完事之后,我们需要配置一下环境变量,配置环境变量的命令如下:

    [root@localhost zookeeper-3.4.13]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.13/
    [root@localhost zookeeper-3.4.13]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
    

    五、启动zookeeper
    1.进入bin目录,并启动zookeep。如果不是在bin目录下执行,启动zookeeper时会报错: bash: ./zkServer.sh: No such file or directory

    注意: ./zkServer.sh start前面的 . 不可忽略。

    [root@localhost local]# cd /usr/local/zookeeper-3.4.13/bin
    [root@localhost bin]# ./zkServer.sh start
    

    2.启动成功效果如下:

    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    

    3.zookeeper的服务端启动后,还需要启动zookeeper的客户端:

    [root@localhost bin]# ./zkCli.sh
    

    如果是连接多个不同的主机节点,可以使用如下命令:

    ./zkCli.sh -server 192.168.180.132:2888
    

    启动成功效果如下:

    Connecting to localhost:2181
    ..........
    ..........
    ..........
    Welcome to ZooKeeper!
    2018-10-25 21:04:54,407 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
    JLine support is enabled
    2018-10-25 21:04:54,471 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
    [zk: localhost:2181(CONNECTING) 0] 2018-10-25 21:04:54,501 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10000712e6f0000, negotiated timeout = 30000
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:None path:null
    

    4.查看状态:

    [root@localhost bin]# ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
    Mode: standalone
    遇到问题怎么解决?
    zookeeper的出错日志会记录在 zookeeper.out。
    
    当前处于哪个目录,执行完zkServer.sh start命令, zookeeper.out就会写在哪个目录。
    
    vim zookeeper.out 可以查看报错信息。然后再搜索解决。
    

    六、zookeeper使用
    通过 ./zkCli.sh 进入客户端后,就可以使用命令来操作zookeeper了。

    1.创建节点

    使用create命令,可以创建一个zookeeper节点。
    
    create [-s]   [-e]  path  data  acl
    
    其中-s表示顺序节点,-e表示临时节点。默认情况下,创建的是持久节点。
    
    path是节点路径,data是节点数据,acl是用来进行权限控制的。
    
    如下:
    
    创建一个叫做/zk-test的节点,内容是"123"
    
    [zk: localhost:2181(CONNECTED) 0] create /zk-test 123
    
    Created /zk-test
    创建/zk-test的子节点book,内容是"233"
    
    [zk: localhost:2181(CONNECTED) 7] create  /zk-test/book  233
    Created /zk-test/book
    

    2.查看节点内容

    使用get命令,可以获取zookeeper指定节点的内容和属性信息。

    如下:

    [zk: localhost:2181(CONNECTED) 1] get /zk-test
    
    123
    cZxid = 0x3a
    ctime = Sun Nov 11 21:50:44 CST 2018
    mZxid = 0x3a
    mtime = Sun Nov 11 21:50:44 CST 2018
    pZxid = 0x3a
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 3
    numChildren = 0
    

    3.查看子节点

    使用ls命令可以查看指定节点下的所有子节点
    
    以下查看根目录下的所有子节点:
    
    [zk: localhost:2181(CONNECTED) 2] ls /
    
    [zk-test, zookeeper]
    查看zk-test节点的子节点:
    
    [zk: localhost:2181(CONNECTED) 3] ls /zk-test
    
    [book]
    

    4.更新节点内容

    使用set命令,更新节点内容。格式为:

    set   path  data
    

    其中的data就是要更新的新内容。

    [zk: localhost:2181(CONNECTED) 4] set /zk-test 456
    
    cZxid = 0x3a
    ctime = Sun Nov 11 21:50:44 CST 2018
    mZxid = 0x3b
    mtime = Sun Nov 11 22:05:20 CST 2018
    pZxid = 0x3a
    cversion = 0
    dataVersion = 1
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 3
    numChildren = 0
    

    在输出的信息中,可以发现,dataVersion的值由原来的0 变成了 1,这是因为刚才的更新操作导致该节点的数据版本也发生变更。

    6.删除节点

    使用delete命令来删除节点,如下:

    [zk: localhost:2181(CONNECTED) 11] delete /zk-test
    
    Node not empty: /zk-test
    

    可以发现,一个节点存在子节点时,无法删除该节点。

    删除子节点/zk-test/book,如下:

    [zk: localhost:2181(CONNECTED) 12] delete /zk-test/book
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:NodeDeleted path:/zk-test/book
    zookeeper中的watcher会监控节点,当子节点发生变化时会发出通知。此时提示子节点 /zk-test/book删除成功。
    
    继续尝试删除节点 /zk-test,
    
    [zk: localhost:2181(CONNECTED) 13] ls /zk-test
    []
    [zk: localhost:2181(CONNECTED) 14] delete /zk-test
    [zk: localhost:2181(CONNECTED) 15] ls /
    []
    

    删除成功。

    Arthas安装

    使用arthas-boot(推荐)
    下载arthas-boot.jar,然后用java -jar的方式启动:

    wget https://alibaba.github.io/arthas/arthas-boot.jar
    java -jar arthas-boot.jar
    

    打印帮助信息:

    java -jar arthas-boot.jar -h
    

    如果下载速度比较慢,可以使用aliyun的镜像:

    java -jar arthas-boot.jar --repo-mirror aliyun --use-http
    

    使用as.sh
    Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可:

    curl -L https://alibaba.github.io/arthas/install.sh | sh
    

    上述命令会下载启动脚本文件 as.sh 到当前目录,你可以放在任何地方或将其加入到 $PATH 中。

    直接在shell下面执行./as.sh,就会进入交互界面。

    也可以执行./as.sh -h来获取更多参数信息。

    展开全文
  • Java知识体系最强总结(2021版)

    万次阅读 多人点赞 2019-12-18 10:09:56
    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同...

    更新于2021-08-13 22:55:12

    欢迎关注微信公众号【技术人成长之路】

    【技术人成长之路】,助力技术人成长!更多精彩文章第一时间在公众号发布哦!

    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽

    整理的Java知识体系主要包括基础知识,工具,并发编程,数据结构与算法,数据库,JVM,架构设计,应用框架,中间件,微服务架构,分布式架构,程序员的一些思考,团队与项目管理,运维,权限,推荐书籍,云计算,区块链等,包含了作为一个Java工程师在开发工作学习中需要用到或者可能用到的绝大部分知识。千里之行始于足下,希望大家根据自己的薄弱点,查缺补漏,根据自己感兴趣的方面多学习,学的精通一点,从现在开始行动起来。路漫漫其修远兮,吾将上下而求索,不管编程开发的路有多么难走,多么艰辛,我们都将百折不挠,不遗余力地去追求和探索

    文章目录

    Java面试总结

    Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章持续更新中…

    序号内容链接地址
    1Java基础知识面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104390612
    2Java集合容器面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104588551
    3Java异常面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104390689
    4并发编程面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104863992
    5JVM面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104390752
    6Spring面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397516
    7Spring MVC面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397427
    8Spring Boot面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397299
    9Spring Cloud面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397367
    10MyBatis面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/101292950
    11Redis面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/103522351
    12MySQL数据库面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104778621
    13消息中间件MQ与RabbitMQ面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104588612
    14Dubbo面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104390006
    15Linux面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104588679
    16Tomcat面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397665
    17ZooKeeper面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397719
    18Netty面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104391081
    19架构设计&分布式&数据结构与算法面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/105870730

    基础知识

    Java概述

    序号内容链接地址
    1Java简介https://thinkwon.blog.csdn.net/article/details/94353575
    2Java发展历程https://thinkwon.blog.csdn.net/article/details/94353653
    3Java语言特点https://thinkwon.blog.csdn.net/article/details/94354013
    4JDK安装与环境变量配置https://thinkwon.blog.csdn.net/article/details/94353907
    5JVM、JRE和JDK的关系https://thinkwon.blog.csdn.net/article/details/101369973
    6Java是编译型还是解释型语言https://thinkwon.blog.csdn.net/article/details/108678327

    基础语法

    大部分已完成

    待整理:

    Java开发必会的反编译知识(附支持对Lambda进行反编译的工具)

    一文读懂什么是Java中的自动拆装箱

    Java的枚举类型用法介绍

    类、枚举、接口、数组、可变参数

    泛型、序列化

    序号内容链接地址
    1Java标识符https://thinkwon.blog.csdn.net/article/details/101637454
    2Java关键字(Java 8版本)https://thinkwon.blog.csdn.net/article/details/101642385
    3Java注释https://thinkwon.blog.csdn.net/article/details/101643185
    4Java访问修饰符https://thinkwon.blog.csdn.net/article/details/101643412
    5Java分隔符https://thinkwon.blog.csdn.net/article/details/101643617
    6Java转义字符https://thinkwon.blog.csdn.net/article/details/101643769
    7Java进制https://thinkwon.blog.csdn.net/article/details/101643936
    8Java流程控制语句https://thinkwon.blog.csdn.net/article/details/101645978
    9Java流程控制语句-顺序结构https://thinkwon.blog.csdn.net/article/details/101644820
    10Java流程控制语句-分支结构https://thinkwon.blog.csdn.net/article/details/101645224
    11Java流程控制语句-循环结构https://thinkwon.blog.csdn.net/article/details/101645757
    12Java表达式https://thinkwon.blog.csdn.net/article/details/101648114
    13Java运算符https://thinkwon.blog.csdn.net/article/details/101649002
    14Java变量https://thinkwon.blog.csdn.net/article/details/101649292
    15Java常量https://thinkwon.blog.csdn.net/article/details/101649446
    16Java数据类型https://thinkwon.blog.csdn.net/article/details/101649568
    17Java反射https://thinkwon.blog.csdn.net/article/details/100128361
    18Java语法糖https://thinkwon.blog.csdn.net/article/details/100103689
    19Java注解https://thinkwon.blog.csdn.net/article/details/100178709
    20JSON简介https://thinkwon.blog.csdn.net/article/details/100642585
    21Properties类简介https://thinkwon.blog.csdn.net/article/details/100667783
    22XML简介https://thinkwon.blog.csdn.net/article/details/100642425
    23YML简介https://thinkwon.blog.csdn.net/article/details/100642870
    24Java8新特性-Lambda表达式https://thinkwon.blog.csdn.net/article/details/100642932
    25Java基础语法https://thinkwon.blog.csdn.net/article/details/94354151

    面向对象

    待整理:

    抽象

    继承、封装、多态

    接口、抽象类、内部类

    序号内容链接地址
    1什么是面向对象https://thinkwon.blog.csdn.net/article/details/100667386

    集合框架

    迭代器、增强for、泛型

    序号内容链接地址
    1Java集合框架总结https://thinkwon.blog.csdn.net/article/details/98844796
    2ArrayList(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/98845119
    3HashMap(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/98845487
    4LinkedHashMap(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/102574293
    5LinkedList(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/102573923
    6TreeMap(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/102571883

    IO流

    待整理:

    File、递归

    字节流、字节缓冲流

    编码表、编码方式、转换流、序列化、序列化流、打印流、commons-io

    网络编程

    网络概述、网络模型

    Socket原理机制

    UDP

    TCP/IP

    协议、OSI 七层协议、HTTP、HTTP2.0、HTTPS

    网络安全

    ​ XSS、CSRF、SQL注入、Hash Dos、脚本注入、漏洞扫描工具、验证码

    ​ DDoS防范、用户隐私信息保护、序列化漏洞

    ​ 加密解密、对称加密、哈希算法、非对称加密

    ​ 服务安全、数据安全、数据备份

    ​ 网络隔离、登录跳板机、非外网分离

    ​ 认证、授权

    常用API

    String、StringBuffer、StringBuilder、正则表达式

    Number、Radom、Math、System、包装类

    Arrays、Collections

    日期时间API

    序号内容链接地址
    1Java7日期时间APIhttps://thinkwon.blog.csdn.net/article/details/110777654
    2史上最全Java7日期时间工具类https://thinkwon.blog.csdn.net/article/details/110779441
    3Java8日期时间APIhttps://thinkwon.blog.csdn.net/article/details/111087199
    4史上最全Java8日期时间工具类https://thinkwon.blog.csdn.net/article/details/111116600

    常用工具类库

    待整理:OkHttp、commons-lang3

    序号内容链接地址
    1HttpClient工具类https://thinkwon.blog.csdn.net/article/details/101391489
    2WGS84地球坐标系,GCJ02火星坐标系,BD09百度坐标系简介与转换https://thinkwon.blog.csdn.net/article/details/101392187
    3Lombok简介、使用、工作原理、优缺点https://thinkwon.blog.csdn.net/article/details/101392808
    4Java几种常用JSON库性能比较https://thinkwon.blog.csdn.net/article/details/94354358

    单元测试

    JUnit

    异常

    序号内容链接地址
    1Java异常总结https://thinkwon.blog.csdn.net/article/details/94346911
    2Java异常架构与异常关键字https://thinkwon.blog.csdn.net/article/details/101676779
    3Java异常处理流程https://thinkwon.blog.csdn.net/article/details/101677638
    4如何选择异常类型https://thinkwon.blog.csdn.net/article/details/94346911
    5Java异常常见面试题https://thinkwon.blog.csdn.net/article/details/101681073
    6Java异常处理最佳实践https://thinkwon.blog.csdn.net/article/details/94347002

    日志

    序号内容链接地址
    1常用日志框架Log4j,Logback,Log4j2性能比较与日志门面SLF4J简介https://thinkwon.blog.csdn.net/article/details/101621135
    2日志作用https://thinkwon.blog.csdn.net/article/details/101619725
    3Apache Log4j2详解https://thinkwon.blog.csdn.net/article/details/95043111
    4Log4j2同步日志,混合日志和异步日志配置详解https://thinkwon.blog.csdn.net/article/details/101625124
    5Log4j2配置文件详解https://thinkwon.blog.csdn.net/article/details/101629302
    6Log4j2的Appenders配置详解https://thinkwon.blog.csdn.net/article/details/101625820
    7Log4j2的Filters配置详解https://thinkwon.blog.csdn.net/article/details/101627162
    8Log4j2的Policy触发策略与Strategy滚动策略配置详解https://thinkwon.blog.csdn.net/article/details/101628222
    9Log4j2的Loggers配置详解https://thinkwon.blog.csdn.net/article/details/101628736

    Java8新特性

    序号内容链接地址
    1Java8新特性-Lambda表达式https://thinkwon.blog.csdn.net/article/details/113764085
    2Java8新特性-Optionalhttps://thinkwon.blog.csdn.net/article/details/113791796
    3Java8新特性-Streamhttps://thinkwon.blog.csdn.net/article/details/113798096
    4Java8新特性-Base64https://thinkwon.blog.csdn.net/article/details/113798575
    5Java8新特性-日期时间APIhttps://thinkwon.blog.csdn.net/article/details/111087199

    工具

    IDEA

    序号内容链接地址
    1IDEA常用配置和常用插件https://thinkwon.blog.csdn.net/article/details/101020481
    2IDEA中Maven依赖下载失败解决方案https://thinkwon.blog.csdn.net/article/details/101312918
    3在IDEA中使用Linux命令https://thinkwon.blog.csdn.net/article/details/106320360

    Eclipse & STS

    序号内容链接地址
    1Eclipse & Spring Tool Suite常用配置https://thinkwon.blog.csdn.net/article/details/101025543

    Maven

    序号内容链接地址
    1Maven简介https://thinkwon.blog.csdn.net/article/details/94346090
    2Maven安装与配置https://thinkwon.blog.csdn.net/article/details/94346569
    3Maven依赖冲突https://thinkwon.blog.csdn.net/article/details/101483020
    4手动安装Maven依赖https://thinkwon.blog.csdn.net/article/details/101483478
    5Maven部署jar包到远程仓库https://thinkwon.blog.csdn.net/article/details/101483769
    6Maven私服Nexus安装与使用https://thinkwon.blog.csdn.net/article/details/94346681

    Docker

    序号内容链接地址
    1使用Docker安装GitLabhttps://thinkwon.blog.csdn.net/article/details/95042797
    2虚拟机和容器有什么不同https://thinkwon.blog.csdn.net/article/details/107476886
    3Docker 从入门到实践系列一 - 什么是Dockerhttps://thinkwon.blog.csdn.net/article/details/107477065
    4Docker 从入门到实践系列二 - Docker 安装https://thinkwon.blog.csdn.net/article/details/117638107
    5Docker 从入门到实践系列三 - Docker 常用命令https://thinkwon.blog.csdn.net/article/details/117638128
    6Docker 从入门到实践系列四 - Docker 容器编排利器 Docker Composehttps://thinkwon.blog.csdn.net/article/details/119511551

    Git

    序号内容链接地址
    1Git简介https://thinkwon.blog.csdn.net/article/details/94346816
    2版本控制https://thinkwon.blog.csdn.net/article/details/101449228
    3Git忽略文件.gitignore详解https://thinkwon.blog.csdn.net/article/details/101447866
    4Git与SVN的区别https://thinkwon.blog.csdn.net/article/details/101449611
    5常用Git命令https://thinkwon.blog.csdn.net/article/details/101450420
    6Git,GitHub与GitLab的区别https://thinkwon.blog.csdn.net/article/details/101470086

    GitLab

    GitKraken

    Navicat

    并发编程

    基础知识

    序号内容链接地址
    1并发编程的优缺点https://thinkwon.blog.csdn.net/article/details/102020811
    2线程的状态和基本操作https://thinkwon.blog.csdn.net/article/details/102027115
    3进程和线程的区别(超详细)https://thinkwon.blog.csdn.net/article/details/102021274
    4创建线程的四种方式https://thinkwon.blog.csdn.net/article/details/102021143

    并发理论

    序号内容链接地址
    1Java内存模型https://thinkwon.blog.csdn.net/article/details/102073578
    2重排序与数据依赖性https://thinkwon.blog.csdn.net/article/details/102073858
    3as-if-serial规则和happens-before规则的区别https://thinkwon.blog.csdn.net/article/details/102074107
    4Java并发理论总结https://thinkwon.blog.csdn.net/article/details/102074440

    并发关键字

    序号内容链接地址
    1Java并发关键字-synchronizedhttps://thinkwon.blog.csdn.net/article/details/102243189
    2Java并发关键字-volatilehttps://thinkwon.blog.csdn.net/article/details/102243670
    3Java并发关键字-finalhttps://thinkwon.blog.csdn.net/article/details/102244477

    Lock体系

    待整理:

    公平锁 & 非公平锁

    乐观锁 & 悲观锁

    可重入锁 & 不可重入锁

    互斥锁 & 共享锁

    死锁

    序号内容链接地址
    1Lock简介与初识AQShttps://thinkwon.blog.csdn.net/article/details/102468837
    2AQS(AbstractQueuedSynchronizer)详解与源码分析https://thinkwon.blog.csdn.net/article/details/102469112
    3ReentrantLock(重入锁)实现原理与公平锁非公平锁区别https://thinkwon.blog.csdn.net/article/details/102469388
    4读写锁ReentrantReadWriteLock源码分析https://thinkwon.blog.csdn.net/article/details/102469598
    5Condition源码分析与等待通知机制https://thinkwon.blog.csdn.net/article/details/102469889
    6LockSupport详解https://thinkwon.blog.csdn.net/article/details/102469993

    并发容器

    序号内容链接地址
    1并发容器之ConcurrentHashMap详解(JDK1.8版本)与源码分析https://thinkwon.blog.csdn.net/article/details/102506447
    2并发容器之ConcurrentLinkedQueue详解与源码分析https://thinkwon.blog.csdn.net/article/details/102508089
    3并发容器之CopyOnWriteArrayList详解https://thinkwon.blog.csdn.net/article/details/102508258
    4并发容器之ThreadLocal详解https://thinkwon.blog.csdn.net/article/details/102508381
    5ThreadLocal内存泄漏分析与解决方案https://thinkwon.blog.csdn.net/article/details/102508721
    6并发容器之BlockingQueue详解https://thinkwon.blog.csdn.net/article/details/102508901
    7并发容器之ArrayBlockingQueue与LinkedBlockingQueue详解https://thinkwon.blog.csdn.net/article/details/102508971

    线程池

    序号内容链接地址
    1线程池ThreadPoolExecutor详解https://thinkwon.blog.csdn.net/article/details/102541900
    2Executors类创建四种常见线程池https://thinkwon.blog.csdn.net/article/details/102541990
    3线程池之ScheduledThreadPoolExecutor详解https://thinkwon.blog.csdn.net/article/details/102542299
    4FutureTask详解https://thinkwon.blog.csdn.net/article/details/102542404

    原子操作类

    序号内容链接地址
    1原子操作类总结https://thinkwon.blog.csdn.net/article/details/102556910

    并发工具

    序号内容链接地址
    1并发工具之CountDownLatch与CyclicBarrierhttps://thinkwon.blog.csdn.net/article/details/102556958
    2并发工具之Semaphore与Exchangerhttps://thinkwon.blog.csdn.net/article/details/102557034

    并发实践

    序号内容链接地址
    1实现生产者消费者的三种方式https://thinkwon.blog.csdn.net/article/details/102557126

    数据结构与算法

    数据结构

    序号内容链接地址
    1红黑树详细分析(图文详解),看了都说好https://thinkwon.blog.csdn.net/article/details/102571535
    1、数组
    2、栈
    3、队列
    4、链表
    5、树
    	二叉树
        完全二叉树
        平衡二叉树
        二叉查找树(BST)
        红黑树
        B,B+,B*树
        LSM 树
    
    字段是不是数据结构
    

    算法

    语言只是编程工具,算法才是编程之魂!

    1、排序算法:快速排序、归并排序、计数排序
    2、搜索算法:回溯、递归、剪枝
    3、图论:最短路径、最小生成树、网络流建模
    4、动态规划:背包问题、最长子序列、计数问题
    5、基础技巧:分治、倍增、二分法、贪心算法
    
    宽度优先搜索
    深度优先搜索
    广度优先
    双指针
    扫描线
    
    朴素贝叶斯
    推荐算法
    

    排序算法

    序号内容链接地址
    1史上最全经典排序算法总结(Java实现)https://thinkwon.blog.csdn.net/article/details/95616819
    2冒泡排序(Bubble Sort)https://thinkwon.blog.csdn.net/article/details/101534473
    3选择排序(Selection Sort)https://thinkwon.blog.csdn.net/article/details/101534721
    4插入排序(Insertion Sort)https://thinkwon.blog.csdn.net/article/details/101537804
    5希尔排序(Shell Sort)https://thinkwon.blog.csdn.net/article/details/101538166
    6归并排序(Merge Sort)https://thinkwon.blog.csdn.net/article/details/101538756
    7快速排序(Quick Sort)https://thinkwon.blog.csdn.net/article/details/101543580
    8堆排序(Heap Sort)https://thinkwon.blog.csdn.net/article/details/101543941
    9计数排序(Counting Sort)https://thinkwon.blog.csdn.net/article/details/101544159
    10桶排序(Bucket Sort)https://thinkwon.blog.csdn.net/article/details/101544356
    11基数排序(Radix Sort)https://thinkwon.blog.csdn.net/article/details/101545529

    LeetCode

    序号内容链接地址
    1LeetCode第1题 两数之和(Two Sum)https://thinkwon.blog.csdn.net/article/details/103113049
    2LeetCode第3题 无重复字符的最长子串(Longest Substring Without Repeating Characters)https://thinkwon.blog.csdn.net/article/details/103113969
    3LeetCode第7题 整数反转(Reverse Integer)https://thinkwon.blog.csdn.net/article/details/103113167
    4LeetCode第9题 回文数(Palindrome Number)https://thinkwon.blog.csdn.net/article/details/103113151
    5LeetCode第13题 罗马数字转整数(Roman to Integer)https://thinkwon.blog.csdn.net/article/details/103113519
    6LeetCode第14题 最长公共前缀(Longest Common Prefix)https://thinkwon.blog.csdn.net/article/details/103113700
    7LeetCode第20题 有效的括号(Valid Parentheses)https://thinkwon.blog.csdn.net/article/details/103113848
    8LeetCode第26题 删除排序数组中的重复项(Remove Duplicates from Sorted Array)https://thinkwon.blog.csdn.net/article/details/103113097

    数据库

    Oracle

    MySQL

    数据库基础知识

    序号内容链接地址
    1MySQL语句分类https://thinkwon.blog.csdn.net/article/details/106610851
    2MySQL插入语句insert into,insert ignore into,insert into … on duplicate key update,replace into-解决唯一键约束https://thinkwon.blog.csdn.net/article/details/106610789
    3MySQL复制表的三种方式https://thinkwon.blog.csdn.net/article/details/106610810
    4MySQL删除表的三种方式https://thinkwon.blog.csdn.net/article/details/106610831
    5MySQL中count(字段) ,count(主键 id) ,count(1)和count(*)的区别https://thinkwon.blog.csdn.net/article/details/106610859

    数据类型

    引擎

    索引

    三大范式

    常用SQL语句

    存储过程与函数

    视图

    MySQL优化

    事务

    数据备份与还原

    Redis

    序号内容链接地址
    1Redis总结https://thinkwon.blog.csdn.net/article/details/99999584
    2Redis使用场景https://thinkwon.blog.csdn.net/article/details/101521497
    3Redis数据类型https://thinkwon.blog.csdn.net/article/details/101521724
    4Redis持久化https://thinkwon.blog.csdn.net/article/details/101522209
    5Redis过期键的删除策略https://thinkwon.blog.csdn.net/article/details/101522970
    6Redis数据淘汰策略https://thinkwon.blog.csdn.net/article/details/101530624
    7Redis与Memcached的区别https://thinkwon.blog.csdn.net/article/details/101530406
    8Redis常见面试题(精简版)https://thinkwon.blog.csdn.net/article/details/103522351
    9Redis中缓存雪崩、缓存穿透等问题的解决方案https://thinkwon.blog.csdn.net/article/details/103402008
    10阿里云Redis开发规范学习总结https://thinkwon.blog.csdn.net/article/details/103400250
    11Redis开发常用规范https://thinkwon.blog.csdn.net/article/details/103401781
    12这可能是最中肯的Redis规范了https://thinkwon.blog.csdn.net/article/details/103401978

    Java虚拟机

    深入理解Java虚拟机

    序号内容链接地址
    1深入理解Java虚拟机-走近Javahttps://thinkwon.blog.csdn.net/article/details/103804387
    2深入理解Java虚拟机-Java内存区域与内存溢出异常https://thinkwon.blog.csdn.net/article/details/103827387
    3深入理解Java虚拟机-垃圾回收器与内存分配策略https://thinkwon.blog.csdn.net/article/details/103831676
    4深入理解Java虚拟机-虚拟机执行子系统https://thinkwon.blog.csdn.net/article/details/103835168
    5深入理解Java虚拟机-程序编译与代码优化https://thinkwon.blog.csdn.net/article/details/103835883
    6深入理解Java虚拟机-高效并发https://thinkwon.blog.csdn.net/article/details/103836167

    架构设计

    高可用架构

    高并发架构

    可伸缩架构

    集群

    设计模式

    常用设计模式

    创建型:
    单例模式、工厂模式、抽象工厂模式

    结构型:
    适配器模式、外观模式、代理模式、装饰器模式

    行为型:
    观察者模式、策略模式、模板模式

    序号内容链接地址
    1设计模式https://thinkwon.blog.csdn.net/article/details/96829572

    创建型模式

    序号内容链接地址
    1抽象工厂模式https://thinkwon.blog.csdn.net/article/details/101382584
    2单例模式https://thinkwon.blog.csdn.net/article/details/101382855
    3工厂模式https://thinkwon.blog.csdn.net/article/details/101383285
    4建造者模式https://thinkwon.blog.csdn.net/article/details/101383401
    5原型模式https://thinkwon.blog.csdn.net/article/details/101383491

    结构型模式

    序号内容链接地址
    1代理模式https://thinkwon.blog.csdn.net/article/details/101384436
    2过滤器模式https://thinkwon.blog.csdn.net/article/details/101384514
    3桥接模式https://thinkwon.blog.csdn.net/article/details/101384584
    4适配器模式https://thinkwon.blog.csdn.net/article/details/101384619
    5外观模式https://thinkwon.blog.csdn.net/article/details/101384676
    6享元模式https://thinkwon.blog.csdn.net/article/details/101384716
    7装饰器模式https://thinkwon.blog.csdn.net/article/details/101384753
    8组合模式https://thinkwon.blog.csdn.net/article/details/101384786

    行为型模式

    序号内容链接地址
    1备忘录模式https://thinkwon.blog.csdn.net/article/details/101383582
    2策略模式https://thinkwon.blog.csdn.net/article/details/101383647
    3迭代器模式https://thinkwon.blog.csdn.net/article/details/101383722
    4访问者模式https://thinkwon.blog.csdn.net/article/details/101383780
    5观察者模式https://thinkwon.blog.csdn.net/article/details/101383872
    6解释器模式https://thinkwon.blog.csdn.net/article/details/101383930
    7空对象模式https://thinkwon.blog.csdn.net/article/details/101384001
    8命令模式https://thinkwon.blog.csdn.net/article/details/101384090
    9模板模式https://thinkwon.blog.csdn.net/article/details/101384138
    10责任链模式https://thinkwon.blog.csdn.net/article/details/101384195
    11中介者模式https://thinkwon.blog.csdn.net/article/details/101384251
    12状态模式https://thinkwon.blog.csdn.net/article/details/101384315

    J2EE模式

    序号内容链接地址
    1MVC模式https://thinkwon.blog.csdn.net/article/details/101381701
    2传输对象模式https://thinkwon.blog.csdn.net/article/details/101382134
    3服务定位器模式https://thinkwon.blog.csdn.net/article/details/101382179
    4拦截过滤器模式https://thinkwon.blog.csdn.net/article/details/101382210
    5前端控制器模式https://thinkwon.blog.csdn.net/article/details/101382247
    6数据访问对象模式https://thinkwon.blog.csdn.net/article/details/101382287
    7业务代表模式https://thinkwon.blog.csdn.net/article/details/101382356
    8组合实体模式https://thinkwon.blog.csdn.net/article/details/101382390

    实践应用

    序号内容链接地址
    1业务复杂=if else?刚来的大神竟然用策略+工厂彻底干掉了他们!https://thinkwon.blog.csdn.net/article/details/102924813

    应用框架

    如何学习一个框架或者技术

    • 是什么,简介,概述

    • 有什么用,用途,使用场景

    • 怎么用,在实际开发中的应用,注意事项

    • 优缺点

    • 框架原理,工作流程,工作原理

    • 常见面试题

    • 源码分析,核心类,核心方法,设计模式

    • 发布博客,在开发和实践中,博客反馈中持续改进

    • 与同事朋友交流,技术论坛,技术分享中持续丰富知识

    常用框架

    • 集成开发工具(IDE):Eclipse、MyEclipse、Spring Tool Suite(STS)、Intellij IDEA、NetBeans、JBuilder、JCreator

    • JAVA服务器:tomcat、jboss、websphere、weblogic、resin、jetty、apusic、apache

    • 负载均衡:nginx、lvs

    • web层框架:Spring MVC、Struts2、Struts1、Google Web Toolkit(GWT)、JQWEB

    • 服务层框架:Spring、EJB

    • 持久层框架:Hibernate、MyBatis、JPA、TopLink

    • 数据库:Oracle、MySql、MSSQL、Redis

    • 项目构建:maven、ant

    • 持续集成:Jenkins

    • 版本控制:SVN、CVS、VSS、GIT

    • 私服:Nexus

    • 消息组件:IBM MQ、RabbitMQ、ActiveMQ、RocketMq

    • 日志框架:Commons Logging、log4j 、slf4j、IOC

    • 缓存框架:memcache、redis、ehcache、jboss cache

    • RPC框架:Hessian、Dubbo

    • 规则引擎:Drools

    • 工作流:Activiti

    • 批处理:Spring Batch

    • 通用查询框架:Query DSL

    • JAVA安全框架:shiro、Spring Security

    • 代码静态检查工具:FindBugs、PMD

    • Linux操作系统:CentOS、Ubuntu、SUSE Linux、

    • 常用工具:PLSQL Developer(Oracle)、Navicat(MySql)、FileZilla(FTP)、Xshell(SSH)、putty(SSH)、SecureCRT(SSH)、jd-gui(反编译)

    Spring

    序号内容链接地址
    1Spring简介、设计理念、优缺点、应用场景https://thinkwon.blog.csdn.net/article/details/102810748
    2Spring模块组成(框架组成、整体架构、体系架构、体系结构)https://thinkwon.blog.csdn.net/article/details/102810819
    3Spring容器中bean的生命周期https://thinkwon.blog.csdn.net/article/details/102866432
    4控制反转(IoC)与依赖注入(DI)详解https://thinkwon.blog.csdn.net/article/details/102912332

    《Spring实战》读书笔记

    序号内容链接地址
    1《Spring实战》读书笔记-第1章 Spring之旅https://thinkwon.blog.csdn.net/article/details/103097364
    2《Spring实战》读书笔记-第2章 装配Beanhttps://thinkwon.blog.csdn.net/article/details/103527675
    3《Spring实战》读书笔记-第3章 高级装配https://thinkwon.blog.csdn.net/article/details/103536621
    4《Spring实战》读书笔记-第4章 面向切面的Springhttps://thinkwon.blog.csdn.net/article/details/103541166
    5《Spring实战》读书笔记-第5章 构建Spring Web应用程序https://thinkwon.blog.csdn.net/article/details/103550083
    6《Spring实战》读书笔记-第6章 渲染Web视图https://thinkwon.blog.csdn.net/article/details/103559672
    7《Spring实战》读书笔记-第7章 Spring MVC的高级技术https://thinkwon.blog.csdn.net/article/details/103562467

    Spring MVC

    MyBatis

    序号内容链接地址
    1MyBatis官方文档https://thinkwon.blog.csdn.net/article/details/100887995
    2MyBatis官方文档-简介https://thinkwon.blog.csdn.net/article/details/100887076
    3MyBatis官方文档-入门https://thinkwon.blog.csdn.net/article/details/100887176
    4MyBatis官方文档-XML 配置https://thinkwon.blog.csdn.net/article/details/100887349
    5MyBatis官方文档-XML 映射文件https://thinkwon.blog.csdn.net/article/details/100887478
    6MyBatis官方文档-动态 SQLhttps://thinkwon.blog.csdn.net/article/details/100887702
    7MyBatis官方文档-Java APIhttps://thinkwon.blog.csdn.net/article/details/100887746
    8MyBatis官方文档-SQL 语句构建器类https://thinkwon.blog.csdn.net/article/details/100887821
    9MyBatis官方文档-日志https://thinkwon.blog.csdn.net/article/details/100887951
    10MyBatis功能架构https://thinkwon.blog.csdn.net/article/details/101295025
    11MyBatis工作原理https://thinkwon.blog.csdn.net/article/details/101293609
    12MyBatis核心类https://thinkwon.blog.csdn.net/article/details/101293216
    13MyBatis面试宝典https://thinkwon.blog.csdn.net/article/details/101292950
    14MyBatis实现一对一,一对多关联查询https://thinkwon.blog.csdn.net/article/details/101322334
    15MyBatis缓存https://thinkwon.blog.csdn.net/article/details/101351212

    MyBatis 源码分析

    序号内容链接地址
    1MyBatis 源码分析 - MyBatis入门https://thinkwon.blog.csdn.net/article/details/114808852
    2MyBatis 源码分析 - 配置文件解析过程https://thinkwon.blog.csdn.net/article/details/114808962
    3MyBatis 源码分析 - 映射文件解析过程https://thinkwon.blog.csdn.net/article/details/115423167
    4MyBatis 源码分析 - SQL 的执行过程https://thinkwon.blog.csdn.net/article/details/115603376
    5MyBatis 源码分析 - 内置数据源https://thinkwon.blog.csdn.net/article/details/116331419
    6MyBatis 源码分析 - 缓存原理https://thinkwon.blog.csdn.net/article/details/116809942
    7MyBatis 源码分析 - 插件机制https://thinkwon.blog.csdn.net/article/details/116809961

    Quartz

    序号内容链接地址
    1Quartz简介https://thinkwon.blog.csdn.net/article/details/109936696

    Hibernate

    Shiro

    Spring Security

    Netty

    搜索引擎

    Lucene/Solr

    Elasticsearch

    ELK

    中间件

    消息中间件

    RabbitMQ

    RocketMQ

    ActiveMQ

    Kafka

    远程过程调用中间件

    Dubbo

    数据访问中间件

    Sharding JDBC

    MyCat

    Web应用服务器

    Tomcat

    待整理:Tomcat各组件作用 Tomcat集群 Tomcat面试题

    序号内容链接地址
    1Win10安装Tomcat服务器与配置环境变量https://thinkwon.blog.csdn.net/article/details/102622905
    2Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项https://thinkwon.blog.csdn.net/article/details/102717537
    3Tomcat与JDK版本对应关系,Tomcat各版本特性https://thinkwon.blog.csdn.net/article/details/102622738
    4Tomcat目录结构https://thinkwon.blog.csdn.net/article/details/102619466
    5Tomcat乱码与端口占用的解决方案https://thinkwon.blog.csdn.net/article/details/102622824
    6Tomcat系统架构与请求处理流程https://thinkwon.blog.csdn.net/article/details/102676442
    7史上最强Tomcat8性能优化https://thinkwon.blog.csdn.net/article/details/102744033

    Nginx

    缓存

    本地缓存

    客户端缓存

    服务端缓存

    ​ web缓存,Redis,Memcached,Ehcache

    其他

    Zookeeper

    微服务与分布式

    Spring Boot

    序号内容链接地址
    1application.yml与bootstrap.yml的区别https://thinkwon.blog.csdn.net/article/details/100007093
    2一分钟了解约定优于配置https://thinkwon.blog.csdn.net/article/details/101703815

    Spring Cloud

    序号内容链接地址
    1Spring Cloud入门-十分钟了解Spring Cloudhttps://thinkwon.blog.csdn.net/article/details/103715146
    2Spring Cloud入门-Eureka服务注册与发现(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103726655
    3Spring Cloud入门-Ribbon服务消费者(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103729080
    4Spring Cloud入门-Hystrix断路器(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103732497
    5Spring Cloud入门-Hystrix Dashboard与Turbine断路器监控(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103734664
    6Spring Cloud入门-OpenFeign服务消费者(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103735751
    7Spring Cloud入门-Zuul服务网关(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103738851
    8Spring Cloud入门-Config分布式配置中心(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103739628
    9Spring Cloud入门-Bus消息总线(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103753372
    10Spring Cloud入门-Sleuth服务链路跟踪(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103753896
    11Spring Cloud入门-Consul服务注册发现与配置中心(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103756139
    12Spring Cloud入门-Gateway服务网关(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103757927
    13Spring Cloud入门-Admin服务监控中心(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103758697
    14Spring Cloud入门-Oauth2授权的使用(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103761687
    15Spring Cloud入门-Oauth2授权之JWT集成(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103763364
    16Spring Cloud入门-Oauth2授权之基于JWT完成单点登录(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103766368
    17Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103769680
    18Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103770879
    19Spring Cloud入门-Seata处理分布式事务问题(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103786102
    20Spring Cloud入门-汇总篇(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103786588

    服务注册发现

    服务配置

    负载均衡

    服务调用

    服务限流

    熔断降级

    网关路由

    服务权限

    链路追踪

    分布式事务

    分布式缓存

    分布式会话

    日志收集

    服务监控

    消息驱动

    数据处理流

    自动化测试与部署

    第三方支持

    分布式协调服务Zookeeper

    程序员的一些思考

    序号内容链接地址
    1程序员写个人技术博客的价值与意义https://thinkwon.blog.csdn.net/article/details/102980571
    2Java知识体系最强总结(2020版)https://thinkwon.blog.csdn.net/article/details/103592572
    3博客之星,有你的鼓励更精彩https://thinkwon.blog.csdn.net/article/details/112517796

    团队与项目管理

    需求调研

    项目管理

    序号内容链接地址
    1Worktile、Teambition与Tower项目管理软件对比https://thinkwon.blog.csdn.net/article/details/106064807

    代码管理

    文档管理

    序号内容链接地址
    1几款常见接口管理平台对比https://thinkwon.blog.csdn.net/article/details/106064883
    2Swagger2常用注解说明https://thinkwon.blog.csdn.net/article/details/107477801

    测试

    Python

    序号内容链接地址
    1Win10安装Python3.9https://thinkwon.blog.csdn.net/article/details/112411897
    2Anaconda安装https://thinkwon.blog.csdn.net/article/details/112412165
    3PyCharm2020.3.2安装https://thinkwon.blog.csdn.net/article/details/112412497
    4PyCharm常用配置和常用插件https://thinkwon.blog.csdn.net/article/details/112412783

    运维

    常规监控

    APM

    持续集成(CI/CD):Jenkins,环境分离

    自动化运维:Ansible,puppet,chef

    测试:TDD 理论,单元测试,压力测试,全链路压测,A/B 、灰度、蓝绿测试

    虚拟化:KVM,Xen,OpenVZ

    容器技术:Docker

    云技术:OpenStack

    DevOps

    操作系统

    计算机操作系统

    计算机原理

    Linux

    CPU

    进程,线程,协程

    CentOS8

    序号内容链接地址
    1VMware Workstation Pro 16搭建CentOS8虚拟机集群https://thinkwon.blog.csdn.net/article/details/115058171
    2CentOS8安装Dockerhttps://thinkwon.blog.csdn.net/article/details/115056214
    3CentOS8搭建Nacos1.4.0集群https://thinkwon.blog.csdn.net/article/details/115056401
    4CentOS8安装GitLab13.7.2https://thinkwon.blog.csdn.net/article/details/115056528
    5CentOS8安装MySQL8https://thinkwon.blog.csdn.net/article/details/115055934

    推荐书籍

    序号内容链接地址
    1读书清单-计算机https://thinkwon.blog.csdn.net/article/details/108077754

    读书笔记

    序号内容链接地址
    1高效休息法-读书笔记https://thinkwon.blog.csdn.net/article/details/118638191
    2斯坦福高效睡眠法-读书笔记https://thinkwon.blog.csdn.net/article/details/108349844
    3高效能人士的七个习惯-读书笔记https://thinkwon.blog.csdn.net/article/details/108941111
    4富爸爸穷爸爸-读书笔记https://thinkwon.blog.csdn.net/article/details/109261723
    5如何阅读一本书-读书笔记https://thinkwon.blog.csdn.net/article/details/115422659
    6人性的弱点-读书笔记https://thinkwon.blog.csdn.net/article/details/116809824
    7麦肯锡极简工作法-读书笔记https://thinkwon.blog.csdn.net/article/details/118638191

    云计算

    IaaS、SaaS、PaaS、虚拟化技术、openstack、Serverlsess

    搜索引擎

    Solr、Lucene、Nutch、Elasticsearch

    权限管理

    Shiro、Spring Security

    区块链

    哈希算法、Merkle树、公钥密码算法、共识算法、Raft协议、Paxos 算法与 Raft 算法、拜占庭问题与算法、消息认证码与数字签名

    展开全文
  • 服务器运维知识点总结

    千次阅读 2018-11-28 09:35:23
    服务器运维知识点 DNS的解析过程? 第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把...

    服务器运维知识点

    DNS的解析过程?

    第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

    第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
    第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发
    给根域名服务器,然后根域名服务器再返回给本地域名服务器一个
    所查询域(根的子域)的主域名服务器的地址。

    第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求
    的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的
    域名服务器的地址。

    第五步:重复第四步,直到找到正确的纪录。
    第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还
    将结果返回给客户机。

    NTP的简介?

    NTP(网络时间协议):是由RFC1305定义的时间同步协议,用来在分布是服务器和客户端之间同步时间,NTP基于UDP进行传输,在UDP上的端口为123。

    使用NTP的目的是:使网络内具有时钟的设备时间同步,使设备能够基于时间的多种应用。

    NTP的工作模式?

    设备可以采用多种NTP工作模式进行时间同步;

    1.客户端和服务器模式;

    2.对等体模式;

    3.广播模式;

    4.组播模式

    什么是VPN?

    VPN:虚拟网络;

    1.以共享的公共网络为基础,构建的私有网络; 2.虚拟的连接,并非物理连接

    3.处于私有的管理策略下,具有独立的IP和路由规则; 4.有所通,有所不通;

    5.RFC2764描述了基于IP的VPN体系结构;

    VPN的优势?

    1.它可以快速的搭建网络减小部署周期; 2.与私有网络一样可以提供安全性,可管理性和可靠性;

    3.可以利用Internet,无处不接入,处处都可以接入; 4.可以简化用户侧的配置和作业

    5.提高基础资源的利用率; 6.为客户可以节省使用开销; 7.在运营商那方面可以有效的利用基础设施,提供大量,多种的业务

    DHCP的工作原理?

    DHCP用于向网络中分配IP地址,及一些TCP/ip的配置信息。DHCP提供了简单,安全,可靠的TCP/IP网络设置,避免了网络地址的冲突,大大降低了工作的负担。

    DHCP的工作原理:客户端从服务器获取IP地址的四个租约过程,客户端请求IP,服务器回应相应的请求,客户端选择IP,服务器确定租约。

    展开全文
  • 服务器基础知识【初学者必看】

    千次阅读 2019-06-07 17:42:43
    摘要:什么是服务器 就像他的名字一样,服务器在网络上为不同用户提供不同内容的信息、资料和文件。可以说服务器就是Internet网络上的资源仓库,正是因为有着种类繁多数量庞大内容丰富的服务器的存在,才使得...

    摘要: 什么是服务器 就像他的名字一样,服务器在网络上为不同用户提供不同内容的信息、资料和文件。可以说服务器就是Internet网络上的资源仓库,正是因为有着种类繁多数量庞大内容丰富的服务器的存在,才使得Internet如此的绚丽多彩。

    1. 什么是服务器 
      就像他的名字一样,服务器在网络上为不同用户提供不同内容的信息、资料和文件。可以说服务器就是Internet网络上的资源仓库,正是因为有着种类繁多数量庞大内容丰富的服务器的存在,才使得Internet如此的绚丽多彩。
    2. 服务器的种类和功能

    (1) WWW服务器(WWW Server)

    WWW服务器也称为Web服务器(Web Server)或HTTP服务器(HTTP Server),它是Internet上最常见也是使用最频繁的服务器之一,WWW服务器能够为用户提供网页浏览、论坛访问等等服务。比如:我们在使用浏览器访问 
    实际上就是在访问Discuz!的WWW服务器,从该WWW服务器获取需要的论坛资料和网页。

    (2) FTP服务器(FTP Server)

    FTP服务器是专门为用户提供各种文件(File)的服务器,FTP服务器上往往存储大量的文件,例如:软件、MP3、电影、程序等等。用户只要使用FTP客户端软件登录到FTP服务器上就可以从FTP服务器下载所需文件和资源到自己的电脑上,同时, 
    你也可以把自己电话上的文件上传到FTP上供其他用户下载,以实现文件资源的共享。

    (3) 邮件服务器(Mail Server)

    e-mail是Internet上应用最频繁的服务之一,而Internet上每天数亿百亿计的电子邮件的收发都是通过邮件服务器实现的。邮件服务器就像邮局一样,可以为用户提供电子邮件的接收存储和发送服务。

    除了以上介绍的3种主要服务器之外,还有很多其他类型的网络服务器,例如:数据库服务器(DatabaseServer)、代理服务器(Proxy Server)、域名服务器(Domain Name Server)等等……

    1. 服务器的操作系统

    目前服务器中使用的操作系统主要有两类:Windows和Unix。 
    (1) Windows 
    Windows是美国微软公司(Microsoft)开发的操作系统,在服务器领域,主要有Windows2000Server/Advanced Server/Data Center与Windows2003 Standard Edition/EnterpriseEdition操作系统,Windows的优点是操作简 
    单,由于Windows使用图形界面进行操作,因而对各种服务器软件功能配置简便。但它的缺点也不可忽视,例如:Windows操 
    作系统成本较高;安全性相对较低;能承受的访问量较低等等。

    (2) Unix

    Unix的历史很久远,其种类和分支错综复杂。就目前来说应用最广泛的Unix系统是Linux,Linux并非由哪家公司发行,Linux由世界各个角落的热爱程序与网络人共同开发、维护。Linux完全免费,与Windows相比,Linux的成本为0。 
    Linux除了成本上的优点之外,还具备很多非常优秀的特点,例如:性能极高、稳定性很好、安全等等。目前,大多数大中型 
    企业(包括电信企业和Google、百度、新浪、搜狐等等)的服务器都运行在Unix/Linux系统之上。

    1. Apache与IIS

    Apache与IIS都属于WWW服务器,是世界上使用最多的两种WWW服务器。 
    (1) IIS 
    IIS的全称是:InternetInformation Server,由微软(Microsoft)公司开发,是Windows操作系统的一部分。IIS是允许在Internet上发布信息的Web服务器。IIS通过使用超文本传输协议(HTTP)传输信息。还可配置IIS 以提供文件传输 
    协议(FTP)服务。FTP服务允许用户从Web节点或到Web节点传送文件。

    IIS的特点是配置简单,配置界面很友,功能较强,同时提供对ASP/ASP.NET的支持。但IIS的性能和安全性相对较差,并且IIS只能在Windows中使用,无法在UNIX中运行。

    (2) Apache

    Apache是世界排名第一的WWW服务器, 根据Netcraft所作的调查,世界上百分之六十以上的Web服务器在使用Apache。

    1995年4月, 最早的Apache(0.6.2版)由Apache Group公布发行. Apache Group 是一个完全通过Internet进行运作的非盈利机构, 由它来决定Apache Web服务器的标准发行版中应该包含哪些内容。

    Apache 的特性: 
    1) 几乎可以运行在所有的计算机平台上(包括Windows) 
    2) 强大的功能配置; 
    3) 支持通用网关接口(CGI); 
    4) 支持虚拟主机; 
    5) 支持HTTP认证; 
    6) 内部集成了代理服务器; 
    7) 具有用户会话过程的跟踪能力; 
    8) 支持FASTCGI; 
    9) 支持JAVA SERVLETS;

    什么是服务器?

      服务器是网络上一种为客户站点提供各种服务的计算机,它在网络

    操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及昂贵的专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、数据库管理等服务。

    ● 网络服务器的作用: 
      A. 运行网络操作系统。通过网络操作系统控制和协调网络各工作站的运行,处理和响应各工作站同时发来的各种网络操作请求。 
      B. 存储和管理网络中的软硬件共享资源,如数据库、文件、应用程序、打印机等资源。 
      C. 网络管理员在网络服务器上对各工作站的活动进行监视控制及调整。

      从结构来说,目前服务器正从RISC服务器向IA服务器发展,在中小型网络中尤其如此。

    ● 热插拔技术

    ○ Hot Swap,又称为热交换技术、热插拔技术。允许服务器在不关机状态下更换故障硬盘等热插拔设备。 
    ○ 热切换技术与RAID技术配合起来,可以使服务器在不关机状态下更换故障硬盘,并且自动恢复原盘上的数据,极大地提高了服务器系统的容错能力。 
    ○ 硬盘热插拔有两种方式: 
     A. 采用热插拔硬盘盒配以普通SCSI硬盘,多用于磁盘阵列中。 
     B. 采用具有热插拔能力的专用硬盘,是高性能服务器的标准配置。 
    ○ 热插拔技术今后将向热插拔电源、热插拔PCI插卡等方向发展。

    ● 硬盘接口技术

      IDE: (Intergraded drive electronics) 现在PC机使用的主流硬盘接口。 
      SCSI:(Small Computer System Interface) 小型计算机系统接口。SCSI技术源于小型机,目前已移植到PC服务器及高档PC机上。相对于IDE接口,SCSI接口具备如下的性能优势: 
      a. 独立于硬件设备的智能化接口:减轻了CPU的负担。 
      b. 多个I/O并行操作:因此SCSI设备传输速度快。 
      c. 可联接的外设数量多:可扩展多个外设(如硬盘、磁带机等)。

      当同时访问到服务器的网络用户数量较多时,使用SCSI硬盘的系统I/O性能明显强于使用IDE硬盘的系统。 
      SCSI总线支持数据的快速传输。不同的SCSI设备通常有8位或16位的SCSI传输总线。在多任务操作系统,如Windows NT下,在同一时刻可以启动多个SCSI设备。SCSI适配器通常使用主机的DMA(直接内存存取)通道把数据传送到内存。这意味着不需要主机CPU的帮助,SCSI适配器就可以把数据传送到内存。为了管理数据流,每一个SCSI设备(包括适配卡)都有一个身份号码。通常,把SCSI适配器的身份号码设置为7,其余设备的身份号码编号为0到6。 
      大部分基于PC的SCSI总线使用单端接的收发器发送和接受信号。但是,随着传送速率的增大和线缆的加长,信号会失真。为了最大限度的增加总线长度并保证信号不失真,可以把差分收发器加到SCSI设备中。差分收发器使用两条线来传送信号。第二条线为信号脉冲的反拷贝。一旦信号到达目的地,电路比较两条线的脉冲,并生成原始信号的正确拷贝。 
      一种新的差分收发器 - LVD(低压差分收发器),能够增加总线长度并且能够提供更高的可靠性和传输速率。LVD能连接15个设备,最大总线长度可达12米。

    目前常用的SCSI系列:

    image

    SCSI与IDE的区别

      ○ IDE的工作方式需要CPU的全程参与;这种情况在Windows95/NT的多任务操作系统中,自然就会导致系统反应的大大减慢。而SCSI接口,则完全通过独立的高速的SCSI卡来控制数据的读写操作,CPU就不必浪费时间进行等待,显然可以提高系统的整体性能。

      ○ SCSI的扩充性比IDE大,一般每个IDE系统可有2个IDE通道,总共连4个IDE设备,而SCSI接口可连接7~15个设备,比IDE要多很多,而且连接的电缆也远长于IDE。

      虽然SCSI设备价格高些,但与IDE相比,SCSI的性能更稳定、耐用,可靠性也更好

    ● RAID技术

    ○ RAID:(Redundant Array of Inexpensive Disk)廉价冗余磁盘阵列。由于磁盘存取速度跟不上CPU处理速度的发展,从而成为提高服务器I/O能力的一个瓶颈。RAID技术利用磁盘分段、磁盘镜像、数据冗余技术来提高磁盘存取速度,同时提供磁盘数据备份、提高了系统可靠性。

    ○ 磁盘分段(Disk Striping):数据以"段"为单位依次读写多个磁盘,多磁盘相当于同时操作,存取速度极大地提高。

    ○ 磁盘镜像(Disk Mirroring):用一个控制器控制两个磁盘,同时读写相同的数据,数据100%备份。

    ○ 数据冗余技术:数据读写时做校验,校验数据以紧凑格式存于磁盘上,可用于纠错及恢复数据。 
    ○ RAID技术目前常用的有几个系列:

    image

    磁盘系统作好RAID 5后,任一块磁盘出现故障后,系统仍可运行,故障盘上的数据可通过其它盘上的校验数据计算出来(此时速度要慢一些)。如果磁盘系统中有备份盘,则数据自动恢复到备份盘中。如果具备热插拔硬盘,则在开机状态下即可换下故障硬盘,数据将自动恢复到新硬盘上。在这些过程中,系统并没有停止运行。

    ● SMP技术简介

     ○ SMP:Symmetric Multiprocessing . 即对称多处理。指在一个计算机上汇集了一组处理器(多个CPU)。多处理是指一台计算机中的多个处理器通过共享同一存储区来协调工作。真正意义上的多处理要求系统中的每个CPU能访问同一物理内存。这意味着多CPU必须能使用同一系统总线或系统交换方式。 
      操作系统对多处理体系结构的支持是与其核心紧密相连的,这将涉及两个用于支持多处理的基本序列算法:对称和非对称处理。非对称处理中,CPU各有各的任务;对称处理中,每个CPU可执行任何任务。SMP系统通过将处理负载分布到各个空闲的CPU上来增强性能。处理分布或执行线程中,各CPU的功能是相同的。它们共享内存及总线结构,系统将处理任务队列对称地分布于多个CPU上,从而极大地提高了系统的数据处理能力。

     ○ 对称多处理首先在网管方面表现出高性能,这应归因于SMP系统强大的处理能力和SMP操作系统的兴起。支持SMP的网络操作系统:Novel Netware、SCO UNIX、Microsoft Windows NT等。

     ○ SMP技术特别适合于需要集中使用处理器的服务,如应用服务器、通信服务器。很多应用程序升级到SMP平台后并不需要重写。

     ○ SMP技术是今后PC服务器的发展方向。

    ● 机箱技术

    ○ 立式机箱 
      立式机箱是高度大于宽度的计算机机箱(也称为侧立式计算机)。与卧式计算机相比,立式机箱的优势在于其"占地面积"(所占用的桌面空间)更小。立式机箱的高度通常为 18到 27英寸。微型立式机箱大约有14英寸高,而中型立式机箱通常是16英寸左右。

    ○ 基座式 
      基座式机箱通常比立式机箱更宽、更高。与立式机箱相比,基座式机箱能够提供更灵活的配置选择和扩充能力,并且通常可以提供热插拔和磁盘阵列功能。

    ○ 机架安装式 
      机架安装系统允许用户在一个金属架上安装多个节点或机箱,并利用轨道来回滑动。典型的机架是77英寸高、24英寸宽、40英寸深。机架是以垂直方向的度量单位来衡量的,以字母"U"来表示。

       l U=l.75英寸或4.445厘米。77英寸的垂直机架是40U。

       机架系统可由显示器、磁盘驱动器、不间断电源 (UPS)、网络组件和服务器节点组成。机架机箱的扩展概念是将服务器节点分成若干个独立的部分,它们通过一个服务器域网络进行通信,可能有独立的处理节点、内存节点、扩展总线节点和磁盘阵列。

    ● 内存技术

      内存的家族也很庞大,有许多不同的类别。按照存储信息的功能,内存可分为RAM(Random Access Memory,随机存取存储器)和ROM(Read Only Memory,只读存储器)。ROM是非易失性的元件,可靠性很高,存储在ROM里的数据可以永久的保存,而不受电源关闭的影响,所以,ROM一般用来存储不需修改或经常修改的系统程序,像主板上的BIOS程序。根据信息的可修改性难易,ROM也可分为MASK ROM,PROM,Flash Memory等,其中,MASK ROM,PROM属于早期的产品,ROM这一族经过一连串的演化,从使用只能写一次的PROM,利用紫外线清除的EPROM,利用电气方式清除的EEPROM,一直到现在主板上经常使用的一般电压就可清除的Flash Memory。现在计算机的发展速度相当快,主板厂商也需经常升级BIOS,所以用Flash Memory存储BIOS程序就成为首选,RAM既是我们通常所说的内存,也是我们需关注的主要方面,现做一下介绍。

    ○ RAM的分类 
      RAM主要用来存放各种现场的输入、输出数据,中间计算结果,以及与外部存储器交换信息和作堆栈用。它的存储单元根据具体需要可以读出,也可以写入或改写。由于RAM由电子器件组成,所以只能用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的数据就会丢失,故属于易失性元件。现在的RAM多为MOS型半导体电路,它分为动态和静态两种。动态RAM(DRAM)是靠MOS电路中的栅极电容来记忆信息的。由于电容上的电荷会泄漏,需要定时给与补充,所以动态RAM需要设置刷新电路(Refresh),如此一来,需要花费额外的时间;而静态RAM(SRAM)是靠双稳态触发器来记忆信息的,不须重复的做刷新的动作即可保存数据,所以存取速度要比DRAM快上许多。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以高速缓冲存储器(Cache)使用SRAM,而主内存通常采用DRAM。我们平常所接触的内存条就是由DRAM芯片构成的。

    ○ DRAM的种类 
      FPM DRAM(Fast Page Mode DRAM),即快速页面模式的DRAM。是一种改良过的DRAM,一般为30线或72线(SIMM)的内存。工作原理大致是,如果系统中想要存取的数据刚好是在同一列地址或是同一页(Page)内,则内存控制器就不会重复的送出列地址,而只需指定下一个行地址就可以了。

      EDO DRAM(Extended Data Out DRAM),即扩展数据输出DRAM。速度比FPM DRAM快15%~30%。它和FPM DRAM的构架和运作方式相同,只是缩短了两个数据传送周期之间等待的时间,使在本周期的数据还未完成时即可进行下一周期的传送,以加快CPU数据的处理。EDO DRAM目前广泛应用于计算机主板上,几乎完全取代了FPM DRAM,工作电压一般为5V,接口方式为72线(SIMM),也有168线(DIMM)。

      BEDO DRAM(Burst EDO DRAM),即突发式EDO DRAM。是一种改良式EDO DRAM。它和EDO DRAM不同之处是EDO DRAM一次只传输一组数据,而BEDO DRAM则采用了"突发"方式运作,一次可以传输"一批"数据,一般BEDO DRAM能够将EDO DRAM的性能提高40%左右。由于SDRAM的出现和流行,使BEDO DRAM的社会需求量降低。

      SDRAM(Synchronous DRAM)即同步DRAM。目前十分流行的一种内存。工作电压一般为3.3V,其接口多为168线的DIMM类型。它最大的特色就是可以与CPU的外部工作时钟同步,和我们的CPU、主板使用相同的工作时钟,如果CPU的外部工作时钟是100MHZ,则送至内存上的频率也是100MHZ。这样一来将去掉时间上的延迟,可提高内存存取的效率。

    ○ REGISTERED 内存 
      Register IC 内存条底部较小的集成电路芯片(2-3片), 起提高驱动能力的作用。服务器产品需要支持大容量的内存,单靠主板信号线的电流无法驱动如此大容量的内存,而使用带Register的内存条,通过Register IC提高驱动能力,使服务器可支持高达32GB的内存。

    ○ ECC内存 
      错误检查与校正内存(ECC)提供了一个强有力的数据纠正系统。ECC内存不仅能检测一位错,而且它能定位错误和在传输到CPU 之前纠正错误,将正确的数据传输给CPU。允许系统进行不间断的正常的工作,ECC内存能检测到多位错(而奇偶校验内存就不能达到这一点)并能在检测到多位错时产生报警信息,但它不能同时更正多位错。 
      ECC的工作过程是这样的:当数据写到内存中时,ECC将数据的一个附加位加识别码,当数据被回写时,存储的代码和原始的代码相比较,如果代码不一致,数据就被标记为"坏码",然后坏码会被纠正,并传输到CPU中,如果检测到多位错时,系统就会发出报警信息。

    ● 常见操作系统

     ○ MicrosoftWindows NT Server 4.0 中/英文 
     ○ MicrosoftWindows 2000/2003 中/英文 
     ○ SCO OpenServer5.0.5 
     ○ SCO UnixWare7.1.1 
     ○ Red Hat 6.2/7.0 
     ○ TurboLinuxServer 6.1 
     ○ SUN Solaris 7/8中/英文

    ○ Windows NT / Windows 2K/2003 
     · 与windows客户机集成较好 
     · 提供一定的文档和应用服务器兼容能力 
     · 简化安装和管理工作,操作系统易于使用,用户界面好 
     · 提供更多的开发工具,第三方厂商应用支持较多 
     · 目前在中小用户中的增长势头较快 
     · 大型环境中目录不易管理 
     · 与其他操作系统相比,可靠性较差 
     · 改变配置后,系统需重新启动

    ○ SCO UNIX 
     · 在高性能的RISC机器中扩展性较好 
     · 可轻松改变网络配置 
     · 安全性、可靠性高 
     · 提供内置的多用户能力 
     · 最早,最广泛地支持Internet标准 
     · 该平台上的应用极为丰富 
     · 在国内金融等重要行业中用户较多 
     · 用户界面较差,维护、管理、使用复杂 
     · 没有可靠的开发工具

    ○ NetWare 
     · 单CPU的文件服务器性能优异 
     · 高性能的目录服务可轻松管理大型环境 
     · 在国内早期中小用户中使用较多 
     · 关键服务与SMP无关 
     · 缺乏第三方厂商支持 
     · 没有可靠的开发工具

    ○ LINUX 
     · 免费的多任务多用户的操作系统 
     · 性能稳定,占用空间小 
     · 可运行在Intel、SPARC、Alpha平台 
     · 没有专门的技术支持部门 
     · 对一些设备的驱动能力还不是很完善

    ○ Solaris 
     · 安装方式多样,自动化程度高 
     · 处理数据的能力很高 
     · 可与各种平台实现互操作 
     · 软件价格昂贵 
     · 对基于Intel的服务器技术支持较弱

    展开全文
  • 在阅读这篇文章之前你要做以下的准备:1.注册一个订阅号(通过微信公众平台... 2.... 4.你需要知道php基础知识. 第一步:填写服务器配置我们登录微信公众号之后,右下角基本开发配置进去----&gt;URL是开...
  • 服务器入门与基础配置

    千次阅读 2020-02-17 11:22:32
    一、什么是服务器服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。 常见的外形...
  • 数据库服务器的安装与配置

    万次阅读 多人点赞 2017-04-18 13:02:25
    数据库服务器是当今应用最为广泛的一种服务器类型,许多企业在信息化建设过程中都要购置数据库服务器。数据库服务器主要用于存储、查询、检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性、可靠...
  • SmartBI报表服务器安装及知识配置

    千次阅读 2019-03-09 22:12:39
    本文用于介绍Smartbi电子表格版本安装配置的相关步骤。 一、下载安装包: 登录SmartBI官网下载安装包及插件 二、安装服务器 下载并运行Smartbi Spreadsheet Edition.exe。运行安装程序时,请先退出奇虎360等...
  • 服务器基础知识全解(汇总版)

    千次阅读 多人点赞 2020-12-26 11:40:14
    服务器基础知识全解(汇总版) https://www.zack.cn/archives/729 本文对服务器知识进行了汇总,并添加了服务器基准测试和认证章节,内容包括9大章节,从服务器的概念、服务器重要部件技术和架构组成,并且对磁盘、...
  • C/C++ Linux后台服务器开发高级架构师学习知识点路线总结(2021架构师篇完整版) 前言: 小编之前有跟大家分享过一篇架构师体系知识点总结的文章,今天在原来的基础上有所改变更新(2021版)。 相信大家也知道,...
  • [收藏] 最全服务器基础知识科普

    千次阅读 多人点赞 2018-05-24 08:02:34
    &#13; &#13; &#13; &#13; &#13; &#13; &#13; 按照服务器体系架构,服务器主要分为非x86服务器和x86两类;非x86服务器包括大型机、...
  • 在我们开发网站或者搭建个人博客的时候,都会涉及到服务器的使用,而对于使用服务器时所要接触到的各种新名词与繁琐的配置方法,都让我们手足无措,在此,将给大家提供一份阿里云服务器的购买与配置教程,搭配...
  • 转而使用eclipse作为开发工具,确实myeclipse集成了太多东西,使得开发人员的配置越来越少,这不是个好事,使用eclipse后,有些地方就得自己去配置,比如配置J2EE需要的一些jar包,自己配置server服务器等等。...
  • 一、服务器的购买 同域名一样,如果你打算稍微学下服务器的搭建相关知识,并且不想有任何限制(即服务器用一段时间,后面还想方便地用来作网站的服务器),而不是去学如何使用腾讯云的微信小程序解决方案,那么买...
  • Cisco DHCP配置实验

    万次阅读 多人点赞 2018-05-22 16:35:40
    一、PC动态获取IP地址(路由器做DHCP服务器) 1. 拓扑图 2. 配置步骤(有些顺序不重要) 3. 命令配置(之后的命令解析参考该实验) 二、路由器端口动态获取IP地址(路由器做DHCP服务器) 1. 拓扑图 2. 配置步骤...
  • 15 个优秀开源的 Spring Boot 学习项目,一网打尽!

    万次阅读 多人点赞 2019-12-12 11:44:43
    当我们学会了很多知识点之后,需要一个项目来将这些知识点融会贯通,这些开源项目就是很好的资料。现在前后端分离开发方式日渐火热,松哥也强烈建议大家有空学习下这种开发方式。虽然我们身为 Java 工程师,可是也不...
  • 开篇一: 服务器主板  服务器主板概述   对于服务器而言,稳定性才是首要,服务器必须承担长年累月高负荷的工作要求,而且不能像台式机一样随意的重起,为了提高起可靠性普遍的做法都是部件的冗余技术,而这一切...
  • 服务器基础知识(一)

    千次阅读 2020-02-15 18:53:54
    一、服务器简介 服务器:广义上讲,服务器是在网络中为其他客户提供服务的计算机。服务器是计算机的一种,服务器是在操作系统的控制下,为网络环境里的客户机(如PC机)提供共享资源(包括查询、存储、计算操作等)...
  • 专用术语介绍 我们提供的RAID卡支持各种常用RAID级别,如 0,1,5,10,50等,您可以根据数据的重要性来选择,在开始使用RAID卡之前,我们希望您能够对下面的概念有较深的理解,从而更好的配置和使用您的服务器。...
  • dns服务器理论基础知识

    千次阅读 2016-08-23 11:17:55
     权威DNS服务器说的容易理解一点,就是如果本地DNS的配置文件中写明了FQDN与IP的对应关系的,并授权管理这个域时,那么就称这台DNS服务器是该域的权威DNS服务器。  客户端得到的DNS查询结果是从本地DNS缓存中...
  • linux下的dhcp服务器配置总结

    千次阅读 2018-04-04 08:40:08
    本篇博客仅演示dncp服务器安装等实践操作,dhcp理论知识点不在此处详细描述,想要了解的google即可,本文内容包括安装配置dhcp服务器,以及设置dhcp保留地址1、安装dhcp软件包 yum list all | grep dhcp # ...
  • DHCP服务器搭建和基本知识总结

    千次阅读 2019-04-12 16:05:47
    DHCP服务 成为dhcp服务器的条件: ...自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。 动...
  • 代理服务器基本知识

    万次阅读 多人点赞 2018-01-12 17:21:21
    代理服务器系列(一):基础知识 2005 年 9 月 10 日 世界网络教研组 编 一、什么是代理服务器? 代理服务器英文全称是 Proxy Server,其功能就是代理网络用户去取得网络信息。 形象的说:它是网络信息的中转站...
  • 网络工程师考试知识点

    千次阅读 多人点赞 2019-05-30 10:45:08
    网络工程师考试知识点 1、常用的虚拟存储器由主存-辅存两级存储器组成 2、中断向量可提供中断程序的入口地址 3、DMA工作方式下,在主存与外设之间建立直接的数据通信。 4、PERT不能清晰描述各个任务之间的并行...
  • 随着NVIDIA推出更多的GPU硬件和工具软件,如何配置一台属于自己的GPU服务器,在开发者的工作中成为了重中之重。 文章大概: 1、硬件平台的搭建 o 深度学习服务器的性能需求 o NVIDIA GPU的性能特点 o 硬件环境的...
  • 戳蓝字“CSDN云计算”关注我们哦!作者 |Hardy责编 | 阿秃服务器对每个从事IT工作的人来说并不陌生,但是服务器所涉及的各种知识细节,并非大家都十分清楚,为...
  • 需求:无非是有以下一些原因。希望建立内部邮箱,不希望受到诸如网易、QQ邮箱等服务器的数量限制,或是单纯练手以了解计算机网络应用层SMTP及POP3协议。
  • ASP.NET_Web服务器和网站配置

    千次阅读 2018-07-14 05:13:12
    内置的Web开发服务器 当项目在本地计算机调试时 调试运行后自行启动 iis服务器
  • 什么是HTTP协议? 客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守
  • 服务器配置,安全,性能

    千次阅读 2020-03-14 20:05:17
    服务器配置 1.购买服务器(云虚拟主机,云服务器区别)—— 买一个ip 2.购买域名 3.域名解析服务(找一个DNS运营商,将域名与IP映射起来插入服务器中)—— 国内备案就是这下手脚 4.配置服务器环境:项目运行的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 204,485
精华内容 81,794
关键字:

服务器配置知识点