高效搭建Nacos:实现微服务的服务注册与配置中心

一、关于Nacos

1.1 简介

Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。Nacos 提供了简单易用的界面和丰富的功能,使得服务注册与发现、配置管理等操作变得更加直观和高效。

image

微服务生态组件

image

1.2 发展

‍概览

Nacos(Dynamic Naming and Configuration Service)的发展历程反映了其从阿里巴巴内部项目成长为开源社区中备受关注的服务发现和配置管理平台的过程。以下是Nacos的主要发展历程:

早期背景
  • 2008年:Nacos的起源可以追溯到阿里巴巴五彩石项目,该项目旨在完成微服务拆分和业务中台建设。随着阿里巴巴集团内部对微服务架构的需求增加,迫切需要一个高效的服务发现和配置管理工具。
开源与成长
  • 2018年3月:Nacos首次正式对外开源,标志着它开始走向更广泛的开发者社区。
  • 2018年8月:Nacos进入Apache软件基金会的孵化阶段,成为Apache的孵化项目。这一步极大地提升了Nacos在国际上的知名度,并吸引了更多贡献者加入。
功能迭代与版本发布
  • 2019年3月:Nacos正式发布了多个稳定版本,持续改进性能、安全性和易用性。这一时期,Nacos逐渐形成了成熟的产品形态,广泛应用于阿里巴巴内外的各种业务场景。
  • 2020年1月:发布Nacos 1.1.3版本引擎,支持在公有云环境全托管的方式使用Nacos作为注册中心,增强了其云端服务能力。
  • 2020年7月:推出Nacos 1.2.1版本,引入元配置数据管理功能,允许微服务应用在运行时动态修改配置信息和路由规则等,进一步提升了灵活性和响应速度。
  • 2020年:通过对1.X版本内核进行改造,Nacos 2.0专业版实现了性能提升10倍的目标,基本满足了用户对于微服务场景下的高性能需求。此外,还加强了SLA保障,在配置数据的安全性方面进行了优化,并通过MCP协议与Istio生态打通,成为Istio的注册中心之一。
持续发展与社区贡献
  • 2021年及以后:Nacos继续快速迭代,陆续推出了多个新特性,包括但不限于:

    • 更强的多租户支持,帮助不同团队或组织在同一个平台上独立管理各自的服务和配置。
    • 改进后的健康检查机制,确保只有健康的实例能够被发现。
    • 增加了对多种编程语言的支持,使得Nacos的应用范围更加广泛。
  • 截至2024年:Nacos已经成为中国最活跃的开源项目之一,不仅在国内拥有庞大的用户群体,在全球范围内也获得了广泛关注。最新的GA版本为2.4.2,保持向下兼容至1.0.0版本,体现了其良好的稳定性与向后兼容能力。

版本

以下是Nacos版本的主要发展历程:

1. Nacos 1.0 版本(2018年发布)
  • 发布背景:Nacos最早作为阿里巴巴微服务架构的一个核心组件出现,目的是为了解决在微服务场景下的服务发现和配置管理问题。

  • 核心功能

    • 服务发现和健康检查
    • 动态配置管理
    • 动态DNS服务
    • 分布式配置管理支持
  • 特点

    • 提供简单的REST API,支持服务的注册与发现。
    • 支持多种配置方式,包括基于文件、数据库和Nacos自带的存储机制。
    • 初步支持Spring Cloud和Dubbo的集成。
2. Nacos 1.1.x 版本(2019年发布)
  • 发布背景:该版本主要是对1.0版本进行增强和修复,加入更多的企业级功能。

  • 新特性

    • 支持集群模式:通过集群模式,提高系统的可用性和扩展性。
    • 改进的健康检查机制:增加了多种健康检查方式,支持基于HTTP、TCP等多协议的健康检查。
    • 改进的配置管理:支持更为复杂的配置管理功能,如配置的灰度发布、版本控制、配置动态更新等。
