マイクロサービスとNacosサーバー構築の詳細なNacosFoundation

一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して7日目です。クリックしてイベントの詳細をご覧ください

マイクロサービスシリーズの記事ディレクトリ

-マイクロサービスとNacosサーバー構築の詳細なNacos基盤


序文

このシリーズでは、マイクロサービスSpringシステムの各フレームワークの基本的な使用法と基本的な原則について詳しく説明します。前回の記事では、SpringCloud Eurekaの高可用性とコア原則を紹介しました。このセクションでは、Nacosの基本概念とNacosサーバーの構築について学習します。


ナコスとは?

Nacosは主に、マイクロサービスエコシステム内のマイクロサービスを検出、構成、および管理し、動的なサービス検出、サービス構成、サービスメタデータ、およびトラフィック管理を実現できます。

Nacosの主な機能

  • サービスディスカバリとサービスヘルスモニタリング
    • Nacosは、DNSベースおよびRPCベースのサービス検出をサポートします
    • Nacosは、サービスのリアルタイムヘルスチェックを提供し、異常なホストまたはサービスインスタンスへのリクエストを防ぎます
  • 動的構成サービス
    • Nacosは、すべての環境のアプリケーション構成とサービス構成を、一元化された外部化された動的な方法で管理します
    • Nacosは、構成バージョンの追跡、カナリアリリース、ワンクリック構成ロールバック、クライアント構成更新ステータスの更新などの構成管理機能を提供します
  • ダイナミックDNSサービス
    • ダイナミックDNSサービスは加重ルーティングをサポートします
  • サービスとそのメタデータ管理
    • Nacosは、管理サービスの説明、ライフサイクル、サービスの静的依存関係分析、サービスの状態、サービストラフィックの管理、ルーティングとセキュリティポリシー、サービスSLA、最も重要なメトリック統計データなど、データセンター内のすべてのサービスとメタデータをサポートします

ナコスエコロジー

現在、Nacosは、SpringCloud、Dubbo、CloudNativeなどのさまざまなエコシステムをサポートしています。

NacosエコロジカルMap.png

Nacosサーバービルド

ダウンロードアドレスから入手可能この記事ではバージョン1.4.2を使用しています

Nacosダウンロードinterface.png

ダウンロード後のディレクトリ

Nacos directory.png

Nacos目录2.png

Nacosは3つの展開モードをサポートしています

  • スタンドアロンモード-テストおよびスタンドアロントライアル用
  • クラスタモード-本番環境向けで、高可用性を確保します
  • マルチクラスターモード-マルチデータセンターシナリオ用

スタンドアロンモードの起動

  • Linux / Unix

bin/startup.sh -m standalone

  • ウィンドウズ

cmd startup.cmd -m standalone

コンソールコンソールimage.jpg出力管理端末xx.xx.xx.xx:8848にアクセスします。アカウント/パスワードはnacos/na…です。

ポート番号8848はデフォルトのポート番号であり、構成ファイルapplication.propertiesのserver.portプロパティを変更できます。

Nacos管理インターフェース

Nacos管理界面.png

スタンドアロンモードは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
复制代码

次に、nacosをスタンドアロンモードで起動します。nacosの組み込みデータベースに書き込まれるすべてのデータは、次のようにmysqlnacosテーブルに書き込まれます。

nacos数据库.png

k8sはスタンドアロンのnac​​osを構築します

---
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
复制代码

おすすめ

転載: juejin.im/post/7085244385117339679