当前位置: 首页 > news >正文

SpringCloud学习第一季-4

目录

16.SpringCloud Alibaba Nacos服务注册和配置中心

SpringCloud Alibaba简介

1. 为什么出现 SpringCloud Alibaba

2. SpringCloud Alibaba带来了什么

2.1 能干什么

2.2 去哪里下载

2.3 怎么玩

3. 学习资料的获取

17.SpringCloud Alibaba Nacos服务注册和配置中心

一、 Nacos简介

1 是什么

2 能干什么

3 下载地址

4 各注册中心比较

二、 安装并运行Nacos

三、 Nacos作为服务注册中心演示

1 基于Nacos的服务提供者

1.1 建moudle

1.2 pom

1.3 yml

1.4 主启动类

1.5 业务类

1.6 测试

1.7 相同配置再新建一个module 9002

2 基于Nacos的服务消费者

2.1 新建module cloudalibaba-consumer-nacos-order83

2.2 pom

2.3 yml

2.4 主启动类

2.5 业务类

2.6 测试

3. 服务注册中心对比

3.1 Nacos与CAP

3.2 CP与AP的切换

四、 Nacos作为服务配置中心演示

1. Nacos作为配置中心——基础配置

1.1 建module cloudalibaba-config-nacos-client3377

1.2 pom

1.3 yml

1.4 主启动类

1.5 业务类

1.6 在Nacos中添加配置信息

1.7 测试

2. Nacos作为配置中心——分类配置

2.1 分布式开发中的多环境多项目管理问题

2.2 Nacos的图形化管理界面

2.3 Namespace+Group+Data ID三者关系?为什么这么设计?

3. 三种方案加载配置

3.1 DataID方案

3.2 Group方案

1新建一个配置文件,添加到RPOD_GROUP分组

2新建一个配置文件,添加到TEST_GROUP分组

3在config下增加一条group的配置即可。可配置为PROD_GROUP或TEST_GROUP

4测试:

3.3 namesapce方案

1.新建Namesapce

2.回到服务管理-服务列表查看

3.在这两个新建的namespace中分别新建配置文件

4.修改3377的yml文件

5.测试

3.4 总结

4. Nacos集群和持久化配置(重点)

4.1 官网说明

4.2 Nacos嵌入式数据库derby切换到mysql-windows单机版derby到mysql切换步骤

1.首先在nacos安装目录的conf目录下找到一个名为nacos-mysql.sql的sql脚本

2.在conf目录下找到application.properties

3.重新启动nacos,可以看到是个全新的空记录界面,以前是记录进derby

4.在naocs新建配置时,会自动保存到mysql数据库中

(踩坑)1.1.4版本nacos使用外部数据库Mysql8 (这种方式我也亲自试了OK)

5.修改nacos源码(可行)

4.3 Linux版Nacos+MySQL生产环境配置

4.3.1 Nacos 下载Linux版

4.3.2 集群配置步骤(重点)

4.4 微服务cloudalibaba-provider-payment9002启动注册进nacos集群

18.SpringCloud Alibaba Sentinel实现熔断与限流


16.SpringCloud Alibaba Nacos服务注册和配置中心

SpringCloud Alibaba简介

1. 为什么出现 SpringCloud Alibaba

Spring Cloud Netflix项目进入维护模式
Spring Cloud Greenwich.RC1 available now
进入维护模式意味着Spring Cloud Netflix 将不再开发新的组件
我们都知道Spring Cloud 版本迭代算是比较快的,因而出现了很多重大ISSUE都还来不及Fix就又推另一个Release了。进入维护模式意思就是目前一直以后一段时间Spring Cloud Netflix提供的服务和功能就这么多了,不在开发新的组件和功能了。以后将以维护和Merge分支Full Request为主
新组件功能将以其他替代平代替的方式实现
 

2. SpringCloud Alibaba带来了什么

官网

2.1 能干什么

服务限流降级:默认支持 Servlet、Feign、RestTemplate、Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。

服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。

分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。

消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。

阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。

分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。

2.2 去哪里下载

https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md
之前在父工程的pom文件中已经引入了alibaba的依赖

2.3 怎么玩

3. 学习资料的获取

官网:Spring Cloud Alibaba
英文:
https://github.com/alibaba/spring-cloud-alibaba
Spring Cloud Alibaba Reference Documentation
中文:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

17.SpringCloud Alibaba Nacos服务注册和配置中心

对应着我们前面学的:Eureka/Consul/Zookeeper(服务注册) Config+Bus(配置中心)

一、 Nacos简介

Nacos——Naming Configuration Service

1 是什么