3. Nacos 1.2.x 版本(2020年发布)
  • 发布背景:该版本继续增强稳定性与功能,特别是服务发现和配置管理功能的进一步完善。

  • 新特性

    • 支持更多的注册中心协议:比如支持与Kubernetes、Consul等平台的集成。
    • 配置拉取增强:通过动态推送和增量更新机制,改善配置的实时同步性能。
    • 改进的服务健康检查和容错机制
    • 支持命名空间:通过引入命名空间管理不同环境下的配置和服务发现,方便进行多环境隔离。
4. Nacos 2.x 版本(2021年发布)
  • 发布背景:这是Nacos一个重要的版本,除了对核心功能的优化,还加入了一些新的特性和组件。

  • 新特性

    • 性能提升:通过优化底层存储和分布式架构,提升了系统的性能和吞吐量,支持高并发、高可用的场景。
    • 配置服务与服务发现的更紧密集成:Nacos 2.0对配置管理和服务发现的结合进行了更加紧密的设计,使得微服务在运行时能更加高效地管理配置与服务发现。
    • 更好的易用性和扩展性:提供了更加完善的API,方便与其他微服务框架和中间件进行集成。
    • 简化了架构设计:通过去掉了不必要的复杂功能,使得系统更加轻量化。
    • 容器化和Kubernetes集成:进一步加强了对容器化环境和Kubernetes的支持,可以在Kubernetes集群中更方便地部署和管理。
5. Nacos 2.1.x 版本(2022年发布)
  • 发布背景:该版本着重于提升高可用性和分布式系统的稳定性,同时也对Nacos的性能做了大量优化。

  • 新特性

    • 多数据源支持:支持通过不同的数据源(如MySQL、PostgreSQL、Oracle等)来存储配置和服务信息。
    • 增强的集群管理和分布式部署能力:支持分布式部署和高可用集群管理,进一步增强了Nacos的横向扩展能力。
    • 权限管理:新增了更细粒度的权限管理,支持对不同的用户和角色分配不同的访问权限。
    • 跨数据中心支持:加强了Nacos的跨数据中心部署能力。
6. Nacos 2.2.x 版本(2023年发布)
  • 发布背景:该版本继续完善稳定性和性能,特别是在大规模集群环境中的表现。

  • 新特性

    • 增强的动态配置管理:支持更多配置的自动化管理和多维度的灰度发布策略。
    • 提升集群一致性:通过优化集群内部数据同步机制,提升了大规模分布式环境下的一致性和容错能力。
    • 跨平台支持:加强了对多种平台的支持,包括云原生架构和容器化环境的适配。
    • 更好的用户界面:改善了Nacos的Web控制台,使得用户可以更加方便地管理服务、配置和命名空间。

1.3 特性

  1. 服务发现
  • 动态注册与发现:支持基于DNS和HTTP的服务发现机制,让服务可以自动注册到Nacos,并允许其他服务通过名称查找它们。
  • 健康检查:内置健康检查机制,确保只有健康的实例能够被发现。
  • 多数据中心支持:支持跨多个数据中心的服务注册与发现,有助于实现高可用性和地理冗余。
  1. 配置管理
  • 动态配置管理:提供集中式的配置管理能力,支持配置的实时更新,无需重启应用即可生效。
  • 版本控制:为配置项提供历史版本记录,方便回滚和审计。
  • 加密存储:支持敏感数据的加密存储,保障配置的安全性。
  1. 服务管理
  • 命名空间隔离:支持多租户模式,不同业务或团队可以在各自的命名空间内独立管理自己的服务和配置。
  • 分组管理:通过分组对服务进行分类管理,便于组织和维护。
  • 权限控制:提供细粒度的权限控制,确保只有授权用户才能访问特定资源。

1.4 组件架构

