网站做指向是什么意思,许昌做网站团队,爱在发烧 wordpress,搜狐财经峰会第二章 Spring Cloud Alibaba Nacos之Nacos安装和服务提供者注册 文章目录 Nacos介绍为何使用Nacos#xff1f;一、Nacos下载和安装1. 下载2. 安装Linux/Unix/MacWindows 二、Nacos服务提供者注册1. Nacos代替Eureka2. Nacos服务注册中心3. 引入Nacos Discovery进行服务注册/发…第二章 Spring Cloud Alibaba Nacos之Nacos安装和服务提供者注册 文章目录 Nacos介绍为何使用Nacos一、Nacos下载和安装1. 下载2. 安装Linux/Unix/MacWindows 二、Nacos服务提供者注册1. Nacos代替Eureka2. Nacos服务注册中心3. 引入Nacos Discovery进行服务注册/发现pom.xml父项目pom.xml子项目YML启动类业务类测试 Nacos介绍
NacosNaming Configuration Service 是一个易于使用的动态服务发现、配置和服务管理平台用于构建云原生应用程序
服务发现是微服务架构中的关键组件之一。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Nacos 注册中心配置中心组合Nacos支持几乎所有主流类型的“服务”的发现、配置和管理常见的服务如下 Kubernetes Service gRPC Dubbo RPC Service Spring Cloud RESTful Service
为何使用Nacos
为何使用注册中心呢举个例子先设想一个没有前台的酒店客人入住需要自己寻找适合自己的房间居住但是客人不知道每个房间的情况无法确定哪个房间是打扫干净的客人只能逐个房间寻找这期间会遇到已经入住的房间这样就会造成混乱。正常的情况是酒店会有前台服务哪个房间有人那个房间已经入住了这样客人来住店只需要在前台就可以查找到可以入住的房间实现无需等待快速的入住。所以服务器提供注册和发现机制可以快速找到合适的房间。 采用微服务以后软件微服务组件各自独立但最终还要组合为一个整体作为一个软件系统服务于最终客户这时软件组件之间也需要彼此通讯彼此调用方法。微服务架构内部发起通讯调用方法的一方成为“服务消费者”提供远程方法调用的服务器称为“服务提供者”往往为了提高系统性能会提供多个服务器作为服务提供者此时服务消费者找到服务提供者的过程就类似于用户在找房间的过程。为了帮助服务消费者快速的发现服务提供者在微服务框架中都会引入注册中心。注册中心类似于酒店的前台提供在软件服务的注册和发现功能服务提供者会先在注册中心进行注册声明可以对外提供服务而服务消费者只需要在注册中心就可以快速发现找到可以使用的服务快速使用服务。注册中心实现了服务提供和服务消费的快速整合功能。 一、Nacos下载和安装
1. 下载
官网网址https://nacos.io/zh-cn/index.html
官网文档网址https://nacos.io/zh-cn/docs/quick-start.html 注意文档使用官网推荐的稳定版本 下载地址https://github.com/alibaba/nacos/releases
2. 安装
将下载好的安装包解压解压以后找到bin目录。 执行命令
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行非集群模式):
sh startup.sh -m standaloneWindows
启动命令(standalone代表着单机模式运行非集群模式):
startup.cmd -m standalone为了验证是否成功开启Nacos我们需要访问http://localhost:8848/nacos 出现此界面表示已经成功启动Nacos默认的账号密码是nacos/nacos。 到这里就是成功开启了Nacos服务了。
二、Nacos服务提供者注册
1. Nacos代替Eureka
Nacos可以直接提供注册中心Eureka配置中心Config所以它的好处显而易见我们已经成功安装和启动了Nacos发现Nacos本身就是一个小平台它要比之前的Eureka更加方便不需要我们在自己做配置。
2. Nacos服务注册中心
服务发现是微服务架构中的关键组件之一。在这样的架构中手动为每个客户端配置服务列表可能是一项艰巨的任务并且使得动态扩展极其困难。Nacos Discovery 帮助您自动将您的服务注册到 Nacos 服务器Nacos 服务器会跟踪服务并动态刷新服务列表。此外Nacos Discovery 将服务实例的一些元数据如主机、端口、健康检查 URL、主页等注册到 Nacos。
3. 引入Nacos Discovery进行服务注册/发现
创建新项目由于聚合带来的诸多好处在SpringBoot项目开发中也广泛采用开发中将SpringBoot项目按照功能分成子模块开发所以在使用Spring Cloud Alibaba完成项目的时候采用聚合项目来完成。
父项目 子项目
pom.xml父项目
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.2.13.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.cy/groupIdartifactIdSpringCloudAlibaba-cy/artifactIdversion0.0.1-SNAPSHOT/versionnameSpringCloudAlibaba-cy/namepackagingpom/packagingdescriptionSpringCloudAlibaba-cy/descriptionpropertiesjava.version1.8/java.versionspring-cloud-alibaba-version2.2.5.RELEASE/spring-cloud-alibaba-version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactIdscopeprovided/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba-version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementmodulesmodulecloudAlibaba-Nacos-9001/module/modules/projectpom.xml子项目
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.cy/groupIdartifactIdSpringAlibaba-cy/artifactIdversion0.0.1-SNAPSHOT/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.cy/groupIdartifactIdspringCloudAlibaba-nacos-8001/artifactIdversion0.0.1-SNAPSHOT/versionnamespringCloudAlibaba-nacos-8001/namedescriptionspringCloudAlibaba-nacos-8001/descriptiondependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency/dependencies
/projectYML
server:port: 8001
spring:application:name: nacos-providercloud:discovery:server-addr: 127.0.0.1:8848management:endpoint:web:exposure:include:*启动类
package com.cy.cloudAlibabaNacos8001;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication
EnableDiscoveryClient//加此注解
public class CloudAlibabaNacos8001Application {public static void main(String[] args) {SpringApplication.run(CloudAlibabaNacos8001Application .class, args);}}
业务类
package com.cy.cloudAlibabaNacos8001.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;RestController
public class DemoController {Value(${server.port})private String serverPort;GetMapping(value /cyNacos)public String getServerPort(){return Hello Nacos DiscoveryserverPort;}}测试
启动创建好的服务查看效果。 注意在启动项目前一定要启动Nacos