2-1 nacosを起動して、サービス登録検出用のカスタムロードバランシングを実現します

メモリポイントの簡単な説明

1 nacos需要下载安装,手动启动
2 nacos通过配置文件中spring-name实现服务的注册
3 以下代码发现服务集群,通过服务实例ServiceInstance获取服务ip和端口
    List<ServiceInstance> instances = discoveryClient.getInstances("微服务名称");
4 这个步骤引入了一个自定义的负载均衡

サービス管理nacosのインストールと使用

nacosをインストールする

  • インストールパッケージをzip形式でダウンロードして解凍します
下载地址:https://github.com/alibaba/nacos/releases
  • デフォルトのスタンドアロンモードでnacosを起動します:startup.cmd-mstandalone
  • nacosにアクセス:http:// localhost:8848 / nacos

nacosサービス登録機能を使用する

  • 1依存関係を追加します
        <!--nacos服务注册发现-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
  • 2構成を追加します
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  • 3メインクラス@EnableDiscoveryClientに注釈を追加します
  • 検証:nacosコンソールのサービスリストで登録が成功したかどうかを確認します
  • クラス4にDiscoveryClientオブジェクトを導入して、メソッドでリモートサービス情報を取得します
        // 根据微服务名称获取集群信息
        List<ServiceInstance> instances = discoveryClient.getInstances("service-product");
        // 随机数实现负载均衡,随机访问集群中某一个服务
        int random = new Random().nextInt(instances.size());
        ServiceInstance serviceInstance = instances.get(random);
        String host = serviceInstance.getHost();
        int port = serviceInstance.getPort();   
        // 拼接远程调用的服务地址
        String url = "http://" + host + ":" + port + "/product/" + pid;
        // 通过restTemplate远程调用对应服务
        Product product = restTemplate.getForObject(url, Product.class);
 = restTemplate.getForObject(url, Product.class);

おすすめ

転載: blog.csdn.net/weixin_45544465/article/details/105936533