zoukankan      html  css  js  c++  java
  • 四: Nacos服务注册与发现

    Nacos服务注册与发现

    一:服务注册与发现简介

    graphic

    大的分布式微服务项目会根据业务,把项目拆分成多个业务模块项目,然后互相调用;

    如何互相调用呢?

    这里我们每个项目模块都需要去nacos服务注册中心注册下,登记下每个项目自身的地址和端口,然后其他的项目模块就可以通过Nacos找到需要调用的其他模块项目的地址了;

    这样就可以实现服务的发现和调用;

    graphic

     二:服务注册发现

    服务提供者:

    1:pom.xml 引入依赖:

    <!-- 服务注册/发现-->
    
    <dependency>
    
        <groupId>com.alibaba.cloud</groupId>
    
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    
    </dependency>

    2:配置application.yml

     配置服务发现:

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

    3: 启动类加主机:

    @SpringBootApplication
    @EnableDiscoveryClient //能够让注册中心发现
    public class NacosOrderApplication{
     
        public static void main(String[] args) {
            SpringApplication.run(NacosStockApplication.class,args);
        }
    }

    三:openfeign服务调用

    1:pom.xml引入依赖:

    <!-- openfeign -->
     
    <dependency>
     
        <groupId>org.springframework.cloud</groupId>
     
        <artifactId>spring-cloud-starter-openfeign</artifactId>
     
    </dependency>

    2:定义Feign接口,生成动态代理对象

    package com.java1234.feign;
     
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
     
     
    @FeignClient("nacos-stock")
    public interface StockFeignService {
     
        @RequestMapping("/stock/test")
        public String test(@RequestParam("info") String info);
    }

    3:启动类:

    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableFeignClients(basePackages = "com.java1234.feign")//开启Feign客户端支持
    public class NacosOrderApplication {
     
        public static void main(String[] args) {
            SpringApplication.run(NacosOrderApplication.class,args);
        }
    }

    四:多实例服务负载均衡

    1: 同一个模块注册多个服务,用同样的服务名,不同的端口注册

    // nacos-stock  实例一
    server:
    port: 8084 servlet: context-path: / spring: application: name: nacos-stock cloud: nacos: discovery: server-addr: 127.0.0.1:8848 namespace: f09c21bb-14e2-4377-a2a0-78664423967a cluster-name: JAVA1234
    // nacos-stock 实例二
    server:
      port: 8088
      servlet:
        context-path: /
     
    spring:
      application:
        name: nacos-stock
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
            namespace: f09c21bb-14e2-4377-a2a0-78664423967a
            cluster-name: JAVA1234

    2: 可以配置权重,默认是轮训 具体详细的配置看文档

    五:服务领域模型

    graphic

  • 相关阅读:
    新基建的福音:智慧楼宇可视化监控系统引领智能化新时代
    基于 HTML5 和 WebGL 的地铁站 3D 可视化系统
    基于 HTML5 WebGL 的医疗物流系统
    基于 HTML5 的 PID-进料系统可视化界面
    基于 HTML5 Canvas 的可交互旋钮组件
    基于 HTML5 WebGL 的民航客机飞行监控系统
    基于 HTML5 Canvas 的元素周期表展示
    基于 HTML5 换热站可视化应用
    基于 HTML5 WebGL 的 3D 智慧隧道漫游巡检
    【python 爬虫】fake-useragent Maximum amount of retries reached解决方案
  • 原文地址:https://www.cnblogs.com/cbpm-wuhq/p/15474194.html
Copyright © 2011-2022 走看看