Nacos简介
Nacos的全称是Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。Nacos是阿里旗下的一款开源产品,它主要针对微服务架构中的服务发现和配置管理。简单来说 Nacos 就是注册中心 + 配置中心的组合。
单体架构
单体架构所有的模块全都耦合在一块,所有的模块开发所使用的技术一样,所有的模块都共用一个数据库,存储方式比较单一代码量大,维护困难。
微服务
微服务架构就是把一个单体项目拆分为多个微小的服务,每个微服务可以在自己的进程中运行并与HTTP资源API进行通信。
微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。
单体架构微服务每个模块都可以使用不同的开发技术,开发模式更灵活。
微服务架构只是一个样式,一种风格;可以将一个项目,拆分成多个模块去开发;每一个模块都是单独运行在自己的容器中的;每个模块需要相互通讯(HTTP、MQ);每一个模块之间没有依赖关系,都是单独部署;可以使用多种语言去开发不同模块;
nacos架构
三个Nacos Server 组成一个集群,通过MySQL实现数据的持久化,Nacos的客户端通过Nginx负载均衡来访问到Nacos节点。
安装JDK
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| # 下载华为云镜像的jdk压缩包 cd /opt && wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
# 创建jdk目录 mkdir /usr/local/java && cd /usr/local/java/
# 解压到jdk目录 tar -xf /opt/jdk-8u202-linux-x64.tar.gz -C /usr/local/java
# 把解压文件移动到jdk目录 mv jdk1.8.0_202/* ./ && rmdir jdk1.8.0_202
# 创建环境变量 cat >> /etc/profile << 'EOF' export JAVA_HOME=/usr/local/java export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar EOF
# 激活配置 . /etc/profile
# 验证jdk已经安装 java -version
|
安装MySQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| cd /opt && wget https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm
rpm -Uvh mysql80-community-release-el7-7.noarch.rpm
yum install mysql-community-server -y --nogpgcheck
vim /etc/my.cnf
systemctl enable mysqld.service systemctl start mysqld.service systemctl status mysqld.service
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxx';
set global validate_password.policy=LOW;
set global validate_password.length=4;
SHOW VARIABLES LIKE 'validate_password%';
CREATE USER nacos IDENTIFIED BY 'nacos';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'nacos'@'%'; GRANT ALL PRIVILEGES ON *.* TO 'nacos'@'%';
create database nacos_config character set utf8mb4 collate utf8mb4_unicode_ci;
FLUSH PRIVILEGES;
use nacos_config;
source /opt/nacos_mysql.sql
FLUSH PRIVILEGES;
exit
|
安装nacos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| mkdir /usr/local/nacos && cd /usr/local/nacos
tar -xf /opt/nacos-server-1.4.2.tar.gz -C ./
mv nacos/* ./ && rmdir nacos
vim conf/application.properties
需要注意的是db.url开头的哪一行,行尾可以加上`&allowPublicKeyRetriev`,不然可能报错
vim conf/cd cluster.conf
vim /lib/systemd/system/nacos.service
[Unit] Description=nacos After=network.target
[Service] Type=forking Environment="JAVA_HOME=/usr/local/java" ExecStart=/usr/local/nacos/bin/startup.sh ExecReload=/usr/local/nacos/bin/shutdown.sh ExecStop=/usr/local/nacos/bin/shutdown.sh PrivateTmp=true
[Install] WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable nacos && systemctl start nacos
|
浏览器访问http://服务器IP/nacos
,用户名和密码默认都是nacos