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

springCloud/Alibaba常用中间件之Nacos服务注册与发现

文章目录

  • SpringCloud Alibaba:
  • 依赖版本补充
  • 六、Nacos:服务注册与发现
    • 1、下载安装Nacos
    • 2、服务注册
      • 1. 导入依赖(这里以服务提供者为例)
      • 2. 修改配置文件和主启动类
      • 3. 创建业务类
      • 4. 测试
    • 3.服务映射
      • 1. 导入依赖
      • 2. 修改配置文件和主启动类
      • 3. 创建业务类和RestTemplate配置类用来提供负载均衡
      • 4. 测试(使用idea中自带的虚拟端口映射)
    • 4. 配置中心
      • 1. 导入配置
      • 2. nacos创建命名空间
      • 3. 修改配置文件--主启动类
      • 4. 创建业务类


SpringCloud Alibaba:

官方学习文档(中文): https://spring-cloud-alibaba-group.github.io/github-pages/2022/zh-cn/2022.0.0.0-RC2.html
微服务的中间件介绍与使用
微服务架构体系图:
在这里插入图片描述

依赖版本补充

下面所有代码中的依赖版本如下:

<properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><hutool.version>5.8.22</hutool.version><lombok.version>1.18.26</lombok.version><druid.version>1.1.20</druid.version><mybatis.springboot.version>3.0.2</mybatis.springboot.version><mysql.version>8.0.11</mysql.version><swagger3.version>2.2.0</swagger3.version><mapper.version>4.2.3</mapper.version><fastjson2.version>2.0.40</fastjson2.version><persistence-api.version>1.0.2</persistence-api.version><spring.boot.test.version>3.1.5</spring.boot.test.version><spring.boot.version>3.2.0</spring.boot.version><spring.cloud.version>2023.0.0</spring.cloud.version><spring.cloud.alibaba.version>2023.0.0.0-RC1</spring.cloud.alibaba.version><knife4j-openapi3.version>4.4.0</knife4j-openapi3.version>
</properties>

六、Nacos:服务注册与发现

1、下载安装Nacos

下载地址:https://nacos.io/download/nacos-server

在这里插入图片描述

下载完之后解压到没有中文的目录录下,并到bin目录下运行cmd启动命令 startup.cmd -m standalone
(standalone代表着单机模式运行,非集群模式)
在这里插入图片描述

默认访问地址为:http://localhost:8848/nacos/ (要是有账号密码默认都是nacos)

在这里插入图片描述

2、服务注册

1. 导入依赖(这里以服务提供者为例)

<dependencies><!--nacos-discovery--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- 引入自己定义的api通用包 --><dependency><groupId>com.atguigu.cloud</groupId><artifactId>cloud-api-commons</artifactId><version>1.0-SNAPSHOT</version></dependency><!--SpringBoot通用依赖模块--><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><!--hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version><scope>provided</scope></dependency><!--test--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>

2. 修改配置文件和主启动类

server:port: 9001
spring:application:name: nacos-payment-providercloud:nacos:discovery:server-addr: localhost:8848 #配置Nacos地址

@SpringBootApplication
@EnableDiscoveryClient/*服务注册*/
public class Main9001 {public static void main(String[] args) {SpringApplication.run(Main9001.class, args);}
}

3. 创建业务类


@RestController
public class PayAlibabaController {@Value("${server.port}")/*动态获取端口*/private String serverPort;@GetMapping(value = "/pay/nacos/{id}")public String getPayInfo(@PathVariable("id") Integer id) {return "nacos registry, serverPort: " + serverPort + "\t id" + id;}
}

4. 测试

在这里插入图片描述

3.服务映射

为了演示这里需要在创建一个消费者去映射

1. 导入依赖

注意:消费者与服务提供者所需要导入的依赖不同多了一个负载均衡依赖


<dependencies><!--nacos-discovery--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--loadbalancer负载均衡--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency><!--web + actuator--><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><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
</dependencies>

