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. Spring事物传播行为

    Spring事物传播行为 Spring中事务的定义: Propagation(key属性确定代理应该给哪个方法增加事务行为.这样的属性最重要的部份是传播行为.)有以下选项可供使用: PROPAGATI ...

  2. 读者来信-5 | 如果你家HBase集群Region太多请点进来看看,这个问题你可能会遇到

    前言:<读者来信>是HBase老店开设的一个问答专栏,旨在能为更多的小伙伴解决工作中常遇到的HBase相关的问题.老店会尽力帮大家解决这些问题或帮你发出求救贴,老店希望这会是一个互帮互助的 ...

  3. JS获取HTML DOM元素的方法

    JS获取HTML DOM元素有八种方法: 1.根据id获取标签元素: document.getElementById("id名"); 2.根据标签名获取标签列表: document ...

  4. coderforces Gym 100803A/Aizu 1345/CSU 1536/UVALive 6832 Bit String Reordering(贪心证明缺)

    Portal: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1345  http://codeforces.com/gym/100 ...

  5. Django之auth用户认证

    auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate()    提供 ...

  6. 爬虫简介和requests模块

    目录 爬虫介绍 requests模块 requests模块 1.requests模块的基本使用 2.get 请求携带参数,调用params参数,其本质上还是调用urlencode 3.携带header ...

  7. Java8 学习笔记--函数式接口与lambda表达式的关系

    在java中,lambda表达式与函数式接口是不可分割的,都是结合起来使用的. 对于函数式接口,我们可以理解为只有一个抽象方法的接口,除此之外它和别的接口相比并没有什么特殊的地方.为了确保函数式接口的 ...

  8. 使用Homebrew在Mountain Lion上安装MySQL

    一.安装mysql brew install mysql 二.开机启动mysql brew info mysql 根据提示,设置开机启动 三.设置mysql开启和停止命令 alias mysql-st ...

  9. 尝试用tornado部署django

    import os from tornado.options import options, define from tornado import httpserver from tornado.io ...

  10. html的嵌套规则

    html元素分为块状元素和内联元素,块状元素作为其他元素的容器. 块状元素可以嵌套其他块状元素 块状元素可以嵌套内联元素 内联元素不能嵌套块状元素 p内不能嵌套块状元素 有几个特殊块状元素只能包含内联 ...