四: 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

原文地址:https://www.cnblogs.com/cbpm-wuhq/p/15474194.html