Nacos 的架构主要分为以下几个核心组件:

  1. Nacos Server

    • Nacos Server 是整个 Nacos 系统的核心,负责服务注册与发现、配置管理、健康检查等任务。
    • 它可以分布式部署,并通过一致性协议(如 Raft)保证集群中所有节点的数据一致性。
  2. Nacos Client

    • Nacos Client 是应用程序的客户端,它负责与 Nacos Server 进行交互,进行服务的注册、发现、配置读取等操作。
    • 在微服务中,服务提供者和消费者都通过 Nacos Client 进行服务注册和发现。
  3. Nacos Console

    • Nacos Console 是一个 web 界面,用于服务和配置的管理。通过控制台,用户可以注册和管理服务,查看服务的健康状况,修改配置,查看配置版本等。
    • 控制台通常部署在 Nacos Server 上,提供一个方便的操作界面。
  4. Nacos Storage

    • Nacos 提供了多个存储选项,可以通过关系型数据库(如 MySQL)或本地文件系统来存储服务和配置信息。

1.5 应用场景

Nacos(Naming and Configuration Service)是一个开源的动态服务发现、配置管理和服务管理平台,广泛应用于微服务架构中。它为分布式系统提供了服务发现、配置管理、动态DNS服务等多种功能。以下是Nacos的典型应用场景:

1. 微服务架构中的服务发现与注册

  • 场景描述:在微服务架构中,服务实例通常是动态变化的,服务的注册和发现至关重要。Nacos通过提供服务注册与发现功能,帮助系统自动化管理服务实例。

  • 使用方式

    • 服务注册:每个微服务启动时向Nacos注册自己的信息(如IP地址、端口号、元数据等)。
    • 服务发现:其他服务通过Nacos查询到目标服务的地址,实现动态调用。
  • 适用场景

    • 微服务架构中,多个服务实例需要根据实时变化进行动态发现。
    • 需要自动化的负载均衡和故障切换。

2. 动态配置管理

  • 场景描述:在微服务或分布式系统中,配置项可能在多个服务中使用。Nacos提供集中式配置管理,能够支持配置的动态加载和实时推送,避免了手动更新配置文件的麻烦。

  • 使用方式

    • 配置文件(如YAML、JSON等)保存在Nacos配置中心,服务通过Nacos动态获取配置。
    • 支持配置的热更新和灰度发布,配置变更时可以实时推送到应用。
  • 适用场景

    • 需要集中管理微服务配置,配置变动频繁,且希望能自动更新到所有实例。
    • 微服务系统中,不同服务的配置可能依赖于不同环境(如开发、测试、生产等),需要通过命名空间进行隔离。

3. 多环境和多集群管理

  • 场景描述:在跨多个环境(开发、测试、生产)和多个数据中心或集群的应用场景下,Nacos通过命名空间和多集群的支持,帮助用户灵活地管理不同环境下的服务和配置。

  • 使用方式

    • 通过命名空间将不同环境的配置进行隔离,确保不同环境配置不相互干扰。
    • Nacos的多集群支持可用于跨地域的部署,支持多个数据中心的高可用和容灾。
  • 适用场景

    • 企业需要管理多个环境和多个集群,且希望能通过统一的配置管理平台来控制。
    • 配置管理需要跨多个地域或数据中心,确保高可用和容错能力。

4. 服务治理与动态负载均衡

  • 场景描述:在分布式系统中,服务治理是一个重要环节,Nacos不仅提供服务发现和注册,还与负载均衡器(如Nginx、Spring Cloud Load Balancer等)结合,支持动态调整负载均衡策略。

  • 使用方式

    • 服务实例注册到Nacos,其他服务通过Nacos进行服务发现并根据权重等策略动态进行负载均衡。
    • Nacos还可以与API网关进行集成,支持基于规则的流量路由和熔断机制。
  • 适用场景

    • 需要对微服务流量进行细粒度控制和动态负载均衡。
    • 系统需要支持高可用性,出现故障时可以自动切换到健康的服务实例。

5. 动态DNS与服务名称解析

  • 场景描述:Nacos提供DNS功能,可以将服务实例的域名映射到动态的服务实例地址,实现动态DNS解析。

  • 使用方式

    • 服务注册后,Nacos将服务实例与DNS记录进行绑定,外部客户端通过DNS访问服务。
    • 支持基于服务名称的DNS解析,无需关心服务的实际IP地址。
  • 适用场景

    • 服务实例的IP地址动态变化,客户端需要通过域名访问服务。
    • 想要简化服务调用的网络层级,使用统一的域名进行访问。