2. 修改配置文件和主启动类

server:port: 90
spring:application:name: nacos-order-consumercloud:nacos:discovery:server-addr: localhost:8848
#消费者将要去访问的微服务名称(nacos微服务提供者叫什么你写什么)
service-url:nacos-user-service: http://nacos-payment-provider

主启动类和上面一样

3. 创建业务类和RestTemplate配置类用来提供负载均衡

这里不懂得可以看一下前面的文章《springCloud/Alibaba常用中间件(Consul、LoadBalancer、Openfeign、circuitBreaker)》中的负载均衡


@Configuration
public class RestTemplateConfig {@Bean@LoadBalanced //赋予RestTemplate负载均衡的能力public RestTemplate restTemplate() {return new RestTemplate();}
}

@RestController
public class OrderNacosController {@Resourceprivate RestTemplate restTemplate;/*方式一:在配置文件中配置好要访问的服务。注意:!!!这里是和你配置文件中的service-url下面所配置的名字一样!!!*/@Value("${service-url.nacos-user-service}")private String service;/*方式二:直接写入要访问的服务url*/public static final String service_url = "http://nacos-payment-provider/pay";@GetMapping("/consumer/pay/nacos/{id}")public String paymentInfo(@PathVariable("id") Integer id) {String result = restTemplate.getForObject(service + "/nacos/" + id, String.class);return result + "\t" + "    我是OrderNacosController83调用者。。。。。。";}
}

4. 测试(使用idea中自带的虚拟端口映射)

测试用消费者的接口是否可以访问成功
这里为了测试负载均衡可以在写一个服务,也可以直接使用idea中自带的虚拟端口映射配置如下在这里插入图片描述
在这里插入图片描述 这时就会出现一个服务,启动即可
在这里插入图片描述
这里就可以进行负载均衡的测试了

4. 配置中心

1. 导入配置

