Spring Cloud Alibaba

由于 Spring Cloud Netflix 项目进入维护模式(将模块置于维护模式意味着 Spring Cloud 团队将不会再向模块中添加新功能,只会修复 block 级别的 bug 以及安全问题),阿里巴巴团队为我们提供了一套新的微服务开发一站式解决方案

详见官方介绍:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

Nacos 概述

是什么?

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nocas 就是注册中心与配置中心的组合,可以替代 Eureka + Config + Bus

能干嘛?

替代 Eureka 做服务注册中心;替代 Config 做服务配置中心

下载、安装与运行

下载地址:https://github.com/alibaba/nacos/releases

下载解压后,打开 bin 目录,打开 cmd 窗口输入 startup.cmd 或者双击 startup.cmd 均可启动(Windows版)

浏览器地址栏输入 localhost:8848/nacos 登录,默认用户名密码都是 nacos,主页面如下:

Nacos 作为注册中心

引入 Maven 依赖

<!-- nacos-discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

需要在配置文件 application.yml 指定 Nacos 地址

spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848 # nacos地址

Nacos 默认是支持负载均衡的,集成了 Ribbon

将服务注册到 Nacos 后可以在服务列表中查看

Nacos 与其它注册中心的对比

Nacos 与其它注册中心特性对比

Nacos 支持 AP(高可用) 和 CP(强一致性) 模式的切换

使用命令 curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP' 进行切换

Nacos 作为配置中心

基础配置

所需 Maven 依赖

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

application.yml

spring:
profiles:
active: dev

bootstrap.yml

server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848
config:
server-addr: localhost:8848
file-extension: yml #配置文件格式

在 Nacos 界面新建配置文件,命名规则是 ${prefix}-${spring.profile.active}.${file-extension},通俗来说就是:项目名-部署环境.文件后缀

分类配置

Nacos 采用 NameSpace + Group + Data Id 的分类方式,类似于 Java 里的包名 + 类名 + 方法名

NameSpace 用于区分部署环境,Group 和 Data Id 逻辑上区分两个目标对象,默认 NameSpace = public;group = DEFAULT_GROUP;Cluster = DEFAULT

Data Id 方案

编写两个不同部署环境的配置文件,只要在 application.yml 中修改了部署环境,就可以获取到对应配置文件的内容

Group 方案

新建配置文件的时候指定分组

通过此配置指定选择的分组

spring:
cloud:
nacos:
config:
group: DEV_GROUP

NameSpace 方案

配置不同的分组,初始默认只有一个 public

通过此配置指定选择的命名空间

spring:
cloud:
nacos:
config:
namespace: 2d22fcfe-2314-49c4-8a67-6b12397f44d2 #命名空间的唯一标识

Nacos 集群与持久化配置

Nacos支持三种部署模式

  • 单机模式:用于测试和单机试用
  • 集群模式:用于生产环境,确保高可用
  • 多集群模式:用于多数据中心场景

Nacos 持久化配置解释

Nacos 默认自带的是嵌入式数据库 derby,对于 Nacos 集群不能实现数据共享,为了能够保证真正持久化,我们需要切换到 Mysql 数据库

1、到 nacos\conf 目录下找到 nacos-mysql.sql 文件,新建一个 nacos_config 数据库,将里面的语句在数据库中执行

2、在 application.properties 末尾添加如下配置

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=youdontknow

3、启动 Nacos,进入页面可以发现之前的数据不见了,新添加的配置可以在 MySQL 数据库中看到

