当前位置:   article > 正文

深入微服务-Nacos 基础及Nacos Server搭建_nacos-server

nacos-server

系列文章目录



前言

本系列带着大家深入微服务 Spring体系的各个框架的基本使用以及底层原理。上一篇文章介绍了SpringCloud Eureka的高可用以及核心原理,本节将带着大家学习下Nacos的基础概念以及Nacos Server的搭建


Nacos是什么?

Nacos主要在微服务生态中可以发现、配置和管理微服务,实现动态服务发现、服务配置、服务元数据及流量管理

Nacos 关键特性

  • 服务发现和服务健康监测
    • Nacos 支持基于 DNS 和基于 RPC 的服务发现
    • Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求
  • 动态配置服务
    • Nacos 以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置
    • Nacos 提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态更新的配置管理特性
  • 动态 DNS 服务
    • 动态 DNS 服务支持权重路由
  • 服务及其元数据管理
    • Nacos支持数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据

Nacos 生态

目前Nacos支持多种生态,比如SpringCloud、Dubbo、云原生Cloud Native等

在这里插入图片描述

Nacos Server 搭建

可通过下载地址
本文使用版本1.4.2
Nacos下载界面
下载之后的目录
下载目录
image.jpg

Nacos支持三种部署模式

  • 单机模式 - 用于测试和单机试用
  • 集群模式 - 用于生产环境,确保高可用
  • 多集群模式 - 用于多数据中心场景

单机模式启动

  • Linux/Unix
    bin/startup.sh -m standalone
  • Windows
    cmd startup.cmd -m standalone

Console 控制台输出
image.jpg
访问管理端http://xx.xx.xx.xx:8848,账号/密码为nacos/nacos

端口号8848为默认端口号,可在配置文件application.properties 修改server.port属性

Nacos 管理界面
Nacos管理界面

单机模式支持mysql

默认Nacos使用嵌入式数据库实现数据的存储,0.7版本之后支持mysql数据源能力

  1. 安装数据库,版本要求:5.6.5+
  2. 初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
  3. 修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
 spring.datasource.platform=mysql

### Count of DB:
 db.num=1

### Connect URL of DB:
 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
 db.user.0=nacos
 db.password.0=nacos
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql
nacos表如下
image.jpg

k8s 搭建单机nacos

---
apiVersion: v1
kind: Service
metadata:
  name: nacos
  namespace: #k8s资源空间
spec:
  externalIPs:
    - xx.xx.xx.xx
  selector:
    app: nacos
  ports:
    - name: svc-port
      port: 8848
      targetPort: 8848

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nacos
  namespace: #k8s资源空间
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nacos
  template:
    metadata:
      labels:
        app: nacos
    spec:
      volumes:
        - name: localtime
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai
        - name: timezone
          hostPath:
            path: /etc/timezone
      imagePullSecrets:
        - name: harborsecret
      containers:
        - name: nacos
          image: nacos-server:1.4.2
          imagePullPolicy: Always
          resources:
            limits:
              cpu: "2"
              memory: 2G
            requests:
              cpu: 500m
              memory: 500Mi
          env:
            #运行的profile
            - name: MODE
              value: standalone ## 集群模式
            - name: SPRING_DATASOURCE_PLATFORM
              value: mysql ## 数据源
            - name: MYSQL_SERVICE_HOST
              value: '127.0.0.1' ## MySQL 地址
            - name: MYSQL_SERVICE_DB_NAME
              value: nacos  	## MySQL Nacos 库名
            - name: MYSQL_SERVICE_USER
              value: root		## MySQL Nacos 账号
            - name: MYSQL_SERVICE_PASSWORD
              value: 'root'		## MySQL Nacos 密码
            - name: NACOS_AUTH_ENABLE
              value: 'true'		## 开启认证
            - name: NACOS_AUTH_CACHE_ENABLE
              value: 'true'		## 认证缓存开启
            - name: NACOS_AUTH_IDENTITY_KEY  ## 配置自定义身份识别的key
              value: 'xxx_key'	## 认证缓存开启
            - name: NACOS_AUTH_IDENTITY_VALUE 
              value: 'xxx_value'  ## 配置自定义身份识别的value
          volumeMounts:
            - name: localtime
              mountPath: /etc/localtime
            - name: timezone
              mountPath: /etc/timezone
  • 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
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/338792
推荐阅读
相关标签
  

闽ICP备14008679号