6. 容器化和Kubernetes环境下的配置管理

  • 场景描述:在Kubernetes等容器化环境中,微服务的生命周期可能较短,服务实例动态变化频繁。Nacos可以与Kubernetes进行集成,帮助容器化应用进行服务发现、配置管理和动态DNS等操作。

  • 使用方式

    • 通过Kubernetes的服务发现与Nacos的服务发现结合,自动管理Pod的注册和发现。
    • 使用Nacos管理容器中的配置文件,并支持动态加载和更新。
  • 适用场景

    • 在Kubernetes集群或其他容器化平台上运行的微服务应用,需要集中管理服务和配置。
    • 动态增加、缩减或更新容器实例时,希望自动更新配置并确保服务可用性。

7. 分布式系统中的元数据管理

  • 场景描述:分布式系统中的微服务通常需要使用元数据(如服务版本、环境信息等)进行管理。Nacos支持服务的元数据存储,可以为服务注册提供更丰富的信息。

  • 使用方式

    • 服务在注册时,可以携带元数据(如版本号、环境类型等),Nacos存储这些信息供其他服务查询。
  • 适用场景

    • 需要管理服务的版本信息、部署环境等元数据,并且允许其他服务根据这些元数据进行服务选择和调用。
    • 对服务的元数据进行统一管理,便于后续的服务治理和版本控制。

8. 分布式系统中的容错与熔断

  • 场景描述:在大规模分布式系统中,服务可能因为各种原因(如网络故障、服务过载等)出现不可用。Nacos可以帮助管理服务的健康状况并与熔断机制结合,提升系统的容错能力。

  • 使用方式

    • 通过健康检查,Nacos自动识别服务实例的健康状态,及时从负载均衡中剔除不健康的实例。
    • 与Spring Cloud等微服务框架集成时,结合熔断器(如Hystrix)提供服务容错功能。
  • 适用场景

    • 微服务系统需要具备自动恢复能力,避免因个别服务故障导致全系统不可用。
    • 在高并发、高负载的场景下,系统需要动态调整服务调用,确保系统的高可用性。

二、安装部署

2.1 部署模式

Nacos 提供了两种两种部署运行模式:单机模式​和集群模式
在这里插入图片描述

单机模式

单机模式又称单例模式​, 拥有所有Nacos的功能及特性,具有极易部署、快速启动等优点。但无法与其他节点组成集群,无法在节点或网络故障时提供高可用能力。单机模式同样可以使用内置Derby数据库(默认)和外置数据库进行存储。

单机模式主要适合于工程师于本地搭建或于测试环境中搭建Nacos环境,主要用于开发调试及测试使用;也能够兼顾部分对稳定性和可用性要求不高的业务场景。

集群模式

集群模式通过自研一致性协议Distro以及Raft协议,将多个Nacos节点构建成了高可用的Nacos集群。数据将在集群中各个节点进行同步,保证数据的一致性。集群模式具有高可用、高扩展、高并发等优点,确保在故障发生时不影响业务的运行。集群模式默认采用外置数据库进行存储,但也可以通过内置数据库进行存储。

该模式主要适合于生产环境,也是社区最为推荐的部署模式。

2.2 安装步骤

这里展示传统安装方式,后续介绍docker安装,更快捷。

(1)环境准备

Nacos 依赖 Java 环境来运行,请确保是在以下版本环境中安装使用:

  • 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
  • 64 bit JDK 1.8+;下载 & 配置。

这里以Windows环境安装

(2)下载安装包

home https://nacos.io/zh-cn/index.html

image-20230704212405167

image-20230705000454179

image-20230705000854389

解压后得到文件

image-20230705000918750

(3)配置

数据库建库

在mysql中新建数据库,库的名称nacos_config

image-20230705002317506

image-20230705002718717

数据库建表

打开nacos中conf文件夹,复制nacos-mysql.sql中的sql语句,在mysql中执行