SpringCloud-Alibaba-Nacos 服务注册中心&配置中心的更多相关文章

  1. SpringCloud Alibaba Nacos 服务注册

    业务服务接入Nacos服务治理中心 启动Nacos访问地址为:http://101.200.201.195:8848/nacos/ 创建bom工程用于管理依赖(下方附加源码地址) 准备工作完成后开始接 ...

  2. SpringCloud Alibaba Nacos服务注册与配置管理

    Nacos SpringCloud Alibaba Nacos是一个狗抑郁构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos:Dynamic Naming and Configurat ...

  3. CoSky 高性能 服务注册/发现 & 配置中心

    CoSky 基于 Redis 的服务治理平台(服务注册/发现 & 配置中心) Consul + Sky = CoSky CoSky 是一个轻量级.低成本的服务注册.服务发现. 配置服务 SDK ...

  4. Spring Cloud Alibaba | Nacos服务注册与发现

    目录 Spring Cloud Alibaba | Nacos服务注册与发现 1. 服务提供者 1.1 pom.xml项目依赖 1.2 配置文件application.yml 1.3 启动类Produ ...

  5. SpringCloud Alibaba Nacos 服务治理中心

    目录 一.什么是Nacos? 二.Nacos能干吗? 三.Nacos关键特性 四.Nacos中的基本概念 五.如何安装部署Nacos? 六.Nacos数据持久化 一.什么是Nacos? 英文全称Dyn ...

  6. Spring Cloud Alibaba Nacos 服务注册与发现功能实现!

    Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能. 服务注册与发现功能解决了微服务集群中,调用者和服务提供者连 ...

  7. Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)

    文章目录 摘要 Nacos简介 使用Nacos作为注册中心 安装并运行Nacos 创建应用注册到Nacos 负载均衡功能 使用Nacos作为配置中心 创建nacos-config-client模块 在 ...

  8. SpringCloud之Nacos服务注册(十八)

    一 服务提供配置 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <arti ...

  9. springcloudalibaba与nacos服务注册流程图

    springboot + springcloud + springcloudalibaba + nacos 服务注册流程图: springboot ①WebApplicationContext ②st ...

  10. Nacos笔记01——使用Nacos作为SpringCloud项目的服务注册中心

    前言 刚学SpringCloud时使用eureka作为服务注册中心,随着网飞公司eureka2.x不再更新,以及最近在公司实习接触到的SpringCloud项目是使用Nacos来做服务注册中心的,所以 ...

随机推荐

  1. return console.log()结果为undefined现象的解答

    console.log总是出现undefined--麻烦的console //本文为作者自己思考后总结出的一些理论知识,若有错误,欢迎指出 bug出现 ​ 需求如下:新建一个car对象,调用其中的de ...

  2. 快速创建Flask Restful API项目

    前言 Python必学的两大web框架之一Flask,俗称微框架.它只需要一个文件,几行代码就可以完成一个简单的http请求服务. 但是我们需要用flask来提供中型甚至大型web restful a ...

  3. Java并发基础07. ThreadLocal类以及应用技巧

    在前面的文章(6. 线程范围内共享数据)总结了一下,线程范围内的数据共享问题,即定义一个 Map,将当前线程名称和线程中的数据以键值对的形式存到 Map 中,然后在当前线程中使用数据的时候就可以根据当 ...

  4. 人生苦短,学用python

    1. 我为什么开始学着用 python 啦?   扯扯网上疯传的一组图片.网上流传<人工智能实验教材>的图片,为幼儿园的小朋友们量身打造的实验教材,可谓是火了.甚至有网友调侃道:pytho ...

  5. 痞子衡嵌入式:走进二维码(QR Code)的世界(1)- 引言

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是走进二维码(QR Code)的世界专题的引言. 如今二维码可以说是深入走进大家的生活了,推送名片.扫码支付都离不开它,大家几乎每天都会和 ...

  6. 检查mysql表碎片化脚本

    #!/bin/sh echo -n "MySQL username: " ; read username echo -n "MySQL password: " ...

  7. js中相关的windows方法的使用和location的先关方法的使用

    下面是关于windows的相关方法的简单介绍. setInterval():它有一个返回值,主要是提供给clearInterval使用. setTimeout():它有一个返回值,主要是提供给clea ...

  8. "强调内容"组件:<em> —— 快应用组件库H-UI

     <import name="em" src="../Common/ui/h-ui/text/c_tag_i"></import> & ...

  9. scala_spark实践2

    参考:jianshu.com/p/9d2d225c1951 监听socket获取数据,代码如下:这里使用nc -lk 9999 在ip为10.121.33.44的机器上发送消息 object Sock ...

  10. Windows Server 2016 Storage Replication

    Storage Replication是Windows Server 2016中新增的一项功能,它是利用windows server自带的块存储复制技术 首先,我们简答粗暴的交代一下部署需求: 1.该 ...