Nacosは、マイクロサービスの検出、構成、および管理を支援することに専念しています。Nacosは、動的なサービスディスカバリ、サービス構成、サービスメタデータ、およびトラフィック管理を迅速に実装するのに役立つ一連の使いやすい機能を提供します。
Nacosは、マイクロサービスプラットフォームをより機敏かつ簡単に構築、提供、管理するのに役立ちます。Nacosは、「サービス」(マイクロサービスパラダイム、クラウドネイティブパラダイムなど)を中心とした最新のアプリケーションアーキテクチャを構築するためのサービスインフラストラクチャです。
Nacosをインストールして、Nacos登録センターと構成センターを統合しましょう
刻印
ダウンロード
nacosダウンロードアドレス:https ://github.com/alibaba/nacos/releases
インストール
- インストールパッケージを解凍します
- 設定ファイルを開きます(nacosインストールディレクトリ-> conf-> application.properties)
- データソース構成を変更する
- データベース内のSQLファイルを実行します(nacosインストールディレクトリ-> conf-> nacos-mysql.sql)
- nacosインストールディレクトリの下のbinディレクトリでコマンドを実行します。デフォルトでは、クラスタモードで起動します。スタンドアロンモードで起動する場合は、モードを指定する必要があります。
startup.cmd -m standalone
nacos.core.auth.enabledをtrueに変更することにより、nacos認証を有効にできます。開いた後、クライアントはユーザー名とパスワードを構成する必要があります
クラスター環境の構築
- インストールパッケージを複数回コピーする
- データソースと疑似クラスターを構成するには、ポートを構成する必要があります
- cluster.conf.exampleをコピーし、cluster.confの名前を変更します(構成ファイルディレクトリ:nacosインストールディレクトリ-> conf)
- 構成ファイルcluster.confを開きます
- 各nacosサービスのIPとポートを構成します
- 構成が完了したら、nacosを起動します
startup.cmd -m cluster
SpringcloudはNacosレジストリを統合します
- Mavenの依存関係を追加する
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- application.yml構成を追加します
spring:
cloud:
nacos:
discovery:
service: nacos-discovery # 默认取的是应用程序名称spring.application.name,配置了service就以service的值为准
# 配置Nacos服务连接地址
server-addr: localhost:8848
# 配置服务所在命名空间,默认为public
namespace: public
# 配置服务所在组,默认的就是DEFAULT_GROUP
group: DEFAULT_GROUP # 不支持不同分组的服务之间的调用
# 开启nacos认证后需要配置用户名和密码
username: nacos # 用户名
password: nacos # 密码
- @EnableDiscoveryClientアノテーションをSpringBootスタートアップクラスに追加します
/**
- @ClassName NacosApplication
- @Description
- @Author tigerkin
- @Date 2022/3/2 15:51
*/
@SpringBootApplication
@EnableDiscoveryClient
public class NacosApplication {
public static void main(String[] args) {
SpringApplication.run(NacosApplication.class, args);
}
}
- Springbootプロジェクトを開始すると、サービスがNacosに登録されます。
nacosレジストリの公式ドキュメント:https ://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
サービスコール
サービスコールは、次の2つの方法で行うことができます
SpringcloudはNacos構成センターを統合します
- Mavenの依存関係を追加する
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud 2020.1已经去掉了Bootstrap,需要额外添加依赖 spring-cloud-starter-bootstrap -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
- bootstrap.yml構成を追加します
spring:
application:
name: nacos-config # 应用程序名称
cloud:
nacos:
config:
server-addr: localhost:8848
namespace: public
group: DEFAULt_GROUP
# 配置文件扩展名,默认是通过内部相关规则(应用程序名称、扩展名 )自动生成相关的 Data Id 配置。
# 自动生成的data-id为nacos-config.yaml
file-extension: yaml
# 开启nacos认证后需要配置用户名和密码
username: nacos # 用户名
password: nacos # 密码
# 扩展配置:是一个数组,可以有多个
extension-configs:
# nacos配置中心配置dataId时最好加上文件名后缀
# 如果不加后缀,在扩展配置和共享配置读取配置时会出现以前两种情况:
# 1、在下方dataId中不加后缀读取配置时会默认以properties读取,如果文件是properties则没有问题,如果不是那么配置就读取不到了。
# 2、在下方dataId中加上后缀那么在nacos配置中心就找不到对应dataId的配置。
# 注:最好是nacos配置中心和代码中配置的dataId是带有后缀且是一致的。避免踩坑!!!!!!!!!!!!!
- dataId: nacos-user-server.yaml
group: USER_GROUP
refresh: true
# 共享配置:是一个数组,可以有多个,配置方式与扩展配置一模一样
# 配置优先级:shared-configs < extension-configs < 默认
# shared-configs:
- プロジェクトを構成した後、nacos構成で構成を読み取ることができます。
@Valueに注釈を付けることで、nacosで構成を割り当て、クラスに注釈@RefreshScopeを追加し、nacosで構成を変更すると、注釈を介して注入された値がリアルタイムで更新されます。
nacos構成センターの公式ドキュメント:https ://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config