image-20230705001914067

image-20230705002631256

image-20230705002747480

数据库配置连接

打开nacos中conf文件夹,修改application.properties文件

image-20230504113939851

去掉注释,修改数据库地址,库名,账号,密码

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1234566

image-20230705004709879

在默认的Nacos server配置中,不会对客户端鉴权,即任何能访问Nacos server的用户,都可以直接获取Nacos中存储的配置。

开启Nacos server的鉴权。在Nacos server上修改application.properties中的nacos.core.auth.enabled值为true即可:

nacos.core.auth.enabled=true

image-20230705004910167

启动配置

到/bin/startup.cmd脚本,然后配置单机模式:set MODE=“standalone”,保存后双击即可运行

image-20230705003919319

image-20230705004003320

(4)启动

正常双击startup.cmd脚本,部分需要以管理员运行

image-20230504113555317

image-20230504113616808

image-20230705215601669

(5)浏览器访问

http://127.0.0.1:8848/nacos/#/login

账号:nacos

密码:nacos

image-20230504113641568

通过本文的介绍,我们已经了解了 Nacos 的基本概念,并掌握了传统安装方式。Nacos 作为一个功能强大的服务发现和配置管理平台,在微服务架构中扮演着至关重要的角色,为系统的可靠性、可扩展性和灵活性提供了强有力的保障。

接下来,我们将深入探讨 Nacos 的核心功能,重点介绍如何利用 Nacos 实现高效的配置中心注册中心功能。无论是配置管理还是服务治理,Nacos 都能提供丰富的功能和灵活的扩展方式,帮助开发者轻松实现分布式系统中的服务管理和配置控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945675.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio 中增加的AI功能

前言: 人工智能的发展,在现在,编程技术的IDE里面也融合了AI的基本操做。本例,以微软的Visual Studio中的人工智能的功能介绍例子。 本例的环境: Visual Studio 17.12 1 AI 智能变量检测: 上图展示了一…

【SpringMVC】SpringMVC 快速入门

通常,Web 应用的工作流程如下: 用户通过浏览器访问前端页面; 前端页面通过异步请求向后端服务器发送数据; 后端采用“表现层-业务层-数据层”三层架构进行开发: 表现层接收页面请求将请求参数传递给业务层业务层访问…

如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈

如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈 h5如何转小程序 如果当年你们开发网站是用的h5但是没有开发小程序,也没有使用uniapp这样的混开框架,但是目前根据业务需…

C语言:位段

位段的内存分配: 1. 位段的成员可以是 int unsigned int signed int 或者是char (属于整形家族)类型 2. 位段的空间上是按照需要以4个字节( 类型 int )或者1个字节( char )的方式来开辟的。 3. 位段涉及…

如何在LabVIEW中更好地使用ActiveX控件?

在LabVIEW中,ActiveX控件可以帮助实现与其他应用程序或第三方组件的集成(例如Microsoft Excel、Word、Internet Explorer等)。以下是一些建议,帮助您更好地在LabVIEW中使用ActiveX控件: ​ 1. 理解ActiveX控件的基本原…

Speckly:基于Speckle文档的RAG智能问答机器人

前言 Speckly 是一个基于 检索增强生成 (RAG) 技术的智能问答机器人,它能像一位经验丰富的工程师,理解你的问题,并从 Speckle 文档中精准地找到答案。更厉害的是,它甚至可以帮你生成代码片段!🚀 本文将详…

TencentOS 2.4 final 安装mysql8.0备忘录

准备 tencentOS 2.4 与Red Hat Enterprise Linux 7 是兼容的。 我们首先从oracle官网上下载mysql的源文件。 下载完成后你会得到以下文件: mysql84-community-release-el7-1.noarch.rpm 安装 首先你需要切换到root用户下。 1.安装源文件 yum localinstall my…

怎么在家访问公司服务器?

在日常工作中,特别是对信息技术从业者而言,工作往往离不开公司的服务器。他们需要定期访问服务器,获取一些关键的机密文件或数据。如果您在家办公,并且需要处理未完成的任务,同时需要从公司服务器获取所需的数据&#…

