SpringCloud之nacos

以下是官网文档中个人感兴趣的部分整理,官方完整文档链接如下:
Nacos 官方文档

1.nacos是什么?

1.1 概念:快速实现动态服务发现、服务配置、服务元数据及流量管理。

简单来说就是发现、配置和管理微服务。

1.2 nacos地图:

SpringCloud之nacos

1.3 nacos生态图

SpringCloud之nacos

1.4 nacos架构图

SpringCloud之nacos

1.5 逻辑架构及其组件介绍

选取大部分如下:

1.5.1 服务管理:

实现服务CRUD,域名CRUD,服务健康状态检查,服务权重管理等功能

1.5.2 配置管理:

实现配置管CRUD,版本管理,灰度管理,监听管理,推送轨迹,聚合数据等功能

1.5.3 元数据管理:

提供元数据CURD 和打标能力

1.5.4 Nacos-core模块

(1) 事件机制:

实现异步化事件通知,sdk数据变化异步通知等逻辑

(2) 日志模块:

管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮助文档

(3) 回调机制:

sdk通知数据,通过统一的模式回调用户处理。接口和数据结构需要具备可扩展性

(4)寻址模式:

解决ip,域名,nameserver、广播等多种寻址模式,需要可扩展

(5) 推送通道:

解决server与存储、server间、server与sdk间推送性能问题

(6) 容量管理:

管理每个租户,分组下的容量,防止存储被写爆,影响服务可用性

(7) 流量管理:

按照租户,分组等多个维度对请求频率,长链接个数,报文大小,请求流控进行控制

(8) 缓存机制:

容灾目录,本地缓存,server缓存机制。容灾目录使用需要工具

(9)启动模式:

按照单机模式,配置模式,服务模式,dns模式,或者all模式,启动不同的程序+UI

1.5.5 存储模块:

解决数据持久化、非持久化存储,解决数据分片问题

1.5.6 Nameserver:

解决namespace到clusterid的路由问题,解决用户环境与nacos物理环境映射问题

1.5.7 接入管理:

相当于阿里云开通服务,分配身份、容量、权限过程

1.5.8 用户管理:

解决用户管理,登录,sso等问题

1.5.9 权限管理:

解决身份识别,访问控制,角色管理等问题

1.5.10 OpenAPI:

暴露标准Rest风格HTTP接口,简单易用,方便多语言集成

1.5.11 Console:

易用控制台,做服务管理、配置管理等操作

SpringCloud之nacos

1.6 领域模型

(1)数据模型
Nacos 数据模型 Key 由三元组唯一确定,Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP

SpringCloud之nacos

1.7 服务领域模型

SpringCloud之nacos

1.8 配置领域模型

围绕配置,主要有两个关联的实体,一个是配置变更历史,一个是服务标签(用于打标分类,方便索引),由 ID 关联

SpringCloud之nacos

1.9 类视图

(1)Nacos-SDK 类视图

SpringCloud之nacos

1.10 构建、部署及启动模式

SpringCloud之nacos

2.nacos的Java SDK

部分文档如下:

2.1 获取配置

用于服务启动的时候从 Nacos 获取配置。

public String getConfig(String dataId, String group, long timeoutMs) throws NacosException

2.2 监听配置

使用 Nacos 动态监听配置接口来实现Nacos 推送配置变更

public void addListener(String dataId, String group, Listener listener)

2.3 删除监听

取消监听配置,取消监听后配置不会再推送。

public void removeListener(String dataId, String group, Listener listener)

2.4 发布配置

用于通过程序自动发布 Nacos 配置,以便通过自动化手段降低运维成本。

public boolean publishConfig(String dataId, String group, String content, String type) throws NacosException;

2.5 删除配置

用于通过程序自动删除 Nacos 配置,以便通过自动化手段降低运维成本。

public boolean removeConfig(String dataId, String group) throws NacosException

2.6 注册实例

注册一个实例到服务。

void registerInstance(String serviceName, String ip, int port) throws NacosException;

void registerInstance(String serviceName, String ip, int port, String clusterName) throws NacosException;

void registerInstance(String serviceName, Instance instance) throws NacosException;

2.7 注销实例

删除服务下的一个实例。

void deregisterInstance(String serviceName, String ip, int port) throws NacosException;

void deregisterInstance(String serviceName, String ip, int port, String clusterName) throws NacosException;

2.8 获取全部实例

获取服务下的所有实例。

List getAllInstances(String serviceName) throws NacosException;

List getAllInstances(String serviceName, List clusters) throws NacosException;

3.nacos单机部署服务

