1. 环境准备

组件         版本
JDK 1.8.0_181
IDEA 2021.1
SpringBoot         2.0.4.RELEASE
SpringCloud Finchley.RELEASE
SpringCloud-alibaba-dependencies 0.2.2.RELEASE
Nacos-server 2.0.4

nacos-server版本:

Nacos针对不同版本的SpingCloud提供不同的依赖,各个版本的对应关系请参考官方文档给出的说明:版本说明

2. 父级工程pom依赖

<?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>com.hl.magic</groupId><artifactId>Think-In-SpringCloud</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>SpringCloud-Nacos-config</module><module>SpringCloud-Nacos-consumer</module><module>SpringCloud-Nacos-provider</module></modules><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><java.version>1.8</java.version><spring-boot.version>2.0.4.RELEASE</spring-boot.version><spring-cloud.version>Finchley.RELEASE</spring-cloud.version><nacos.version>0.2.2.RELEASE</nacos.version></properties><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></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><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${nacos.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement></project>

3.服务提供者

3.1 pom.xml依赖

nacos-service-provider服务提供者项目pom依赖

<?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>Think-In-SpringCloud</artifactId><groupId>com.hl.magic</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>SpringCloud-Nacos-provider</artifactId><description>服务提供者</description><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies></project>

3.2 入口主程序

ProviderApplication.java

package com.hl.magic;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/*** Nacos-服务提供者* 注解@EnableDiscoveryClient:开启服务注册发现功能,以便启动服务发现特性,在应用启动时,当前应用便可以将自己注册到注册中心,为其它微服务提供服务*/
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);}
}

3.3 controller

package com.hl.magic.service;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;@RestController
public class TimeController {@GetMapping("/helloNacos")public String helloNacos() {return "hello, nacos! 时间:" + LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);}
}

3.4 application.yaml配置

server:port: 10003#nacos配置
spring:application:name: nacos-service-providercloud:nacos:discovery:server-addr: 192.168.0.103:8848

4. 服务消费者

4.1 pom.xml依赖

nacos-service-consumer服务提供者项目pom依赖

<?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>Think-In-SpringCloud</artifactId><groupId>com.hl.magic</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>SpringCloud-Nacos-consumer</artifactId><description>服务消费者</description><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies></project>

4.2 入口主程序

ConsumerApplication.java

package com.hl.magic;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/*** Nacos-服务提供者* 注解@EnableDiscoveryClient:开启服务注册发现功能,以便启动服务发现特性,在应用启动时,当前应用便可以将自己注册到注册中心,为其它微服务提供服务*/
@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}
}

4.3 controller

package com.hl.magic.controller;import com.hl.magic.service.TimeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;import java.util.HashMap;
import java.util.Map;@RestController
public class FeignController {private RestTemplate restTemplate;@Autowiredpublic void setRestTemplate(RestTemplate restTemplate) {this.restTemplate = restTemplate;}@Bean@LoadBalancedpublic RestTemplate getRestTemplate() {return new RestTemplate();}/*** 远程调用nacos-service-provider的接口*/@GetMapping("/consumer")public String getMsg() {return restTemplate.getForObject("http://nacos-service-provider/helloNacos", String.class);}}

4.4 application.yaml配置

server:port: 10002
spring:application:name: nacos-service-consumercloud:nacos:discovery:server-addr: 192.168.0.103:8848

5. 测试

5.1 启动nacos-server

(启动步骤略)

5.2 启动服务提供者

在IDEA中运行ProviderApplication.java入口主程序,在IDEA控制台上看到如下信息是,说明服务提供者已经注册完成。

5.3启动服务消费者

在IDEA中运行ConsumerApplication.java入口主程序,在IDEA控制台上看到如下信息是,说明消费者服务已经注册完成。

5.4 查看nacos服务列表

5.5 浏览器访问测试

访问服务消费者: http://192.168.0.103:10002/consumer

返回结果如下:

