一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して7日目です。クリックしてイベントの詳細をご覧ください。
マイクロサービスシリーズの記事ディレクトリ
- 詳細なマイクロサービス-SpringBoot自動アセンブリの原則
- 詳細なマイクロサービス-SpringCloud呼び出しコンポーネントFeign
- 詳細なマイクロサービス-サービスの登録とSpringCloudEurekaの基盤の発見
- 詳細なマイクロサービス-サービスの登録と高可用性の発見およびSpringCloudEurekaのコア原則
-マイクロサービスとNacosサーバー構築の詳細なNacos基盤
序文
このシリーズでは、マイクロサービスSpringシステムの各フレームワークの基本的な使用法と基本的な原則について詳しく説明します。前回の記事では、SpringCloud Eurekaの高可用性とコア原則を紹介しました。このセクションでは、Nacosの基本概念とNacosサーバーの構築について学習します。
ナコスとは?
Nacosは主に、マイクロサービスエコシステム内のマイクロサービスを検出、構成、および管理し、動的なサービス検出、サービス構成、サービスメタデータ、およびトラフィック管理を実現できます。
Nacosの主な機能
- サービスディスカバリとサービスヘルスモニタリング
- Nacosは、DNSベースおよびRPCベースのサービス検出をサポートします
- Nacosは、サービスのリアルタイムヘルスチェックを提供し、異常なホストまたはサービスインスタンスへのリクエストを防ぎます
- 動的構成サービス
- Nacosは、すべての環境のアプリケーション構成とサービス構成を、一元化された外部化された動的な方法で管理します
- Nacosは、構成バージョンの追跡、カナリアリリース、ワンクリック構成ロールバック、クライアント構成更新ステータスの更新などの構成管理機能を提供します
- ダイナミックDNSサービス
- ダイナミックDNSサービスは加重ルーティングをサポートします
- サービスとそのメタデータ管理
- Nacosは、管理サービスの説明、ライフサイクル、サービスの静的依存関係分析、サービスの状態、サービストラフィックの管理、ルーティングとセキュリティポリシー、サービスSLA、最も重要なメトリック統計データなど、データセンター内のすべてのサービスとメタデータをサポートします
ナコスエコロジー
現在、Nacosは、SpringCloud、Dubbo、CloudNativeなどのさまざまなエコシステムをサポートしています。
Nacosサーバービルド
ダウンロードアドレスから入手可能この記事ではバージョン1.4.2を使用しています
ダウンロード後のディレクトリ
Nacosは3つの展開モードをサポートしています
- スタンドアロンモード-テストおよびスタンドアロントライアル用
- クラスタモード-本番環境向けで、高可用性を確保します
- マルチクラスターモード-マルチデータセンターシナリオ用
スタンドアロンモードの起動
- Linux / Unix
bin/startup.sh -m standalone
- ウィンドウズ
cmd startup.cmd -m standalone
コンソールコンソール出力管理端末xx.xx.xx.xx:8848にアクセスします。アカウント/パスワードはnacos/na…です。
ポート番号8848はデフォルトのポート番号であり、構成ファイルapplication.propertiesのserver.portプロパティを変更できます。
Nacos管理インターフェース
スタンドアロンモードはmysqlをサポートします
デフォルトでは、Nacosは組み込みデータベースを使用してデータを保存します。バージョン0.7以降は、mysqlデータソース機能をサポートします。
- データベースをインストールします。バージョン要件:5.6.5+
- mysqlデータベース、データベース初期化ファイルを初期化します:nacos-mysql.sql
- 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テーブルに書き込まれます。
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
复制代码