当前位置:   article > 正文

Nacos 服务发现 快速入门_nacos(服务发现)

nacos(服务发现)

Nacos 服务发现 快速入门

一、Nacos 服务发现 – 什么是服务发现 ?

1、 Nacos 服务发现-什么是服务发现

在微服务架构中,整个系统会按职责能力划分为多个服务,通过服务之间协作来实现业务目标。
这样在我们的代码中免不了要进行服务间的远程调用,服务的消费方要调用服务的生产方,
为了完成一次请求,消费方需要知道服务生产方的网络位置(IP地址和端口号)。
  • 1
  • 2
  • 3

2、目前市面上用的比较多的服务发现中心有:

Nacos, Eureka, Consul, Zookeeper 
  • 1

3、nacos 简介:

<a name="anchor1-3"></a>

nacos 是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。
  • 1
  • 2
  • 3

4、nacos 特性:

<a name="anchor1-4"></a>

1)服务发现与服务健康检查。
2)动态配置管理。
3)动态 DNS 服务。
4)服务和元数据管理。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

二、Nacos 服务发现–快速入门–SpringCloud 服务协作流程

1 、spring cloud 常见的集成方式是:

使用 Feign + Ribbon 技术来完成服务间远程调用及负载均衡的。
  • 1

2 、负载均衡:

负载均衡就是将用户请求(流量)通过一定的策略,分摊到多个服务实例上执行,
它是系统处理高并发、缓解网络压力和进行服务端扩容的重要手段之一。

1)服务端负载均衡:如:Nginx 
2)客户端负载均衡:如:Ribbon
  • 1
  • 2
  • 3
  • 4
  • 5

3、Feign 介绍:

Feign 是 Netflix 开发的声明式、模板化的 HTTP 客户端,Feign 可以帮助我们更快捷、优雅地调用 HTTP API.

Feign 的英文表意为“假装、伪装、变形”,可以理解为将 HTTP 报文请求方式伪装为简单的 java 接口调用方式。
  • 1
  • 2
  • 3

三、Nacos 服务发现–快速入门–服务生产者

1、 搭建 nacos 服务端

下载解压安装 nacos-1.1.3,并启动独立服务 startup.cmd -m standalone

在这里插入图片描述

2、打开 idea 创建一个父 Maven 工程 nacos_discovery 工程,为了规范依赖的版本。创建两个子模块( 服务提供者模块 provider, 服务消费者模块 consumer )。

–> idea
–> File
–> New Project
–> Maven
–> Groupld : ( djh.it )
Artifactld : ( nacos_discovery )
Version : 1.0-SNAPSHOT
–> Next
–> Project name: ( nacos_discovery )
Project location: ( C:\java-test\idea2019\nacos_discovery )
–> Finish

(父工程不编写代码,可以删除 src 目录)

3、 在 父工程的 pom.xml 配置文件中导入依赖

	<?xml version="1.0" encoding="UTF-8"?>
	<project xmlns="http://maven.apache.org/POM/4.0.0"
			 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
		<modelVersion>4.0.0</modelVersion>

		<groupId>djh.it</groupId>
		<artifactId>nacos_discovery</artifactId>
		<version>1.0-SNAPSHOT</version>

		<packaging>pom</packaging>

		<properties>
			<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
			<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
			<java.version>1.8</java.version>
		</properties>

		<dependencyManagement>
			<dependencies>
				<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>
				<dependency>
					<groupId>org.springframework.cloud</groupId>
					<artifactId>spring-cloud-dependencies</artifactId>
					<version>Greenwich.RELEASE</version>
					<type>pom</type>
					<scope>import</scope>
				</dependency>
				<dependency>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-dependencies</artifactId>
					<version>2.1.3.RELEASE</version>
					<type>pom</type>
					<scope>import</scope>
				</dependency>
			</dependencies>
		</dependencyManagement>

		<build>
			<plugins>
				<plugin>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-maven-plugin</artifactId>
				</plugin>
			</plugins>
		</build>

	</project>

	<!-- C:\java-test\idea2019\nacos_discovery\pom.xml -->	

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

4、 新增 quickstart_provider, quickstart_consumer 子工程(子模块),

创建两个子模块:

--> 右键 nacos_discovery 父工程
--> Modules 
--> Maven 
--> Groupld : ( djh.it )
	Artifactld : ( quickstart_provider )
	Version : 1.0-SNAPSHOT
--> Next 
--> Module name: ( quickstart_provider )
	Content root : (  C:\java-test\idea2019\nacos_discovery\quickstart_provider )
	Module file location: (  C:\java-test\idea2019\nacos_discovery\quickstart_provider )
--> Finish

--> 右键 nacos_discovery 父工程
--> Modules 
--> Maven 
--> Groupld : ( djh.it )
	Artifactld : ( quickstart_consumer )
	Version : 1.0-SNAPSHOT
--> Next 
--> Module name: ( service1 )
	Content root : ( C:\java-test\idea2019\nacos_discovery\quickstart_consumer )
	Module file location: ( C:\java-test\idea2019\nacos_discovery\quickstart_consumer )
--> Finish
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

5、在子工程 quickstart_provider, quickstart_consumer 的 pom.xml 文件中加入依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>nacos_discovery</artifactId>
        <groupId>djh.it</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>quickstart_provider</artifactId>

    <dependencies>

        <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.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

    </dependencies>

</project>

<!-- C:\java-test\idea2019\nacos_discovery\quickstart_provider\pom.xml -->
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34


  • 1
  • 2

6、创建 配置文件 application.yml

## C:\java-test\idea2019\nacos_discovery\quickstart_provider\src\main\resources\application.yml

server:
  port: 56010  # 启动端口

spring:
  application:
    name: quickstart_provider
  cloud:
    nacos:
      # config:  # 表示配置管理
      discovery:  # 表示服务发现
        server-addr: 127.0.0.1:8849
logging:
  level:
    root: info
    org.springframework: info

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

7、在 服务提供者模块 quickstart_provider 子工程中,编写 Controller

创建 ProviderController.java 类。

/**
 *  C:\java-test\idea2019\nacos_discovery\quickstart_provider\src\main\java\djh\it\nacos\controller\ProviderController.java
 *
 *  2024-4-3 服务提供者 provider Controller
 */

package djh.it.nacos.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ProviderController {

    private static final Logger LOG = LoggerFactory.getLogger(ProviderController.class);

    @GetMapping("/service")
    public String service(){
        LOG.info("provider invoke");
        return "provider invoke";
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

8、在 服务提供者模块 quickstart_provider 子工程中,创建启动类 NacosProviderApp.java。

/**
 *  C:\java-test\idea2019\nacos_discovery\quickstart_provider\src\main\java\djh\it\nacos\NacosProviderApp.java
 *
 *  2024-4-3 服务提供者 启动类 NacosProviderApp.java
 */

package djh.it.nacos;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient  //引入服务发现客户端
@EnableFeignClients  //引入远程调用客户端
public class NacosProviderApp {
    public static void main(String[] args) {
        SpringApplication.run(NacosProviderApp.class, args);
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

9、浏览器地址栏输入:http://127.0.0.1:8848/nacos/

点击 【服务管理】–> 【服务列表】
会发现如下界面:

在这里插入图片描述

在这里插入图片描述

相关链接:【Nacos 配置管理:Nacos 下载,安装 Nacos Server】点击下列链接
Nacos 下载,安装 Nacos Server

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/564421
推荐阅读
相关标签
  

闽ICP备14008679号