SpringCloud项目接入Nacos服务治理
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服务治理相关推荐
- 理解nacos 服务治理(注册中心)、Nacos简介、下载与配置持久化到Mysql
Nacos简介 什么是Nacos Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流且管理. Nacos帮助您更敏 ...
- springcloud是如何进行服务治理的
本文来说下springcloud微服务框架是如何进行服务治理的 文章目录 概述 技术架构实现 服务注册与发现:Eureka集群 实践经验 统一接入网关:Zuul Zuul1 or Zuul2,同步or ...
- Spring Cloud Alibaba【Nacos 服务治理】 高可用保证:Nacos 如何有效构建注册中心集群
上一节我们学习了 Nacos 注册中心的作用以及单点运行的方法,但是单点运行是分布式应用的大忌,在分布式架构中,任何单点都可能成为系统的瓶颈,因此在生产环境中 Nacos 都需要通过部署集群来为系统带 ...
- SpringCloud项目接入华为云Paas平台CES一些注意事项
1.注册华为云账号获取个人中心->管理我的凭证->访问密钥->下载ak,sk密钥. 2.本地项目maven需要配置华为云私服 <profile> <id>ne ...
- 企业微服务治理的解决思路
背景 随着业务需求的日渐复杂以及产品迭代节奏的不断加快,业务开发部门面临着前所未有的压力.为了抢占先机,用最快的速度准确把握用户需求的变化,优化开发出来的业务产品,微服务(MicroServices) ...
- 应用量化时代 | 微服务架构的服务治理之路
技术随业务而生,业务载技术而行. 近些年来,伴随数字经济的发展,在众多企业的数字化转型之路上,云原生.DevOps.微服务.服务治理等成为行业内不断被探讨的新话题.人们在理解和接受这些新型概念的同时, ...
- springboot springcloud区别_SpringCloud微服务全家桶-第一篇!为什么要用微服务
从今天开始,学习SpringCloud微服务全家桶. 一.引导 1.什么是微服务? 2.微服务之间是如何独立通讯的 3.springCloud和Dubbo有哪些区别? 4.什么是服务熔断?什么是服务降 ...
- Alibaba Nacos 介绍以及服务提供者工程接入nacos注册中心
一.SpringCloud Alibaba Nacos 介绍 Nacos 为 SpringCloud Alibaba 下的一款集 服务注册与发现.服务配置管理于一体的微服务管理平台. 其中在服务管理中 ...
- Nacos服务注册与发现---Nacos简介以及原理
1. 什么是Nacos Nacos是SpringCloud Alibaba的一个服务治理的一个重要组件,英文全称Dynamic Naming and Configurat ...
- 【手把手】教你玩转SpringCloud Alibaba之Nacos
1.什么是Nacos Nacos(Naming Configuration Service) 是一个易于使用的动态服务发现.配置和服务管理平台,用于构建云原生应用程序.而服务发现是微服务架构中的关键组 ...
最新文章
- Log4j写入数据库详解
- js 添加事件 attachEvent 和 addEventListener 的用法
- Matlab稀疏矩阵
- java 脚本引擎执行javascript脚本
- 一场性能当道 优化为王的沙龙盛宴
- access下的分页方案(仿sql存储过程)
- C# 使用Win32 API模拟键盘鼠标操作网页
- linux下查看cpu,内存,硬盘等硬件信息的方法
- WPF笔记(1.1 WPF基础)——Hello,WPF!
- pymysql流式读取数据库
- 嵌入式Linux系统编程学习之十八进程间通信(IPC)简介
- 漫画:如何优化 “字符串匹配算法”?
- 人工智能与深度学习概述(1)
- PAT甲级 1012 The Best Rank
- 微信第三方平台授权流程- java
- 定时关闭(程序)进程
- python集合元素个数_python如何取set元素个数
- mybatis show sql
- 华科学子连续三年入选华为 “天才少年” !毕业生获201万最高档年薪!
- 基于jQuery的2048游戏