微服务的注册中心及Nacos的基本使用

微服务的注册中心

一、微服务的注册中心

注册中心可以说是微服务架构中的”通讯录“ ,它记录了服务和服务地址的映射关系。在分布式架构中, 服务会注册到这里,当服务需要调用其它服务时,就这里找到服务的地址,进行调用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6GFXl5G8-1692703058554)(C:\Users\HUAWI\AppData\Roaming\Typora\typora-user-images\image-20230822185202782.png)]

1、注册中心的主要作用

服务注册中心(下称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者 的一个作用。注册中心一般包含如下几个功能:

(1)服务发现

  • 服务注册/反注册:保存服务提供者和服务调用者的信息
  • 服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送功能
  • 服务路由(可选):具有刷选整合服务提供者的能力

(2)服务配置

  • 配置订阅:服务提供者和服务调用者订阅微服务相关的配置
  • 配置下发:主动将配置推送给服务提供者和服务调用者

(3)服务健康检测

  • 检测服务提供者的健康情况

2、常见的注册中心

(1)Zookeeper

zookeeper它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应 用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项 的管理等。简单来说zookeeper=文件系统+监听通知机制

(2)Eureka

Eureka是在Java语言上,基于Restful Api开发的服务注册与发现组件,Springcloud Netflix中的重要组 件

(3)Consul

Consul是由HashiCorp基于Go语言开发的支持多数据中心分布式高可用的服务发布和注册服务软件, 采用Raft算法保证服务的一致性,且支持健康检查

(4)Nacos

  • Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台
  • Nacos 就是注册中心 + 配置中心的组合,提供简单易用的特性集
  • Nacos 还是Spring Cloud Alibaba 组件之一,负责服务注册与发现
组件名 语言 CAP 一致性算法 服务健康检查 对外暴露接口
Eureka Java AP 可配支持 HTTP
Consul Go CP Raft 支持 HTTP/DNS
Zookeeper Java CP Paxos 支持 客户端
Nacos Java AP Raft 支持 HTTP

二、Nacos简介

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 nacos的作用就是一个注册中心,用来管理注册上来的各个微服务

1、搭建 nacos 环境

(1)安装 nacos

  • 下载地址: https://github.com/alibaba/nacos/releases
  • 下载zip格式的安装包,然后进行解压缩操作

(2)启动 nacos

  • 切换目录

cd nacos/bin

  • 命令启动

startup.cmd -m standalone或者直接双击startup.cmd运行

(3)访问 nacos

打开浏览器输入http://localhost:8848/nacos,即可访问服务, 默认密码是 nacos/nacos

2、将商品微服务注册到nacos

  1. 在pom.xml中添加nacos的依赖

  2. 在主类上添加

    @EnableDiscoveryClient注解

  3. 在application.yml中添加nacos服务的地址

  4. 启动服务, 观察nacos的控制面板中是否有注册上来的商品微服务

3、Namespace 隔离设计

Nacos提供了namespace来实现环境隔离功能

  • nacos中可以有多个namespace
  • namespace下可以有group
  • 不同namespace之间相互隔离,例如不同namespace的服务互相不可见

命名空间用于进行隔离,Namespace 的常用场景之一是不同环境的隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WOioKPeh-1692703058555)(E:\APESOURCE\学习笔记\image\Namespace命名空间.png)]

#将商品服务注册至dev命名空间下
spring:
	application:
		name: server-product
	cloud:
		nacos:
			discovery:
          server‐addr: 127.0.0.1:8848 # 注册中心地址
          namespace: a1f8e863‐3117‐48c4‐9dd3‐e9ddc2af90a8 # 开发环境
          cluster‐name: DEFAULT # 默认集群,可不填写
#注意相互依赖的服务,即有方法调用的服务必须在同一个命名空间下

你可能感兴趣的:(微服务,架构,云原生)