サービスレジストリとしてのnacos

ナコス入門

  • なぜナコスと呼ばれるのですか
前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service。
  • それは何ですか
一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心
Nacos:Dynamic Naming and Configuration Service
Nacos就是注册中心+配置中心的组合
Nacos = Eureka+Config+Bus
  • あなたは何ができますか
 - 注册中心
 - 配置中心
  • ダウンロード
https://github.com/alibaba/Nacos

# 文档
https://nacos.io/zh-cn/index.html

https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_nacos_discovery
  • さまざまなサービス登録センターの比較
サービスの登録と検出のフレームワーク キャップモデル コンソール管理 コミュニティ活動
ユーレカ ap 待機する 2.xクローズドソース
zk cp サポートしません
領事 cp 待機する 高い
ナコス apまたはcpスイッチ 待機する 高い

ps:apは高可用性を意味し、cpはデータの一貫性が必要であることを意味します。


  • nacosをインストールして実行します
1. Java + maven ok
2. https://github.com/alibaba/nacos/releases/tag/1.1.4 下载
3. 解压,startup.cmd双击
4. 访问http://localhost:8848 然后账号密码都是nacos

サービスレジストリデモとしてのNacos

Nacosベースのサービスプロバイダー

  • pom

<!--spring cloud alibaba 2.1.0.RELEASE-->

<dependencyManagement>
	<dependency>
	  <groupId>com.alibaba.cloud</groupId>
	  <artifactId>spring-cloud-alibaba-dependencies</artifactId>
	  <version>2.1.0.RELEASE</version>
	  <type>pom</type>
	  <scope>import</scope>
	</dependency>
</dependencyManagement>

<!-- 上面是父pom -->
 
<dependencies>
    <!-- nacos -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
 </dependencies>
 

  • yaml
server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

management:
  endpoints:
    web:
      exposure:
        include: '*'

  • nacosのクライアントとして
@EnableDiscoveryClient
  • 残りのインターフェースは省略され、インターフェースアドレスは消費者がアクセスできるように公開されます
  • 上記によると、サービスプロバイダー9002を構築することもできます

Nacosに基づくサービス消費者

  • pom同上
  • yaml
server:
  port: 83


spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

# 这里将服务消费者的地址写到了配置文件,方便更改
service-url:
  nacos-user-service: http://nacos-payment-provider


  • nacosのクライアント消費者として、マスターは開始します
@EnableDiscoveryClient
  • restTemplateクラスを構成します。そして負荷分散。
  • 消費者コントローラー
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;


@RestController
@Slf4j
public class OrderNacosController
{
    
    
    @Resource
    private RestTemplate restTemplate;

	// 读取yaml
    @Value("${service-url.nacos-user-service}")
    private String serverURL;

    @GetMapping(value = "/consumer/payment/nacos/{id}")
    public String paymentInfo(@PathVariable("id") Long id)
    {
    
    
        // 服务提供者暴露的rest接口地址  /payment/nacos
        return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);
    }

}
 
 

  • テスト

9001,9002の83回の呼び出しが成功し、秋をサポートしていることがわかりました。

Nacosはapモードとcpモードを切り替えます

# cp
curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP'

# ap
curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=AP'

おすすめ

転載: blog.csdn.net/qq_44783283/article/details/111476606