微服务框架——Nacos安装和背景介绍

微服务框架——Nacos安装和背景介绍

背景介绍

Spring 是基于bean mybatis :SqlSessionFactory xml @Bean

SpringBoot 基于Application 自动配置 @Autowired 自动配置

Spring Cloud 基于Service 微服务框框架共性功能 集成

netfix、alibaba、huawei 都有微服务框架

思考一:微服务之前调用用到哪些技术?

微服务和微服务之前调用存在什么问题,需要用到什么技术?

1、RPC调用(feign、dubbo) RestTemplate webClient 可以进行服务间调用

2、服务注册和发现(nacos、 eureka)、配置统一管理(zookeeper、nacos、redis)、

3、服务链路的排除、微服务的监控

4、服务熔断降级限流:hystrix、sentinel

思考二: 假如没有SpringCloud技术栈,该怎么进行微服务调用?

服务间调用 RestTemplate webclient

//RestTemplate 调用 
String url = "http://mall-order/order/findOrderByUserId/"+id; R result = restTemplate.getForObject(url,R.class);
Spring提供的RestTemplate模板类存在哪些问题?

问题1:首先不能进行负载均衡能力,客户端负载均衡。没有负载均衡

问题2:客户端感知provider的节点存活性,节点是否可用。没有心跳机制

问题3:节点出问题后,怎么剔除这个节点。没有剔除掉线or问题节点的能力

场景介绍:

电商场景下,会员服务去调用订单服务。中心是一个类似注册中心,具有保活、注册、注销,其实就是Nacos功能。

左下角是会员服务,可以看到,使用了两个TimeTask定时任务,一个定时任务定时负责发送心跳供注册中心知道自己还存活,另一个定时任务负责 定时拉取订单服务列表,缓存到客户端中,当会员服务需要去调用服务时候,就立即远程调用订单服务。

右下角是订单服务,订单服务启动时会调用注册接口和停止时候调用注销接口,定时任务负责进行心跳注册,定时确保自己保活。

微服务框架——Nacos安装和背景介绍_第1张图片

Nacos注册instance是什么存储?

临时节点存在内存,持久化节点持久化到磁盘文件 data/naming/id,下图展示的我本机存储的instance实例

微服务框架——Nacos安装和背景介绍_第2张图片

nacos :拉取 持久实例和临时实例一次性全部拉取

配置数据是什么存储?

derby、mysql

1. 什么是 Nacos

官方文档: https://nacos.io/zh-cn/docs/what-is-nacos.html

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理

Nacos 的关键特性包括:

  • 服务发现和服务健康监测

  • 动态配置服务

  • 动态 DNS 服务

  • 服务及其元数据管理

主流的注册中心

CAP : Consistency 一致性、Availability 可用性、Partition tolerance分区容错性

微服务框架——Nacos安装和背景介绍_第3张图片

1.1 Nacos 架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QvmNgGz2-1644204650658)(G:\技术积累\微服务 Nacos\微服务框架.assets\a97899f52bb.jpeg)]

NamingService: 命名服务,注册中心核心接口

ConfigService:配置服务,配置中心核心接口

OpenAPI文档:https://nacos.io/zh-cn/docs/open-api.html

nacos版本: v1.1.4 升级到v1.4.1

1.2 Nacos Server部署

下载源码编译

源码下载地址:https://github.com/alibaba/nacos/ 可以用迅雷下载

cd nacos/ mvn -Prelease-nacos clean install -U cd nacos/distribution/target/

下载安装包

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

1.2.1 单机模式

官方文档: https://nacos.io/zh-cn/docs/deployment.html

解压,进入nacos目录

微服务框架——Nacos安装和背景介绍_第4张图片

单机启动nacos,执行命令

bin/startup.sh -m standalone

也可以修改默认启动方式

微服务框架——Nacos安装和背景介绍_第5张图片

如果是windows,需要修改startup.cmd 的配置文件。

微服务框架——Nacos安装和背景介绍_第6张图片

访问nocas的管理端:http://192.168.3.14:8848/nacos ,默认的用户名密码是 nocas/nocas

微服务框架——Nacos安装和背景介绍_第7张图片

1.2.2 集群模式

官网文档: https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

集群部署架构图

微服务框架——Nacos安装和背景介绍_第8张图片

1)单机搭建伪集群,复制nacos安装包,修改为nacos8849,nacos8850,nacos8851

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TfVMOYog-1644204650663)(G:\技术积累\微服务 Nacos\微服务框架.assets\f5a52198166.jpeg)]

2)以nacos8849为例,进入nacos8849目录

2.1)修改conf\application.properties的配置,使用外置数据源

#使用外置mysql数据源  
spring.datasource.platform=mysql  

### Count of DB: 
db.num=1 

### Connect URL of DB: 
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC 
db.user.0=root 
db.password.0=root

微服务框架——Nacos安装和背景介绍_第9张图片

2.2)将conf\cluster.conf.example改为cluster.conf,添加节点配置

# ip:port  
192.168.3.14:8849  
192.168.3.14:8850  
192.168.3.14:8851

nacos8850,nacos8851 按同样的方式配置。

3)创建mysql数据库,sql文件位置:conf\nacos-mysql.sql

  1. 修改启动脚本(bin\startup.sh)的jvm参数

微服务框架——Nacos安装和背景介绍_第10张图片

  1. 分别启动nacos8849,nacos8850,nacos8851

以nacos8849为例,进入nacos8849目录,启动nacos

bin/startup.sh

微服务框架——Nacos安装和背景介绍_第11张图片

  1. 测试

登录 http://192.168.3.14:8849/nacos ,用户名和密码都是nacos

微服务框架——Nacos安装和背景介绍_第12张图片

7)官方推荐,nginx反向代理

微服务框架——Nacos安装和背景介绍_第13张图片

访问: http://192.168.3.14:8847/nacos

服务实例内部注册表

Map(namespace, Map(group::serviceName, Service))
namespace 隔离的作用
group::serviceName: 隔离作用  group 所有服务同用一个group(通常用于配置中心,起到环境隔离的作用)
Service #就是微服务 mall-order  mall-user

Map clusterMap #集群 BJ  SH 互通 性能:尽可能同一集群(ribbon 负载均衡算法: 优先使用同一集群的)

@JsonIgnore
private Set presistentInstance = new HashSet<>(); #持久实例
@JsonIgnore
private Set ephemeralInstance = new HashSet<>(); #临时实例

Instance: 8020 8021 mall-order

微服务框架——Nacos安装和背景介绍_第14张图片

问题: nacos怎么实现自动注册?

一旦有注册请求,就去调用 onApplicationEvent 事件

微服务框架——Nacos安装和背景介绍_第15张图片

你可能感兴趣的:(微服务,java,microservices,nacos)