●一个更易于构建云原生应用的动态服务发现、配置管理和服务的管理平台。
●Nacos:Dynamic Naming and Configuration Service
●Nacos就是注册中心 + 配置中心的组合, Nacos = Eureka + Config + Bus

2 能干什么

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

3 下载地址

https://github.com/alibaba/Nacos
官网文档:Redirecting to: https://nacos.io/
Spring Cloud Alibaba Reference Documentation

4 各注册中心比较

二、 安装并运行Nacos

本地需要准备java8+maven环境。
官网下载:https://github.com/alibaba/nacos/releases
老师安装的1.1.4,我这里使用的最新版2.0.3
解压安装包,运行bin目录下的startup.cmd
默认的是集群模式,我们需要单机启动cmd中输入:
startup.cmd -m standalone(nacos单机模式启动命令) 即可通过单机模式启动

命令运行成功后直接访问http://localhost:8848/nacos 默认账号密码都是nacos

启动成功。

三、 Nacos作为服务注册中心演示

官网手册

1 基于Nacos的服务提供者

1.1 建moudle

cloudalibaba-provider-payment9001

1.2 pom

父工程中需要引入alibaba的依赖,之前已经引入过了

<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>

本模块pom

<dependencies><!--SpringCloud ailibaba nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- SpringBoot整合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><!--日常通用jar包配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
1.3 yml

按照官网上的说明配置。

server:  port: 9001  spring:  application:  name: nacos-payment-provider  cloud:  nacos:  discovery:  server-addr: localhost:8848 #配置Nacos地址  management:  endpoints:  web:  exposure:  include: '*'
1.4 主启动类
package com.springcloud.alibaba;  import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;  @SpringBootApplication  
@EnableDiscoveryClient  
public class PaymentMain9001 {  public static void main(String[] args) {  SpringApplication.run(PaymentMain9001.class,args);  }  }
1.5 业务类
package com.springcloud.alibaba.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 PaymentController {  @Value("${server.port}")  private String serverPort;  @GetMapping(value = "/payment/nacos/{id}")  public String getPayment(@PathVariable("id") Integer id)  {  return "nacos registry, serverPort: "+ serverPort+"\t id"+id;  }  
}
1.6 测试

这里不像eureka还要写注册中心微服务,直接安装打开nacos即可。
启动9001,查看nacos控制台,注册成功

访问http://localhost:9001/payment/nacos/1
 


nacos服务注册中心+服务提供者9001都OK了

1.7 相同配置再新建一个module 9002

步骤与9001一致,就是端口号改成9002
这里有一个简单的方法,虚拟映射一个和9001配置相同的9011微服务模块,端口号是9011


控制台服务名称

现在有两个支付模块,9001和9002。

http://www.dtcms.com/a/311769.html

相关文章:

  • 第15届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2024年3月10日真题
  • 17、原坐标变换和逆变换在实战中用法
  • 无人机数字图传技术的前沿探索与应用
  • 【昇腾推理PaddleOCR】生产级部署方式
  • 机器学习实战:KNN算法全解析 - 从原理到创新应用
  • LangChain框架入门05:输出解析器使用技巧
  • SpringBoot 服务器配置
  • Json简单的实现
  • 【Android】RecyclerView实现新闻列表布局(1)适配器使用相关问题
  • 【Leetcode】2561. 重排水果
  • 【Django】-6- 登录用户身份鉴权
  • 知识随记-----Qt 实战教程:使用 QNetworkAccessManager 发送 HTTP POST
  • 面试小总结
  • 解决技术问题思路
  • STM32学习记录--Day6
  • Spring 中 Bean 的生命周期
  • 知识蒸馏 - 基于KL散度的知识蒸馏 HelloWorld 示例
  • Linux网络编程【UDP网络通信demon】
  • 网页操作自动化解决方案:如何用Browser-Use+CPolar提升企业运营效率
  • React ahooks——副作用类hooks之useThrottleFn
  • 【智能体cooragent】新智能体创建相关代码解析
  • 双网卡UDP广播通信机制详解
  • 海洋大地测量基准与水下导航系列之九我国海洋PNT最新技术进展(下)
  • P13014 [GESP202506 五级] 最大公因数
  • 使用WSL2开发zephyr
  • 重型机械作业误伤预警响应时间缩短80%!陌讯多模态识别算法在工程现场的应用优化
  • 音频3A处理简介之AGC(自动增益控制)
  • RHCE认证题解
  • 自动驾驶中的传感器技术13——Camera(4)
  • 知识蒸馏 - 最小化KL散度与最小化交叉熵是完全等价的