RocketMQ的安装配置

演示虚拟机环境:Centos64-1 (D:\linuxMore\centos6_64)

root / itcast : 固定IP 192.168.52.128

一,配置JDK环境

1,解压jdk到指定的目录

tar -xvf jdk-8u171-linux-x64.tar.gz -C /usr/local
cd /usr/local
mv jdk1.8.0_171 jdk1.8

2,配置环境变量

  • vi /etc/profile

  • 在末尾行添加

 #set java environment

export JAVA_HOME=/usr/local/jdk1.8
export PATH=$PATH:${JAVA_HOME}/bin
  • source /etc/profile 使用刚才的配置生效,如果不起作用,重启服务器 reboot

二,配置RocketMQ环境

上传 文件到/usr/local/src下

解压:

unzip rocketmq-all-4.5.2-bin-release.zip -C /opt
cd /opt
mv rocketmq-all-4.5.2-bin-release rocketmq

启动nameserver

./mqnamesrv
[root@localhost bin]# ./mqnamesrv
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON

启动broker

./mqbroker -n 192.168.52.128:9876
[root@localhost bin]# ./mqbroker
The broker[localhost.localdomain, 192.168.52.128:10911] boot success. serializeType=JSON

如果broker启动报错:修改 runbroker.sh文件中的内存参数即可

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

如果和docker 一起 需要修改配置文件:

conf/broker.conf

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUS
# 解决和docker 冲突的
brokerIP1=192.168.52.128
namesrvAddr=192.168.52.128:9876

三,配置集群环境

1) 配置主机名称(未来就可以根据主机名找到对应的服务器了)

vim /etc/hosts

# nameserver
192.168.52.128 rocketmq-nameserver1
192.168.52.128 rocketmq-nameserver2
# broker
192.168.52.128 rocketmq-master1
192.168.52.128 rocketmq-slave2
192.168.52.128 rocketmq-master2
192.168.52.128 rocketmq-slave1

配置完毕后重启网卡,应用配置(centos6和7的命令不太一样,如果是7参考原笔记)

#CENTOS6
service network restart

#CENTOS7
systemctl retsart network

2) 关闭防火墙

#CENTOS6
# 关闭防火墙
service iptables stop firewalld.service
# 查看防火墙的状态
service iptables status
# 禁止firewall开机启动
chkconfig iptables off

#CENTOS7
systemctl stop firewalld

3) 配置jdk

详见Linux安装jdk

4) 配置服务器环境

在同一个虚拟机上配置集群环境:
•rocketmq: 配置broker-a的主和broker-b-s从

•rocketmq2:配置broker-b的主和broker-a-s从

将rocketmq 解压至跟目录 /opt/rocketmq-cluster

# 解压
unzip rocketmq-all-4.5.2-bin-release.zip -d /opt/rocketmq-cluster
# 修改目录名称
mv rocketmq-all-4.5.2-bin-release rocketmq

#复制一个出来
cp rocketmq/ -R rocketmq2

5) 创建集群服务器的数据存储目录

主节点创建四个目录/ 从节点四个目录

#配置rocetmq
#a主
mkdir /opt/rocketmq-cluster/rocketmq/store
mkdir /opt/rocketmq-cluster/rocketmq/store/commitlog
mkdir /opt/rocketmq-cluster/rocketmq/store/consumequeue
mkdir /opt/rocketmq-cluster/rocketmq/store/index
mkdir /opt/rocketmq-cluster/rocketmq/store/abortfile
#b从
mkdir /opt/rocketmq-cluster/rocketmq/store-slave
mkdir /opt/rocketmq-cluster/rocketmq/store-slave/commitlog
mkdir /opt/rocketmq-cluster/rocketmq/store-slave/consumequeue
mkdir /opt/rocketmq-cluster/rocketmq/store-slave/index
mkdir /opt/rocketmq-cluster/rocketmq/store-slave/abortfile

#配置rocetmq2
#b主
mkdir /opt/rocketmq-cluster/rocketmq2/store
mkdir /opt/rocketmq-cluster/rocketmq2/store/commitlog
mkdir /opt/rocketmq-cluster/rocketmq2/store/consumequeue
mkdir /opt/rocketmq-cluster/rocketmq2/store/index
mkdir /opt/rocketmq-cluster/rocketmq2/store/abortfile
#a从
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave/commitlog
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave/consumequeue
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave/index
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave/abortfile
注意master与slave如果在同一个虚拟机中部署,需要将存储目录区分开

6) 修改配置

(不同的节点,应该修改不同的配置,文件夹也应该不一样)

两个命名服务器:
192.168.52.128:9876
192.168.52.128:5432
broker集群:
192.168.52.128:11011 a主
192.168.52.128:11111 a从
192.168.52.128:10811 b主
192.168.52.128:10911 b从

修改rocketmq的相关配置

6.1 修改a的master

