美文网首页Spring
SpringCloud--Nacos服务发现(十五)

SpringCloud--Nacos服务发现(十五)

作者: 无剑_君 | 来源:发表于2019-08-28 00:41 被阅读0次

一、Nacos简介

  Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
  Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
  Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

二、服务提供配置

  1. Maven依赖
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.7.RELEASE</version>
    <relativePath/>
</parent>
<groupId>com.xtsz</groupId>
<artifactId>provider</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>provider</name>

<properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--nacos 一定要注意版本问题-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>0.9.0.RELEASE</version>
    </dependency>
</dependencies>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。
组件版本关系:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

  1. 启动类配置
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}

  1. 配置
server.port=8010
spring.application.name=service-provider
spring.cloud.nacos.discovery.server-addr=192.168.247.130:8848
  1. 控制器
@RestController
@RequestMapping("/user")
public class UserController {
    @GetMapping
    public String getUser(){
        return "admin";
    }
}
  1. 测试注册


    测试注册

三、服务消费配置

  1. Maven依赖
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.7.RELEASE</version>
    <relativePath/>
</parent>
<groupId>com.xtsz</groupId>
<artifactId>consumer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>consumer</name>

<properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
</properties>

<dependencies>
    <!--web-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--ribbon-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>
    <!--openfeign-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <!--nacos 一定要注意版本问题-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>0.9.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
  1. 启动类配置
@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApplication {
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}
  1. 配置
server.port=8020
spring.application.name=service-consumer
spring.cloud.nacos.discovery.server-addr=192.168.247.130:8848
  1. 控制器配置
@RestController
@RequestMapping("/test")
public class TestController {
    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping(value = "user", method = RequestMethod.GET)
    public String getUser() {
        return restTemplate.getForObject("http://service-provider/user/", String.class);
    }
}

  1. 测试服务消费
    消费服务注册
    http://localhost:8020/test/user
    服务消费

四、常见问题

相关文章

  • SpringCloud--Nacos服务发现(十五)

    一、Nacos简介   Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、...

  • 服务发现:服务端服务发现

    背景 服务通常需要调用其他服务。单体应用中,服务通过语言级别的方法或者过程调用另外的服务。在传统的分布式部署中,服...

  • 服务发现

    参考资料

  • 服务发现

    服务发现 服务发现就是想要了解集群中是否有进程在监听udp或tcp端口,并且通过名字就可以进行查找和连接 解决服务...

  • 服务发现

    一、什么是服务发现 在传统的系统部署中,服务运行在一个固定的已知的 IP 和端口上,如果一个服务需要调用另外一个服...

  • 服务发现

    参考资料http://dockone.io/article/667 (Zookeeper vs etcd vs C...

  • 服务发现

    参考老钱 服务发现的基本原理服务发现聊聊 Node.js RPC(二)— 服务发现 在传统的系统部署中,服务运行在...

  • 服务发现:客户端服务发现

    背景 服务通常需要调用其他服务。单体应用中,服务通过语言级别的方法或者过程调用另外的服务。在传统的分布式部署中,服...

  • 服务发现:服务注册中心

    背景 服务的客户端采用客户端服务发现或者服务端服务发现来确定发送请求的实例地址。 问题 客户端服务发现 里的客户端...

  • 微服务设计——服务发现

    微服务设计——服务发现 导语 在分布式微服务架构中,一个应用可能由一组职责单一化的服务组成。这时候就需要一个注册服...

网友评论

    本文标题:SpringCloud--Nacos服务发现(十五)

    本文链接:https://www.haomeiwen.com/subject/eajsectx.html