Spring Cloud 微服务分布式架构 Nacos 作为注册中心实现服务的注册及发现前言一、什么是Nacos?二、 Nacos架构部分会详细介绍。
1.架构图2.Nacos 生态图 二、SpringCloud 整合 Nacos架构实现服务注册
1.创建Nacos配置服务2.创建provide:服务提供者3.创建consumer:服务消费者4.测试启动项目
1、启动成功后,在日志中应该可以看到如下两条信息2、登录Nacos控制台查看服务3、发送请求调用服务提供者 总结
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、什么是Nacos?欢迎来到 Nacos 的世界!
1、Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
2、Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
3、如 Nacos 全景图所示,Nacos 无缝支持一些主流的开源生态,例如
3.1、Spring Cloud
3.2、Apache Dubbo and Dubbo Mesh
3.3、Kubernetes and CNCF。
nacos-provide:服务提供者
nacos-consumer:服务消费者
Nacos官方网站 : https://nacos.io/zh-cn/docs/what-is-nacos.html
1.架构图
特性大图:要从功能特性,非功能特性,全面介绍我们要解的问题域的特性诉求
架构大图:通过清晰架构,让您快速进入 Nacos 世界
业务大图:利用当前特性可以支持的业务场景,及其最佳实践
生态大图:系统梳理 Nacos 和主流技术生态的关系
优势大图:展示 Nacos 核心竞争力
战略大图:要从战略到战术层面讲 Nacos 的宏观优势
如 Nacos 全景图所示,Nacos 无缝支持一些主流的开源生态,例如
Spring Cloud
Apache Dubbo and Dubbo Mesh
Kubernetes and CNCF。
使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。
关于如何在这些生态中使用 Nacos,请参考以下文档:(重点哦,拿小本本记住)
Nacos与Spring Cloud一起使用
Nacos与Kubernetes一起使用
Nacos与Dubbo一起使用
Nacos与gRPC一起使用
Nacos与Istio一起使用
(以上信息均来自官网文档)
下载地址: https://github.com/alibaba/nacos/releases
下载解压后进入bin文件夹(目录:nacosbin),直接双击执行startup.cmd文件,启动成功如下图:
二、SpringCloud 整合 Nacos架构实现服务注册 1.创建Nacos配置服务IDEA中创建聚合工程Nacos作为父工程,其pom.xml如下(重点关注dependencyManagement配置):
2.创建provide:服务提供者1、创建启动类ProvideController,服务的请求入口 ,并添加注解@EnableDiscoveryClient 开启服务注册发现功能:
@RestController
@EnableDiscoveryClient
@SpringBootApplication
public class ProvideController {
public static void main(String[] args) {
SpringApplication.run(NProvideController .class, args);
}
@GetMapping("/helloNacos")
public String helloNacos(){
return "这是服务提供方,nacos!,小新新最帅";
}
}
2、资源文件信息Resource中application.yml文件配置
server:
port: 9527
spring:
application:
name: provide
cloud:
nacos:
discovery:
server-addr: 10.16.10.166
3、pom.xml配置文件信息
3.创建consumer:服务消费者4.0.0 Nacos com.zhx.zhxyyds 0.0.1-SNAPSHOT com.zhx.zhxyyds provide 0.0.1-SNAPSHOT provide Demo project for Spring Boot 1.8 org.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery org.springframework.boot spring-boot-autoconfigure 2.3.0.RELEASE org.springframework.boot spring-boot-maven-plugin
1、在Nacos工程下创建一个SpringBoot项目子工程命名为consumer。创建启动类ConsumerController.java 并添加注解@EnableDiscoveryClient 开启服务注册发现功能
@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class ConsumerController {
public static void main(String[] args) {
SpringApplication.run(ConsumerController.class, args);
}
@Autowired
private RestTemplate restTemplate;
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
@GetMapping("/consumer")
public String test1() {
return restTemplate.getForObject("http://provide/helloNacos",String.class);
}
}
2、资源文件信息Resource中application.yml文件配置
server:
port: 8089
spring:
application:
name: consumer
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
3、pom.xml配置文件信息
4.测试启动项目 1、启动成功后,在日志中应该可以看到如下两条信息 2、登录Nacos控制台查看服务4.0.0 Nacos com.zhx.zhxyyds 0.0.1-SNAPSHOT com.zhx.zhxyyds consumer 0.0.1-SNAPSHOT consumer Demo project for Spring Boot 1.8 org.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery org.springframework.boot spring-boot-autoconfigure 2.3.0.RELEASE org.springframework.boot spring-boot-maven-plugin
2.1、启动命令Win版本
startup.cmd -m standalone
启动成功页面
2.2 输入Nacos网址 http://127.0.0.1:8848/nacos
用户:nacos
密码:nacos
进入首页。
在服务列表中,已经显示了我们刚才创建的两个项目,并可以对其进行简单的监控和管理。
浏览器中访问服务消费者的接口 http://127.0.0.1:8089/consumer, 可以看到成功返回结果
这是服务提供方,nacos!,小新新最帅总结
从以上将Nacos整合到Spring Cloud微服务项目当中,其实跟之前我写的文章有差异,差异就是我之前文章微服务注册用的是Eureka作为注册中心。zookeeper也是一样,其实在项目当中如果想要替换,其实直接替换当前的注册中心服务即可,可以无缝整合到SpringCloud的微服务框架当中。