快速搭建springcloud 3.X+mybatis+nacos本地项目

环境&#xff1a; jdk17 idea 2019 springboot:3.2.4 spring-cloud:2023.0.1 大概记录下关键配置 1 创建父工程 创建项目 删除src目录 因为是父子结构不需要。 引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"ht…

衣物褶皱织物褶皱检测数据集VOC+YOLO格式939张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;939 标注数量(xml文件个数)&#xff1a;939 标注数量(txt文件个数)&#xff1a;939 标注…

【C++】B2064 斐波那契数列

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述输入格式输出格式输入输出样例输入输出 &#x1f4af;思路分析**题目本质** &#x1f4af;代码实现与对比**我的代码实现**代码展示思路解析优点不足 **老师的代码…

springboot521基于Spring Boot的校园闲置物品交易系统(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装校园闲置物品交易系统软件来发挥其高效地信息处理的作用&am…

el-table动态行和列及多级表头

主页面 <template><div class"result-wrapper"><dynamic-table :table-data"tableData" :table-header"tableConfig" :tableTitle"tableTitle" :flowParams"flowParams"></dynamic-table></div…

【MySQL】数据库 Navicat 可视化工具与 MySQL 命令行基本操作

&#x1f4af; 欢迎光临清流君的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落 &#x1f4af; &#x1f525; 个人主页:【清流君】&#x1f525; &#x1f4da; 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 &#x1f4da; &#x1f31f;始终保持好奇心&…

2024年12月30日Github流行趋势

项目名称&#xff1a;free-programming-books 项目地址url&#xff1a;https://github.com/EbookFoundation/free-programming-books项目语言&#xff1a;HTML历史star数&#xff1a;343,398今日star数&#xff1a;246项目维护者&#xff1a;vhf, eshellman, davorpa, MHM5000,…

Mysql数据库Redo日志和Undo日志的理解

数据库redo日志和undo日志 1、redo日志1.1 redo日志的作用1.1.1 不使用redo日志的问题1.1.2 使用redo日志的好处 1.2 redo日志刷盘策略 2、undo日志2.1 undo日志的作用2.2 undo日志的简要生成过程 1、redo日志 事务的4大特性&#xff08;ACID&#xff09;&#xff1a;原子性、…

Windows配置cuda,并安装配置Pytorch-GPU版本

文章目录 1. CUDA Toolkit安装2. 安装cuDNN3. 添加环境变量配置Pytorch GPU版本 博主的电脑是Windows11&#xff0c;在安装cuda之前&#xff0c;请先查看pytorch支持的版本&#xff0c;cuda可以向下兼容&#xff0c;但是pytorch不行&#xff0c;请先进入&#xff1a;https://py…

Oracle 数据库 dmp文件从高版本导入低版本的问题处理

当前有个需求是将oracle 19c上的数据备份恢复到oracle 11g上使用。我们通过exp命令远程进行备份&#xff0c;然后通过imp进行恢复时出现IMP-00010: not a valid export file, header failed verification报错。 这是数据库版本问题&#xff0c;在使用exp命令导出的时候使用的客…

RedisDesktopManager新版本不再支持SSH连接远程redis后

背景 RedisDesktopManager(又名RDM)是一个用于Windows、Linux和MacOS的快速开源Redis数据库管理应用程序。这几天从新下载RedisDesktopManager最新版本&#xff0c;结果发现新版本开始不支持SSH连接远程redis了。 解决方案 第一种 根据网上有效的信息&#xff0c;可以回退版…

C# 读取多种CAN报文文件转换成统一格式数据,工具类:CanMsgRead

因为经常有读取CAN报文trace文件的需求&#xff0c;而且因为CAN卡不同、记录软件不同会导致CAN报文trace文件的格式都有差异。为了方便自己后续开发&#xff0c;我写了一个CanMsgRead工具类&#xff0c;只要提供CAN报文路径和CAN报文格式的选项即可将文件迅速读取转换为统一的C…