>cd /opt/rocketmq-cluster/rocketmq/conf/2m-2s-sync
>vim broker-a.proerties

此时broker-a的端口为:11011

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:5432
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=11011
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48

#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq-cluster/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq-cluster/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq-cluster/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq-cluster/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq-cluster/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq-cluster/rocketmq/store/abortfile

#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

6.2 修改b的slave

>cd /opt/rocketmq-cluster/rocketmq/conf/2m-2s-sync
>vim broker-b-s.proerties

此时broker-b-s从的端口为:10911

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:5432
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48

#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq-cluster/rocketmq/store-slave
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq-cluster/rocketmq/store-slave/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq-cluster/rocketmq/store-slave/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq-cluster/rocketmq/store-slave/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq-cluster/rocketmq/store-slave/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq-cluster/rocketmq/store-slave/abortfile


#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

检查启动内存 (nameserver 和broker 均需要修改)

vim /opt/rocketmq-cluster/rocketmq/bin/runbroker.sh
vim /opt/rocketmq-cluster/rocketmq/bin/runserver.sh

# 开发环境配置 JVM Configuration
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

rocketmq的nameserver默认端口为9876,不用修改。

#

修改rocketmq2的相关配置

6.3 修改b的master

>cd /opt/rocketmq-cluster/rocketmq2/conf/2m-2s-sync
>vim broker-b.proerties

此时broker-b的端口为:10811

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:5432
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10811
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48

#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq-cluster/rocketmq2/store
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq-cluster/rocketmq2/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq-cluster/rocketmq2/store/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq-cluster/rocketmq2/store/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq-cluster/rocketmq2/store/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq-cluster/rocketmq2/store/abortfile

#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

6.4 修改b的slave

>cd /opt/rocketmq-cluster/rocketmq2/conf/2m-2s-sync
>vim broker-a-s.proerties

此时broker-a-s从的端口为:11111

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:5432
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=11111
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48

#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq-cluster/rocketmq2/store-slave
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq-cluster/rocketmq2/store-slave/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq-cluster/rocketmq2/store-slave/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq-cluster/rocketmq2/store-slave/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq-cluster/rocketmq2/store-slave/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq-cluster/rocketmq2/store-slave/abortfile


#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

检查启动内存 (nameserver 和broker 均需要修改)

vim /opt/rocketmq-cluster/rocketmq2/bin/runbroker.sh
vim /opt/rocketmq-cluster/rocketmq2/bin/runserver.sh

# 开发环境配置 JVM Configuration
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

修改rocketmq2的nameserver 的端口 为5432:

conf目录下新增:
vi namesrv.properties
添加内容为:
listenPort=5432

先启动nameserver:

# 进入/opt/rocketmq-cluster/rocketmq/bin目录
nohup ./mqnamesrv &

# 进入/opt/rocketmq-cluster/rocketmq2/bin目录
nohup ./mqnamesrv -c ../conf/namesrv.properties &
再启动brokerserver: # 进入/opt/rocketmq-cluster/rocketmq/bin目录
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a.properties &
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties &

# 进入/opt/rocketmq-cluster/rocketmq2/bin目录
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b.properties &
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties &
nohup和&的区别
& : 指在后台运行

nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行

集群启动脚本:rocketmq-cluster-start.sh

#!/bin/bash
#启动nameserver
sh /opt/rocketmq-cluster/rocketmq/bin/mqnamesrv &
sh /opt/rocketmq-cluster/rocketmq2/bin/mqnamesrv -c /opt/rocketmq-cluster/rocketmq2/conf/namesrv.properties &

#启动brokerserver
sh /opt/rocketmq-cluster/rocketmq/bin/mqbroker -c /opt/rocketmq-cluster/rocketmq/conf/2m-2s-sync/broker-a.properties &
sh /opt/rocketmq-cluster/rocketmq/bin/mqbroker -c /opt/rocketmq-cluster/rocketmq/conf/2m-2s-sync/broker-b-s.properties &
sh /opt/rocketmq-cluster/rocketmq2/bin/mqbroker -c /opt/rocketmq-cluster/rocketmq2/conf/2m-2s-sync/broker-b.properties &
sh /opt/rocketmq-cluster/rocketmq2/bin/mqbroker -c /opt/rocketmq-cluster/rocketmq2/conf/2m-2s-sync/broker-a-s.properties &

集群启动脚本:rocketmq-cluster-stop.sh

#!/bin/bash
#关闭nameserver
sh /opt/rocketmq-cluster/rocketmq/bin/mqshutdown namesrv &

#关闭brokerserver
sh /opt/rocketmq-cluster/rocketmq/bin/mqshutdown broker &

四,配置rocketmq-console

进入/opt/rocketmq-cluster/rocketmq-console目录下:

