3 Nacos Server部署
    下载源码编译
    源码下载地址:https://github.com/alibaba/nacos/ 可以用迅雷下载
    cd nacos/ mvn -Prelease-nacos clean install -U
    下载安装包
    下载地址:https://github.com/alibaba/Nacos/releases
    3.1 单机模式
    官方文档: https://nacos.io/zh-cn/docs/deployment.html
    解压,进入nacos目录
    11.jpeg
    单机启动nacos,执行命令

    1. bin/startup.sh -m standalone

    也可以修改默认启动方式
    22.png
    访问nocas的管理端:http://192.168.3.14:8848/nacos ,默认的用户名密码是 nocas/nocas

    3.2 集群模式
    1. jdk1.8+
    2.maven 3.3+
    3.nginx 作为负载均衡
    4.mysql
    5.官网文档: https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
    集群部署架构图
    44.jpeg
    1.下载

    1. cd /usr/local
    2. mkdir nacos
    1. wget https://github.com/alibaba/nacos/releases/download/1.4.1/nacos-server-1.4.1.tar.gz

    创建多个nacos server
    重复三次

    1. tar -zxvf nacos-server-1.4.1.tar.gz
    1. mv nacos nacos8849


    1)单机搭建伪集群,复制nacos安装包,修改为nacos8849,nacos8850,nacos8851
    55.jpeg
    2)以nacos8849为例,进入nacos8849目录
    2.1)修改conf\application.properties的配置,使用外置数据源 要使用mysql5.7+(包括)

    1. #使用外置mysql数据源
    2. spring.datasource.platform=mysql
    3. ### Count of DB:
    4. db.num=1
    5. ### Connect URL of DB:
    6. db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    7. db.user.0=root
    8. db.password.0=root

    66.png
    2.2)将conf\cluster.conf.example改为cluster.conf,添加节点配置

    1. # ip:port
    2. 192.168.65.220:8849
    3. 192.168.65.220:8850
    4. 192.168.65.220:8851


    nacos8850,nacos8851 按同样的方式配置。
    3)创建mysql数据库,sql文件位置:conf\nacos-mysql.sql
    4) 如果出现内存不足:修改启动脚本(bin\startup.sh)的jvm参数

    1. JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256 -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"

    77.png
    5) 分别启动nacos8849,nacos8850,nacos8851
    以nacos8849为例,进入nacos8849目录,启动nacos

    1. bin/startup.sh

    88.jpeg
    6) 测试
    登录 http://192.168.3.14:8849/nacos ,用户名和密码都是nacos
    99.jpeg
    下载nginx

    1. 1.添加官方源仓库
    2. yum install -y yum-utils
    3. yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
    4. 2.安装openresty
    5. yum install -y openresty
    6. cd /usr/local/openresty/

    7)官方推荐,nginx反向代理
    192.168.56.220:8847/nacos/

    1. upstream nacoscluster {
    2. server 127.0.0.1:8849;
    3. server 127.0.0.1:8850;
    4. server 127.0.0.1:8851;
    5. }
    6. server {
    7. listen 8847;
    8. server_name localhost;
    9. location /nacos/{
    10. proxy_pass http://nacoscluster/nacos/;
    11. }
    12. }

    10.jpeg
    访问: http://192.168.3.14:8847/nacos
    1.3 prometheus+grafana监控Nacos(扩展)
    https://nacos.io/zh-cn/docs/monitor-guide.html
    Nacos 0.8.0版本完善了监控系统,支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态。
    1. nacos暴露metrics数据

    1. management.endpoints.web.exposure.include=*

    测试: http://localhost:8848/nacos/actuator/prometheus
    1.png
    2. prometheus采集Nacos metrics数据
    启动prometheus服务
    prometheus.exe —config.file=prometheus.yml
    测试:http://localhost:9090/graph
    2.png
    3. grafana展示metrics数据
    测试: http://localhost:3000/
    3.png
    4. Spring Cloud Alibaba Nacos快速开始
    4.1 Spring Cloud Alibaba版本选型
    4.jpeg
    4.2 搭建Nacos-client服务
    1)引入依赖
    父Pom中支持spring cloud&spring cloud alibaba, 引入依赖

    1. <dependencyManagement>
    2. <dependencies>
    3. <!--引入springcloud的版本-->
    4. <dependency>
    5. <groupId>org.springframework.cloud</groupId>
    6. <artifactId>spring-cloud-dependencies</artifactId>
    7. <version>Hoxton.SR3</version>
    8. <type>pom</type>
    9. <scope>import</scope>
    10. </dependency>
    11. <dependency>
    12. <groupId>com.alibaba.cloud</groupId>
    13. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    14. <version>2.2.1.RELEASE</version>
    15. <type>pom</type>
    16. <scope>import</scope>
    17. </dependency>
    18. </dependencies>

    当前项目pom中引入依赖

    1. <dependency>
    2. <groupId>com.alibaba.cloud</groupId>
    3. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    4. </dependencies>

    2) application.properties中配置

    1. server.port=8002
    2. #微服务名称
    3. spring.application.name=service-user
    4. #配置 Nacos server 的地址

    更多配置:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
    5.jpeg
    3)启动springboot应用,nacos管理端界面查看是否成功注册
    6.jpeg
    4)测试
    使用RestTemplate进行服务调用,可以使用微服务名称 (spring.application.name)
    String url = “http://service-order/order/findOrderByUserId/"+id;
    注意:需要添加@LoadBalanced注解

    1. @Bean
    2. @LoadBalanced
    3. public RestTemplate restTemplate() {
    4. return new RestTemplate();
    5. }

    4.3 Nacos注册中心架构
    7.jpeg