SpringCloud项目接入Nacos服务治理相关推荐

  1. 理解nacos 服务治理(注册中心)、Nacos简介、下载与配置持久化到Mysql

    Nacos简介 什么是Nacos Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流且管理. Nacos帮助您更敏 ...

  2. springcloud是如何进行服务治理的

    本文来说下springcloud微服务框架是如何进行服务治理的 文章目录 概述 技术架构实现 服务注册与发现:Eureka集群 实践经验 统一接入网关:Zuul Zuul1 or Zuul2,同步or ...

  3. Spring Cloud Alibaba【Nacos 服务治理】 高可用保证:Nacos 如何有效构建注册中心集群

    上一节我们学习了 Nacos 注册中心的作用以及单点运行的方法,但是单点运行是分布式应用的大忌,在分布式架构中,任何单点都可能成为系统的瓶颈,因此在生产环境中 Nacos 都需要通过部署集群来为系统带 ...

  4. SpringCloud项目接入华为云Paas平台CES一些注意事项

    1.注册华为云账号获取个人中心->管理我的凭证->访问密钥->下载ak,sk密钥. 2.本地项目maven需要配置华为云私服 <profile> <id>ne ...

  5. 企业微服务治理的解决思路

    背景 随着业务需求的日渐复杂以及产品迭代节奏的不断加快,业务开发部门面临着前所未有的压力.为了抢占先机,用最快的速度准确把握用户需求的变化,优化开发出来的业务产品,微服务(MicroServices) ...

  6. 应用量化时代 | 微服务架构的服务治理之路

    技术随业务而生,业务载技术而行. 近些年来,伴随数字经济的发展,在众多企业的数字化转型之路上,云原生.DevOps.微服务.服务治理等成为行业内不断被探讨的新话题.人们在理解和接受这些新型概念的同时, ...

  7. springboot springcloud区别_SpringCloud微服务全家桶-第一篇!为什么要用微服务

    从今天开始,学习SpringCloud微服务全家桶. 一.引导 1.什么是微服务? 2.微服务之间是如何独立通讯的 3.springCloud和Dubbo有哪些区别? 4.什么是服务熔断?什么是服务降 ...

  8. Alibaba Nacos 介绍以及服务提供者工程接入nacos注册中心

    一.SpringCloud Alibaba Nacos 介绍 Nacos 为 SpringCloud Alibaba 下的一款集 服务注册与发现.服务配置管理于一体的微服务管理平台. 其中在服务管理中 ...

  9. Nacos服务注册与发现---Nacos简介以及原理

    1. 什么是Nacos ​ ​  ​      ​  Nacos是SpringCloud Alibaba的一个服务治理的一个重要组件,英文全称Dynamic Naming and Configurat ...

  10. 【手把手】教你玩转SpringCloud Alibaba之Nacos

    1.什么是Nacos Nacos(Naming Configuration Service) 是一个易于使用的动态服务发现.配置和服务管理平台,用于构建云原生应用程序.而服务发现是微服务架构中的关键组 ...

最新文章

  1. Log4j写入数据库详解
  2. js 添加事件 attachEvent 和 addEventListener 的用法
  3. Matlab稀疏矩阵
  4. java 脚本引擎执行javascript脚本
  5. 一场性能当道 优化为王的沙龙盛宴
  6. access下的分页方案(仿sql存储过程)
  7. C# 使用Win32 API模拟键盘鼠标操作网页
  8. linux下查看cpu,内存,硬盘等硬件信息的方法
  9. WPF笔记(1.1 WPF基础)——Hello,WPF!
  10. pymysql流式读取数据库
  11. 嵌入式Linux系统编程学习之十八进程间通信(IPC)简介
  12. 漫画:如何优化 “字符串匹配算法”?
  13. 人工智能与深度学习概述(1)
  14. PAT甲级 1012 The Best Rank
  15. 微信第三方平台授权流程- java
  16. 定时关闭(程序)进程
  17. python集合元素个数_python如何取set元素个数
  18. mybatis show sql
  19. 华科学子连续三年入选华为 “天才少年” !毕业生获201万最高档年薪!
  20. 基于jQuery的2048游戏

热门文章

  1. sql server中扩展存储过程随笔
  2. SpringBoot自动装配原理与自己写一个starter
  3. 关于Arrays.asList()方法的使用
  4. Luogu P2617 Dynamic Rankings
  5. 为何区块链能成为金融行业的香饽饽?只因这5个关键因素!
  6. 0627-TP整理三(对表的操作,数据的显示)
  7. 翻译 | Learning React Without Using React Part 2
  8. case结构条件语句
  9. 微信小程序不行了?连接应用场景面临挑战
  10. rehat 出现GDB debuginfo-install 问题处理