rocketmq-console-2.0.0.jar  为打包好的 springboot应用程序
application.properties 为外部配置文件,根据自己的需求进行修改
执行如下命令启动即可:
java -jar rocketmq-console-2.0.0.jar --spring.config.location=application.properties


已做成脚本:直接启动./start.sh即可

RocketMQ的安装配置:配置jdk环境,配置RocketMQ环境,配置集群环境,配置rocketmq-console的更多相关文章

  1. centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解

    centos6.5环境下Zookeeper-3.4.6集群环境部署 [系统]Centos 6.5 集群部署 [软件]准备好jdk环境,此次我们的环境是open_jdk1.8.0_101 zookeep ...

  2. Zookeeper 配置集群环境详解

    在Linux环境下安装zookeeper 在Linux环境下安装zookeeper 1.       将zookeeper-3.4.13.tar.gz复制到linux操作系统 2.       通过p ...

  3. Hadoop集群环境安装

    转载请标明出处:  http://blog.csdn.net/zwto1/article/details/45647643:  本文出自:[zhang_way的博客专栏] 工具: 虚拟机virtual ...

  4. Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境

    Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境 一.环境说明 个人理解:zookeeper可以独立搭建集群,hbase本身不能独立搭建集群需要和hadoo ...

  5. CAS Client集群环境的Session问题及解决方案介绍,下篇介绍作者本人项目中的解决方案代码

    CAS Client集群环境的Session问题及解决方案  程序猿讲故事  2016-05-20  原文 [原创申明:文章为原创,欢迎非盈利性转载,但转载必须注明来源] 之前写过一篇文章,介绍单点登 ...

  6. zookeeper集群环境搭建详细图文教程

    zookeeper集群环境搭建详细图文教程 zhoubang @ 2018-01-02 [文档大纲] 友情介绍 软件环境 注意点 环境安装 1. 新建用于存储安装包以及软件安装的目录 2. 下载安装z ...

  7. Zookeeper的单机&集群环境搭建

    单机环境的安装 首先下载ZK的二进制安装包:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/ 将安装包上传到Linux上: 进行解 ...

  8. ElasticSearch高可用集群环境搭建和分片原理

    1.ES是如何实现分布式高并发全文检索 2.简单介绍ES分片Shards分片技术 3.为什么ES主分片对应的备分片不在同一台节点存放 4.索引的主分片定义好后为什么不能做修改 5.ES如何实现高可用容 ...

  9. docker-compose搭建zookeeper集群环境 CodingCode

    docker-compose搭建zookeeper集群环境 使用docker-compose搭建zookeeper集群环境 zookeeper是一个集群环境,用来管理微服务架构下面的配置管理功能. 这 ...

随机推荐

  1. 慕课网站 & MOOC website

    慕课网站 & MOOC website MOOC, massive open online course Mooc for everyone ! 国家精品课程 & 在线学习平台 慕课平 ...

  2. export html to canvas image

    export html to canvas image canvas.toDataURL https://developer.mozilla.org/en-US/docs/Web/API/HTMLCa ...

  3. Chrome 黑科技

    Chrome 黑科技 秒变记事本 data:text/html, <htmlcontenteditable> OK <a href="data:text/html, &qu ...

  4. nodejs ECMAScript 模块

    node 文档 main.mjs import path from 'path'; import logger from './logger.js'; logger.show('hello world ...

  5. HTTP2 的前世今生

    本文转载自HTTP2 的前世今生 导语 作为一名 Web 后端开发工程师,无论是工作中,还是面试时,对于 HTTP 协议的理解都是必不可少的.而 HTTP2 协议的发布更是解决了 HTTP1.1 协议 ...

  6. Django框架admin后台管理和用户端静态文件

    目录 一.admin后台管理 1. 如何使用 2. 路由分发的本质 二.用户上传的静态文件的展示 1. media配置 2. 手动开设media接口 三.图片防盗链 一.admin后台管理 djang ...

  7. Python基础语法函数

    函数是什么 Python中的函数与数学中的函数不同,它不再只是公式,而是实实在在有着自己特定功能的代码.其实在潜移默化中我们已经有所接触了. 比如print()函数,range()函数,type()函 ...

  8. 看完我的笔记不懂也会懂----ECMAscript 567

    目录 ECMAscript 567 严格模式 字符串扩展 数值的扩展 Object对象方法扩展 数组的扩展 数组方法的扩展 bind.call.apply用法详解 let const 变量的解构赋值 ...

  9. 146. LRU 缓存机制 + 哈希表 + 自定义双向链表

    146. LRU 缓存机制 LeetCode-146 题目描述 题解分析 java代码 package com.walegarrett.interview; /** * @Author WaleGar ...

  10. 剑指 Offer 53 - II. 0~n-1中缺失的数字 + 二分法

    剑指 Offer 53 - II. 0-n-1中缺失的数字 Offer_53 题目详情 java代码 package com.walegarrett.offer; /** * @Author Wale ...