SpringCloud Alibaba第十二章,升级篇,服务注册与配置中心Nacos
一、为什么SpringCloud Alibaba
1、为什么
有了spring cloud这个微服务的框架,为什么又要使用spring cloud alibaba这个框架了?最重要的原因在于spring
cloud中的几乎所有的组件都使用Netflix公司的产品,然后在其基础上做了一层封装,同时也新增了一些其他框架。然而
Netflix的服务发现组件Eureka已经停止更新,同时Feign、Hystrix、Zuul等也都出于升级或停更进入维护阶段。
所以急需其他的一些替代产品,也就是spring cloud alibaba。
2、SpringCloud Alibaba能做什么
1、Nacos
阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
2、Sentinel
阿里巴巴开源产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
3、RocketMQ
Apache RocketMQ™ 基于 Java 的高性能、高吞吐量的分布式消息和流计算平台。
4、Dubbo
Apache Dubbo™ 是一款高性能 Java RPC 框架。
5、Seata
阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
6、Alibaba Cloud OSS
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储
服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
7、Alibaba Cloud SchedulerX
阿里中间件团队开发的一款分布式任务调度产品,支持周期性的任务与固定时间点触发任务。
8、Alibaba Cloud SMS
覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
3、官网和资料
https://github.com/alibaba/spring-cloud-alibaba
https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html
4、引用
cloud_2020项目总POM中引用:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
二、服务注册与配置中心Nacos
Nacos:Dynamic Naming + Configuration Service
Nacos就是注册中心+配置中心的组合 == 等价于Eureka+Config+Bus
官网:
https://nacos.io/zh-cn/
https://nacos.io/zh-cn/docs/quick-start.html
1、Nacos下载与安装(Server)
这里的nacos即 注册中心Server
下载地址:
https://github.com/alibaba/nacos/releases/tag/1.2.1
运行:
解压后bin目录下的start
浏览:
http://localhost:8848/nacos/#/login
账号:nacos 密码:nacos
2、服务注册中心案例(client)
2.1、服务提供者provider-payment-9001
这里nacos,即注册中心client
新建module,cloudalibaba-provider-payment-9001
<parent>
<artifactId>cloud_2020</artifactId>
<groupId>com.lee.springcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloudalibaba-provider-payment-9001</artifactId>
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>cloud_2020</artifactId>
<groupId>com.lee.springcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloudalibaba-provider-payment-9001</artifactId>
<dependencies>
<!--nacos discovery服务发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.lee.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>