本人之前写了一篇简单部署文章,链接如下:
公司微服务项目部署调试

随心所往,看见未来。Follow your heart,see night!

欢迎点赞、关注、留言,收藏及转发,一起学习、交流!

Original: https://www.cnblogs.com/folyh/p/16584479.html
Author: folyh
Title: SpringCloud之nacos

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608384/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Maven 依赖调解源码解析(二):如何调试 Maven 源码和插件源码

    有了源码包和 Demo 项目,我们就能够着手分析了。那么问题来了,我们对 Maven 源码并不熟悉,总不能一头扎进去看。那么,我们就用调试的方式分析吧,简单且精准。 在 Demo …

    Java 2023年6月16日
    072
  • 工作用到的免费工具集合,持续收集~~

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    099
  • GitLab 服务搭建

    GitLab 概述 GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。GitLab 产品将分为三个发行版本 CE…

    Java 2023年6月7日
    074
  • JavaWeb开发——软件国际化(动态元素国际化)

    软件国际化的第二个部分,就是动态元素国际化。 数值,货币,时间,日期等数据由于可能在程序运行时动态产生,所以无法像文字一样简单地将它们从应用程序中分离出来,而是需要特殊处理。Jav…

    Java 2023年5月29日
    086
  • 最简单的JVM内存结构图

    JVM内存结构图 大家好,好几天没有更新了,今天的内容有点多,我们详细介绍下JVM内部结构图,还是和之前一样, 案例先行,方便大家理解记忆。 如上代码:在主线程中for循环新建2个…

    Java 2023年6月8日
    089
  • 【docker专栏7】容器自启动与守护进程停止后容器保活

    本文为大家介绍容器自启动以及docker 守护进程挂掉或者docker升级的情况下,如何保证容器服务的正常运行。主要包含三个部分 一、守护进程开机自启 在我们安装docker的时候…

    Java 2023年6月15日
    0106
  • emqtt使用ssl链接

    emqtt需要配置ssl证书才能启用ssl链接,配置如下。 找到etc目录下的listeners.conf 替换自己的ssl证书路径 测试链接 Original: https://…

    Java 2023年5月29日
    0112
  • 基于 Github Actions 自动部署 Hexo 博客

    前言 前不久使用了 Hexo 搭建独立博客,我是部署在我的腾讯云轻量应用服务器上的,每次都需要 hexo deploy 然后打包、上传、解压和刷新 CDN,非常麻烦。我的服务器配置…

    Java 2023年6月8日
    0153
  • java读写锁

    工作遇到了金钱计算,需要用到读写锁保证数据安全。记录一下。 单纯读没有限制,读写、写写的时候会有安全问题。 _hashMap_存在并发线程安全问题,而 _hashtable_线程安…

    Java 2023年6月9日
    087
  • SpringMvc(四)- 下载,上传,拦截器

    1、图片下载 图片下载:将服务器端的文件以流的形式写到客户端,通过浏览器保存到本地,实现下载; 1.1 图片下载步骤 1.通过session获取上下文对象(session.getS…

    Java 2023年6月15日
    090
  • 二进制转换与位运算

    在应用程序常用的进制包含 二进制 八进制 &am…

    Java 2023年6月16日
    083
  • MySql数据库备份与还原

    备份(mysqldump) 实现功能: 1、备份指定的数据库 2、删除指定天数前的备份文件,默认设定了1天 脚本示例(mysql_bak.sh) 数&…

    Java 2023年6月8日
    0100
  • 动力节点Spring框架学习笔记-王鹤(三)spring整合MyBatis

    正在学Spring,整理了相关的学习笔记,分享给大家共同进步,视频看的动力节点王鹤老师讲的spring框架,条理非常清晰,够详细 *视频观看地址 将 MyBatis 与 Sprin…

    Java 2023年6月7日
    078
  • Gradle连载7-配置签名

    一、配置签名信息 /** * 1.testApplicationId用于配置测试App的包名,默认情况下是applicationId + ".test".一般情…

    Java 2023年6月13日
    0134
  • 流程与标准

    流程把一件事分解成多个步骤,将涉及到的人都串了起来。有了研发流程,每个人就知道自己要干什么。换句话说,研发流程界定了每个人的职责范围。接着推理,如果发现职责不明确,那就是流程出了问…

    Java 2023年6月16日
    076
  • SpringBoot进阶教程(七十四)整合ELK

    在上一篇文章《SpringBoot进阶教程(七十三)整合elasticsearch 》,已经详细介绍了关于elasticsearch的安装与使用,现在主要来看看关于ELK的定义、安…

    Java 2023年6月8日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球