注意这里需要导入bootstrap(系统级配置)
依赖为下面的修改bootstrap配置做准备
(这里不太懂的话前面的文章《springCloud/Alibaba常用中间件(Consul、LoadBalancer、Openfeign、circuitBreaker)》中的Consul的服务配置与刷新


<dependencies><!--bootstrap--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency><!--nacos-config--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--nacos-discovery--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--web + actuator--><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><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
</dependencies>

2. nacos创建命名空间

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3. 修改配置文件–主启动类

# nacos配置(bootstrap.yml)
spring:application:name: nacos-config-client-chybcloud:nacos:discovery:server-addr: localhost:8848 #Nacos服务注册中心地址namespace: chyb #关键点:添加命名空间ID,与config保持一致,若是这里不加服务可能会在public(默认)中运行config:server-addr: localhost:8848 #Nacos作为配置中心地址file-extension: yaml #指定yaml格式的配置group: CHYB_TESTGROUP #指定配置组namespace: chyb #指定命名空间(填写的是命名空间ID)
# nacos端配置文件DataId的命名规则是:
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# 本案例的DataID是:nacos-config-client-dev.yaml
# application.yml
server:port: 3377
spring:profiles:active: dev # 表示开发环境#active: prod # 表示生产环境#active: test # 表示测试环境

主启动类:和上面一样这里就不演示了

4. 创建业务类


@RestController
@RefreshScope //在控制器类加入@RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能。
public class NacosConfigClientController {@Value("${config.info}")private String configInfo;@GetMapping("/config/info")public String getConfigInfo() {return configInfo;}
}
  1. 测试
    在这里插入图片描述
    这里可以修改一下nacos中的配置内容测试是否会动态改变

上述大部分代码以上传到gitee:https://gitee.com/banhuayue/springCloud-Alibaba-code.git

笔记参考来自尚硅谷

相关文章:

springCloud/Alibaba常用中间件之Nacos服务注册与发现

文章目录 SpringCloud Alibaba:依赖版本补充六、Nacos:服务注册与发现1、下载安装Nacos2、服务注册1. 导入依赖(这里以服务提供者为例)2. 修改配置文件和主启动类3. 创建业务类4. 测试 3.服务映射1. 导入依赖2. 修改配置文件和主启动类3. 创建业务类和RestTemplate配置类用来提…...

鸿蒙 所有API缩略图鉴

从HarmonyOS NEXT Developer Preview1&#xff08;API 11&#xff09;版本开始&#xff0c;HarmonyOS SDK以 Kit 维度提供丰富、完备的开放能力&#xff0c;涵盖应用框架、应用服务、系统、媒体、AI、图形在内的六大领域&#xff0c;共计30000个API...

互联网大厂Java求职面试:AI集成场景下的技术挑战与架构设计

标题&#xff1a;互联网大厂Java求职面试&#xff1a;AI集成场景下的技术挑战与架构设计 第一幕&#xff1a;向量数据库选型与性能调优 技术总监&#xff08;严肃脸&#xff09;&#xff1a; 郑薪苦&#xff0c;我们最近在做一个基于大语言模型的企业级AI应用&#xff0c;需要…...

搜索与图论

文章目录 搜索与图论深度优先搜索 DFS[843. n-皇后问题 - AcWing题库](https://www.acwing.com/problem/content/845/) 宽度优先搜索 BFS[844. 走迷宫 - AcWing题库](https://www.acwing.com/problem/content/description/846/) 树与图的存储[846. 树的重心 - AcWing题库](http…...

【递归、搜索和回溯】二叉树中的深搜

个人主页 &#xff1a; zxctscl 专栏 【C】、 【C语言】、 【Linux】、 【数据结构】、 【算法】 如有转载请先通知 文章目录 前言1 2331. 计算布尔二叉树的值1.1 分析1.2 代码 2 129. 求根节点到叶节点数字之和2.1 分析2.2 代码 3 814. 二叉树剪枝3.1 分析3.2 代码 4 98. 验证…...

通俗的理解MFC消息机制

1. 消息是什么&#xff1f; 想象你家的门铃响了&#xff08;比如有人按门铃、敲门、或者有快递&#xff09;&#xff0c;这些都是“消息”。 在 MFC 中&#xff0c;消息就是系统或用户触发的各种事件&#xff0c;比如鼠标点击&#xff08;WM_LBUTTONDOWN&#xff09;、键盘输入…...

Windows CMD通过adb检查触摸屏Linux驱动是否被编译

检查 CONFIG_TOUCHSCREEN_GT9XX 是否启用&#xff0c;检查内核是否编译了Goodix GT9XX系列触摸屏的驱动支持 Windows CMD.exe输入&#xff1a; adb shell “zcat /proc/config.gz | grep CONFIG_TOUCHSCREEN_GT9XX” 如果返回CONFIG_TOUCHSCREEN_GT9XXy&#xff0c;表示驱动已编…...

Java并发编程-锁(八)

文章目录 Condition的使用和实现使用add(T t) 实现等待队列await()signal()signalAll() 总结 Condition的使用和实现 我们知道&#xff0c;任意一个Java Object&#xff0c;都拥有一组监视器方法&#xff0c;主要包括wait()、 wait(long timeout)、notify()以及notifyAll()方法…...

idea如何快速生成测试类

点击 code -> generate -> Test...

FPGA笔试题review

今天翻网盘上的旧资料,找到了一套20年9月份在武汉某芯片公司食堂做的笔试题(我在做笔试题,旁边的人在嗦酸辣粉,也算是记忆犹新),借着这套题目,正好也可以捡一捡关于FPGA的基础知识点,算是温故而知新。答案更新中 1、名词解释 (1)FPGA、ASIC (2)CLB、LUT (3)时…...

[C++类和对象]构造函数和析构函数

类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f; 并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6 个默认成员函数。 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器会…...

Java【网络原理】(5)深入浅出HTTPS:状态码与SSL/TLS加密全解析

目录 1.前言 2.正文 2.1状态码 2.2HTTP与HTTPS的关系 2.3SSL协议 2.3.1对称加密 2.3.2非对称加密 2.3.3中间人攻击 2.3.4校验机制 2.3.4.1证书 2.3.4.2数字签名 1. 数字签名的生成过程 2. 数字签名的验证过程 2.4TLS协议&#xff08;握手过程&#xff09; 3.小结…...

《全球短剧正版授权通道,助力平台出海与流量变现》

正版短剧片源授权&#xff0c;全方位赋能您的内容运营 短剧作为短视频领域的一种重要形式&#xff0c;凭借其紧凑的剧情、鲜明的角色和引人入胜的叙事方式&#xff0c;赢得了广大观众的喜爱。 然而&#xff0c;在短剧市场蓬勃发展的同时&#xff0c;版权问题也日益凸显。为了保…...

17.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--ELK

在微服务中&#xff0c;日志是非常重要的组成部分。它不仅可以帮助我们排查问题&#xff0c;还可以帮助我们分析系统的性能和使用情况。ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;是一个强大的日志分析工具&#xff0c;可以帮助我们收集、存储和分析日志数据…...

Linux系统管理与编程16:PXE自动化安装部署centos7.9操作系统

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 0.准备 1&#xff09;防火墙和SELinux systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config (很不好的…...

DAMA第10章深度解析:参考数据与主数据管理的核心要义与实践指南

引言 在数字化转型的浪潮中&#xff0c;数据已成为企业的核心资产。然而&#xff0c;数据孤岛、冗余和不一致问题严重制约了数据价值的释放。DAMA&#xff08;数据管理协会&#xff09;提出的参考数据&#xff08;Reference Data&#xff09;与主数据&#xff08;Master Data&…...

Python+OpenCV打造AR/VR基础框架:从原理到实战的全链路解析

引言&#xff1a;重新定义数字与现实的边界 在元宇宙概念持续升温的当下&#xff0c;AR&#xff08;增强现实&#xff09;与VR&#xff08;虚拟现实&#xff09;技术正成为连接物理世界与数字世界的桥梁。Python凭借其丰富的计算机视觉生态&#xff08;尤其是OpenCV库&#xf…...

PaddleOCR本地部署

构建TestPaddle目录&#xff1a; TestPaddle/ └── PaddleOCR ├── ocr_server.py ├── ch_PP-OCRv4_det_infer.tar ├── ch_PP-OCRv4_rec_infer.tar └── 001.jpg1、安装PaddleOCR 安装 PaddleOCR git clone https://github.com/PaddlePaddle/PaddleOCR.git cd …...

Spring事务融入(REQUIRED)具体实现步骤解析

Spring事务融入(REQUIRED传播行为)是Spring事务管理中最核心的机制&#xff0c;下面我将深入剖析其具体实现步骤和关键代码逻辑。 1. 整体流程概览 事务融入(REQUIRED)的核心逻辑是&#xff1a; 检查当前线程是否存在事务 存在则融入(加入)该事务 不存在则创建新事务 2. …...

Java 开发者 Linux 学习指南

目录 一、引言&#xff1a;为什么 Java 开发者必须掌握 Linux 二、Linux 基础&#xff1a;核心概念与常用命令 &#xff08;一&#xff09;文件系统与目录结构 &#xff08;二&#xff09;权限体系与用户管理 &#xff08;三&#xff09;进程管理与监控 三、在 Linux 上安…...

2025年PMP 学习七 -第5章 项目范围管理 (5.4,5.5,5.6 )

2025年PMP 学习七 -第5章 项目范围管理 5.4 创建 WBS 1.定义与作用 定义把项目可交付成果和项目工作分解成较小的&#xff0c;更易于管理的组件作用对所要交付的内容提供一个结构化的视图 2.输入&#xff0c;输出&#xff0c;工具与技术 3. 创建WBS的依据&#xff08;输入&…...

【LangChain全景指南】构建下一代AI应用的开发框架

目录 &#x1f31f; 前言&#x1f3d7;️ 技术背景与价值&#x1f6a7; 当前技术痛点&#x1f6e0;️ 解决方案概述&#x1f465; 目标读者说明 &#x1f50d; 一、技术原理剖析&#x1f4ca; 核心概念图解&#x1f4a1; 核心作用讲解&#x1f9e9; 关键技术模块说明⚖️ 技术选…...

Linux系统:虚拟文件系统与文件缓冲区(语言级内核级)

本节重点 初步理解一切皆文件理解文件缓冲区的分类用户级文件缓冲区与内核级文件缓冲区用户级文件缓冲区的刷新机制两级缓冲区的分层协作 一、虚拟文件系统 1.1 理解“一切皆文件” 我们都知道操作系统访问不同的外部设备&#xff08;显示器、磁盘、键盘、鼠标、网卡&#…...

Linux进程间信号

目录 信号入门 生活角度中的信号 技术应用角度的信号 信号的发送与记录 信号处理常见方式概述 产生信号 通过终端按键产生 通过系统函数向进程发信号 由软件条件产生信号 由硬件异常产生信号 阻塞信号 信号其他相关常见概念 在内核中的表示 sigset_t 信号集操作…...

数据分析2

五、文件 CSV Comma-Separated Value&#xff0c;逗号分割值。CSV文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。 CSV记录间以某种换行符分隔&#xff0c;每条记录由字段组成&#xff0c;字段间以其他字符或字符串分割&#xff0c;最常用逗号或制表符。…...

每日一题:两个仓库的最低配送费用问题

文章目录 两个仓库的最低配送费用问题一、问题描述二、解题思路&#xff08;一&#xff09;初始假设&#xff08;二&#xff09;差值定义&#xff08;三&#xff09;选择最优&#xff08;四&#xff09;计算答案 三、代码实现四、代码分析&#xff08;一&#xff09;输入处理&a…...

SemanticSplitterNodeParser 和 Sentence-BERT 的区别和联系是什么

这涉及到文本切分&#xff08;chunking&#xff09;与语义向量&#xff08;embedding&#xff09;之间的关系。我们来详细对比&#xff1a; ✅ 1. SemanticSplitterNodeParser 是什么&#xff1f; SemanticSplitterNodeParser 是 llama-index 提供的一种 语义感知的文本切分工…...

Fabric系列 - SoftHSM 软件模拟HSM

在 fabric-ca-server 上使用软件模拟的 HSM(密码卡) 功能 安装 SoftHSMv2 教程 SoftHSMv2 默认的配置文件 /etc/softhsm2.conf默认的token目录 /var/lib/softhsm/tokens/ 初始化和启动fabric-ca-server&#xff0c;需要设置一个管理员用户的名称和密码 初始化令牌 # 初始…...

简易图片编辑工具,支持抠图和替换背景

软件介绍 Photo Retouch是一款由微软官方商店推出的免费图片处理软件&#xff0c;具有抠图、换背景、修复等功能&#xff0c;操作便捷且效率极高&#xff0c;非常值得尝试。 功能详解 这款软件提供五大功能&#xff0c;包括删除物体、快速修复、一键抠图、背景调整和裁剪…...

CountDownLatch 并发编程中的同步利器

CountDownLatch 并发编程中的同步利器 文章目录 CountDownLatch 并发编程中的同步利器一、CountDownLatch 基础概念1.1 什么是 CountDownLatch&#xff1f;1.2 CountDownLatch 的核心方法1.3 基本使用示例 二、CountDownLatch 实战应用2.1 应用场景一&#xff1a;并行任务协调2…...

C++GO语言微服务之用户信息处理

目录 01 01-微服务实现用户注册-微服务端-上 02 02-微服务实现用户注册-微服务端-下 03 03-微服务实现用户注册-web端 04 04-微服务实现用户注册-web端-流程小结 05 05-获取地域信息-读MySQL写Redis入 06 06-获取地域信息-先查redis-没有读MySQL写入 01 07-Cookie简介 0…...

互联网大厂Java求职面试实战:Spring Boot微服务与数据库优化详解

&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通 &#x1f601; 2. 毕业设计专栏&#xff0c;毕业季咱们不慌忙&#xff0c;几百款毕业设计等你选。 ❤️ 3. Python爬虫专栏…...

Linux基本指令(一)

目录 基本指令 pwd指令 cd指令 cd ..​编辑 cd ~ ls指令 ls -l ls -a ls -d touch指令 mkdir指令 rmdir指令 && rm 指令 操作系统是什么呢&#xff1f;一个好的操作系统要具备什么条件呢&#xff1f; 简单来说&#xff0c;操作系统是是一款做软硬件管理的软…...

Java—— 集合 List

List集合的特点 有序&#xff1a;存和取的元素顺序一致 有索引&#xff1a;可以通过索引操作元素 可重复&#xff1a;存储的元素可以重复 List集合的方法 Collection的方法List都继承了&#xff0c;可以使用Collection中的方法 此外&#xff0c;List集合因为有索引&#xff0c;…...

使用谱聚类将相似度矩阵分为2类

使用谱聚类将相似度矩阵分为2类的步骤如下&#xff1a; 构建相似度矩阵&#xff1a;提供的1717矩阵已满足对称性且对角线为1。 计算度矩阵&#xff1a;对每一行求和得到各节点的度&#xff0c;形成对角矩阵。 计算归一化拉普拉斯矩阵&#xff1a;采用对称归一化形式 LsymI−D…...

【Bootstrap V4系列】学习入门教程之 组件-表单(Forms)高级用法(二)

Bootstrap V4系列 学习入门教程之 组件-表单&#xff08;Forms&#xff09;高级用法&#xff08;二&#xff09; 表单&#xff08;Forms&#xff09;高级用法&#xff08;二&#xff09;一、Help text 帮助文本二、Disabled forms 禁用表单三、Validation 验证3.1 How it works…...

【许可证】Open Source Licenses

长期更新 扩展&#xff1a;shield.io装饰 开源许可证&#xff08;Open Source Licenses&#xff09;有很多种&#xff0c;每种都有不同的授权和限制&#xff0c;适用于不同目的。 默认的ISC&#x1f7f0;MIT License是否可商用是否要求开源衍生项目是否必须署名是否有专利授权…...

RT-Thread 深入系列 Part 7:RT-Thread vs 其他 RTOS 对比与选型指南

摘要 本文对比 RT-Thread、FreeRTOS、Zephyr、uC/OS、Mbed OS 等主流嵌入式操作系统,从功能特性、社区生态、学习成本、商业支持、安全性和典型应用场景六个维度进行详尽对比,并给出不同项目类型下的选型建议,帮助你为下一个嵌入式项目做出最合适的决策。 目录 功能特性对比…...

每天五分钟机器学习:KTT条件

本文重点 在前面的课程中,我们学习了拉格朗日乘数法求解等式约束下函数极值,如果约束不是等式而是不等式呢?此时就需要KTT条件出手了,KTT条件是拉格朗日乘数法的推广。KTT条件不仅统一了等式约束与不等式约束的优化问题求解范式,KTT条件给出了这类问题取得极值的一阶必要…...

金融学知识笔记

金融学知识笔记 一、引言 金融学它结合了数学、概率论、统计学、经济学和计算机科学等多学科的知识&#xff0c;用于解决金融领域中的各种问题&#xff0c;如金融衍生品定价、投资组合优化、风险管理和固定收益证券分析等。通过对金融学的学习&#xff0c;我们可以更好地理解…...

Web3 实战项目项目部署到 GitHub 和上线预览的完整指南

目录 &#x1f680; 一、部署到 GitHub ✅ 前置准备 &#x1f9f1; 部署步骤&#xff1a; 1. 创建一个 GitHub 仓库 2. 上传项目文件 方法一&#xff1a;使用 Git 命令行 方法二&#xff1a;直接上传 &#x1f310; 二、通过 GitHub Pages 免费上线 DApp&#xff08;前端…...

嵌入式开发学习(阶段二 C语言基础)

C语言&#xff1a;第05天笔记 内容提要 分支结构 条件判断用if语句实现分支结构用switch语句实现分支结构 分支结构 条件判断 条件判断&#xff1a;根据某个条件成立与否&#xff0c;决定是否执行指定的操作。 条件判断的结果是逻辑值&#xff0c;也就是布尔类型值&#…...

【沉浸式求职学习day35】【Tomcat安装、配置】【Http简述】

&#x1f629;&#x1f629;&#x1f629;&#xff0c;真的每天忙死&#xff0c;感觉自己精神上压力真的很大&#xff0c;希望我的努力能够激励到你们~ 沉浸式求职学习 Tomcat1.安装2.Tomcat启动和配置3.配置高难度面试题 4.发布一个web网站5.Http1.什么是HTTP2.两个时代3.Htt…...

基于大模型的新型隐球菌脑膜炎智能诊疗全流程系统设计与实现的技术方案文档

目录 一、术前风险预测系统1. 多模态融合模型架构2. 风险预测流程图(Mermaid)二、麻醉剂量预测系统1. 靶控输注(TCI)模型2. 麻醉方案优化流程图(Mermaid)三、术后并发症预测模型1. 时序预测模型(LSTM)2. 并发症预测流程图(Mermaid)四、健康教育管理模块1. 移动健康(…...

如何实现PLC远程编程

1. 什么是PLC编程 PLC编程是指为可编程逻辑控制器&#xff08;Programmable Logic Controller&#xff0c;PLC&#xff09;编写控制逻辑的过程。PLC是一种工业自动化控制设备&#xff0c;广泛应用于制造业、机械控制、流水线、电力系统等领域&#xff0c;用于替代传统的继电器…...

Go基于plugin的热更新初体验

背景 对于一个部署在生产环境的项目来说&#xff0c;我们希望当代码出现bug的时候&#xff0c;可以不用重启进程而达到动态修改代码的目的—— 这就是代码热部署&#xff01; 使用java做游戏服务器&#xff0c;最大的好处是&#xff0c;当代码出现bug&#xff0c;可以直接热…...

【STM32 学习笔记】I2C通信协议

注&#xff1a;通信协议的设计背景 3:00~10:13 I2C 通讯协议(Inter&#xff0d;Integrated Circuit)是由Phiilps公司开发的&#xff0c;由于它引脚少&#xff0c;硬件实现简单&#xff0c;可扩展性强&#xff0c; 不需要USART、CAN等通讯协议的外部收发设备&#xff0c;现在被广…...

RAG与语义搜索:让大模型成为测试工程师的智能助手

引言 AI大模型风头正劲&#xff0c;自动生成和理解文本的能力让无数行业焕发新生。测试工程师也不例外——谁不想让AI自动“看懂需求、理解接口、生成用例”&#xff1f;然而&#xff0c;很多人发现&#xff1a;直接丢问题给大模型&#xff0c;答案貌似“懂行”&#xff0c;细…...

Nakama:让游戏与应用更具互动性和即时性

在现代游戏和应用程序开发中&#xff0c;实现社交互动和实时功能已成为用户体验的核心需求。为满足这种需求&#xff0c;许多开发者正转向分布式服务器技术&#xff0c;在这些技术中&#xff0c;Nakama 构建起了一座桥梁。Nakama 是一个开源的分布式服务器&#xff0c;专门为社…...

[Spring AOP 7] 动态通知调用

动态通知调用 本笔记基于黑马程序员 Spring高级源码解读 更美观清晰的版本在&#xff1a;Github 注意&#xff1a;阅读本章内容之前&#xff0c;建议先熟悉静态通知调用的内容 在静态通知调用一节中&#xff0c;我们还有一个悬而未决的问题。 我们谈到了调用链MethodInvocation…...