ダウンロードリンク:
https://pan.baidu.com/s/1E9J52g6uW_VFWY34fHL6zA 抽出コード: vneh
Spring Cloud Alibaba サービス登録および構成センター (非常に詳細)
jNacosインストールディレクトリ直下のbinディレクトリに入り、cmdと入力し、スタンドアロンモードでNacosを起動
startup.cmd -m standalone
http://localhost:8848/nacos のNacos インターフェイスにアクセスします。
サービス プロバイダーを構築し、Nacos に登録する
pom.xml に依存関係を追加する
<!--SpringCloud ailibaba nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
設定ファイルに追加
spring:
application:
name: nacos-payment-provider # 服务的名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址
management:
endpoints:
web:
exposure:
include: '*'
スタートアップ クラスに注釈を追加する
@EnableDiscoveryClient // 开启 Nacos 服务发现功能
@SpringBootApplication
public class PaymentMain9001
{
public static void main(String[] args) {
SpringApplication.run(PaymentMain9001.class, args);
}
}
コントローラー層
@RestController
public class PaymentController
{
@Value("${server.port}")
private String serverPort;
@GetMapping(value = "/payment/nacos/{id}")
public String getPayment(@PathVariable("id") Integer id)
{
return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
}
}
プロジェクトを開始し、サービス リストを表示すると、サービスがサービス リストに追加されていることがわかります
サービス コンシューマーを構築し、Nacos に登録する
依存関係を導入する
<!--SpringCloud ailibaba nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
構成ファイル
spring:
application:
name: nacos-order-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
nacos-user-service: http://nacos-payment-provider
スタートアップ クラスに注釈を付けます: @EnableDiscoveryClient
リボンは Nacos に統合されているため、Nacos は自動的にロード バランシングをサポートします.
RestTemplate 構成クラスを定義します。これは、残りのサービスを呼び出すために使用できます。
/**
* @auther zzyy
* @create 2020-02-23 14:45
*/
@Configuration
public class ApplicationContextConfig
{
@Bean
@LoadBalanced // 使用RestTemplate结合ribbon来做负载均衡的时候已经要加上这个注解
public RestTemplate getRestTemplate()
{
return new RestTemplate();
}
}
コントローラー層
@RestController
@Slf4j
public class OrderNacosController
{
@Resource
private RestTemplate restTemplate;
@Value("${service-url.nacos-user-service}")
private String serverURL;
@GetMapping(value = "/consumer/payment/nacos/{id}")
public String paymentInfo(@PathVariable("id") Long id)
{
return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);
}
}
プロジェクト
を開始します: http://localhost:83/consumer/payment/nacos/13にアクセスして効果を確認し
、9001 と 9002 が交互に表示されることを確認します
構成センターとしての Nacos
依存関係を追加する
<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos-discovery-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
構成センター、構成センターとしての Nacos には、bootstrap.yml と application.yml の 2 つの構成ファイルがあります。
Nacos は springcloud-config と同じ. プロジェクトが初期化されるとき、最初に構成センターから構成がプルされていることを確認する必要があります. 構成がプルされた後にのみ、プロジェクトは正常に開始されます.
springboot での構成ファイルの読み込みは順番に優先され、bootstrap はアプリケーションよりも優先度が高くなります。
ブートストラップ.yml
# nacos配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
# 服务注册
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
# 作为服务配置的客户端
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
#group: DEV_GROUP
#namespace: 7d8f0f5a-6a53-4785-9686-dd460158e5d4
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yaml
# nacos-config-client-test.yaml ----> config.info
アプリケーション.yml
spring:
profiles:
active: dev # 表示开发环境
#active: test # 表示测试环境
#active: info
メインのスタートアップ クラスに注釈を付けます: @EnableDiscoveryClient
コントローラ
@RestController
@RefreshScope //支持Nacos的动态刷新功能。
public class ConfigClientController
{
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}
Nacosにおけるdataidの合成形式とSpringBoot設定ファイルとのマッチングルール
Nacos 追加構成ファイル
概要:
Data ID の命名規則は次のとおりです。yaml スタートアップ プロジェクトを選択するには、サフィックス名に注意してください
。http://localhost:3377/config/info にアクセスしてください。
Nacos には動的更新が付属しており、Nacos で nacos-config-client-dev.yaml の構成内容を変更し、見つかったリクエストの結果も返されます。
今すぐプロファイルを切り替えたい場合
Nacos の設定には nacos-config-client-dev.yaml と nacos-config-client-test.yamlの 2 つのファイルがあります
. 両者の違いは tets や dev とは異なることです. 設定ファイルを使いたい
場合開発環境の場合、中央モジュールの application.yml 構成ファイルの Nacos Configure を変更する必要があります。
Nacos グループ構成
グループ構成は、異なるシナリオで同じ構成ファイル名を使用することです.
DataID 名は同じです, グループ名は異なります, 同じ構成ファイル名ですが、同じグループではありません.
異なるグループで構成ファイルを使用するには?
bootstrap.yml で設定 使用するグループ化はファイルで指定されます
次の 2 つの構成の組み合わせは、DEV_GROUP グループの下にある info 構成ファイルを見つけることです。
効果: DEV_GROUP グループの下にある info 構成ファイルが使用されていることを示します。
Nacos 名前空間の構成
名前空間で新しい名前空間を選択すると、名前空間 ID サービス リストと構成リストにさらに 2 つのスペースを自動的に生成できます
2 つの構成ファイルを dev スペースに追加します。DataID は同じですが、
bootstrap.yml でグループ化が異なります構成ファイル グループ構成と名前空間構成を追加
名前空間: 名前空間を指定するために使用されます
application.yml は開発環境
を指定します 上記の 2 つの構成は、名前空間 ID で TEST_GROUP グループを見つけます: 63fcd633-6d24-4dc8-b2ae-fdee979b0507 の構成結果
:
要約: 最初に名前空間を見つけ、次にグループを見つけ、最後に環境を見つけます
Nacos の永続的な構成
Nacos にはデフォルトで組み込みデータベース derby が付属しています.
すべての Nacos には derby データベースが付属しています. クラスタを構築するとき, 非常に多くの Nacos の構成を確実に統合できるようにする方法はありません.
mysql データベースに切り替えるように derby を構成する
Nacos の conf ディレクトリに sql スクリプト ファイルがあります: nacos-mysql.sql
1. 新しいデータベースを作成します: nacos_config
2. スクリプト ファイルを実行します
3. conf/application.properties ファイルを変更して、mysql データ ソース構成のサポートを追加します(現在は mysql のみをサポートしています)、mysql データ ソースの URL、ユーザー名、およびパスワードを追加します。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root
Nacos を再起動すると、追加された構成が mysql テーブルに追加されます。
Nacos クラスター構成
Nacos 2.0.3 Linux システムのクラスター構築に関する詳細なチュートリアル.
実際の運用環境では、少なくとも 3 つの Nacos が必要です. 1 つしかない場合、単一障害点が発生すると、サービス全体が GG クラスターを直接使用し
ます建築:
- Nginx クラスター
- Nacos クラスター
- Mysql クラスター (主従分離)
Linux に Nacos をインストールする
nacos-server-2.1.0.tar.gzのダウンロードnacos-server-1.4.2.tar.gz
のダウンロード新しい mynacos を /opt の下に作成し、nacos クラスターを保存して、nacos-server-2.1.0.tar.gz をmynacos、解凍
tar -zxvf nacos-server-2.1.0.tar.gz
mysql の永続性に対応するように nacos を構成する
Nacos データベース アドレスを構成します。新しいデータベース nacos-config を作成し、構成の下で SQL スクリプトを実行し、
application.properties ファイルを変更し、追加します。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root
Linux サーバー上の Nacos クラスター構成 cluster.conf
hostname -i コマンドを使用して、マシンの実際の IP を表示します。
この ip は 127.0.0.1 として書き込むことはできません。Linux コマンドの hostname -i で認識できる ip でなければなりません。3 台の
マシンをクラスタとして設定し、ポートはそれぞれ 333、444、および 555
. cluster.conf* ファイルを編集し、すべてのコンテンツを削除してから、次のコンテンツを追加します。
你的ip:333
你的ip:444
你的ip:555
クラスターを構築する
application.propertiesファイルを変更し、mysql を構成し、 cluster.conf
ファイルを変更し、クラスターのポート番号を構成します。nacos_3333、nacos_4444、nacos_5555 の 3 つのポイントをコピーし、application.properties 構成ファイルの server.port を 3333、4444 に変更します。それぞれ5555 、開始する bin ディレクトリを入力します。
./startup.sh
起動成功後、コマンドを実行してプロセスを表示する
ps -ef|grep nacos
nginx を構成する
nginx 構成ファイルを編集し、以下を追加します。
upstream cluster{
server 127.0.0.1:3333
server 127.0.0.1:4444
server 127.0.0.1:5555
}
server {
listen 1111;
server_name localhost;
location / {
proxy_pass http://cluster;
}
}
nginx を再起動します。/nginx -c は、起動する構成ファイルを指定します
./nginx -c /www/server/nginx/conf/nginx.conf