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

Dubbo3简单使用

Dubbo3简单使用

👉 使用Spring Boot实现Dubbo3,请参见以下地址。

# Dubbo3官网地址
https://cn.dubbo.apache.org/zh/# 使用SpringBoot实现Dubbo3的地址
https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/spring-boot/# 该项目的git地址
https://github.com/MasonYyp/mydubbo

1 同一个项目中创建多个应用

1.1 创建空项目

(1)创建空项目

(2)提示错误

⚠️ 注意:会提示下面错误,点击“OK”即可。

在这里插入图片描述

(3)空项目创建完成

在这里插入图片描述

1.2 创建应用模块

(1)创建模块

在这里插入图片描述

(2)创建Maven

选择Maven模块,点击“Next”。

在这里插入图片描述

(3)设置应用信息

设置应用信息后,点击“Finish”即可。

在这里插入图片描述

(4)创建完成

在这里插入图片描述

1.3 创建其他

创建其他应用的方法和上面的方法类似,分别创建Dubbo的服务提供者(duprovider)和服务消费者(duconsumer)。

  • GroupId: com.mason
  • Version: 1.0
  • 创建应用的目录:mydubbo目录下

分别在应用下创建java包(选择Module时创建Maven默认不会创建java包)。

应用名称(ch)应用名称(en)包名备注
公共模块ducommoncom.mason.ducommon为其他模块提供公共接口
服务提供者duprovidercom.mason.duprovider提供服务
服务消费者duconsumercom.mason.duconsumer消费服务

应用创建完成后如下

在这里插入图片描述

2 软件版本选择

(1)Spring Cloud Alibaba版本说明

https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

(2)Spring Cloud版本说明

# 介绍了相应的版本
https://spring.io/projects/spring-cloud#overview# 介绍了稳定版(含有GA标识)
https://spring.io/projects/spring-cloud#learn

(3)版本选择

⚠️ 组件版本很重要,需要慎重选择,Dubbo3需要配合Nacos2使用。

软件版本号
Spring CloudHoxton.SR12
Spring Boot2.3.12.RELEASE
Spring Cloud Alibaba2.2.9.RELEASE
Sentinel1.8.5
Nacos2.1.0
RocketMQ4.9.4
Seata1.5.2
Dubbo3.1.4

3 安装nacos

3.1 Nacos安装参考地址

https://blog.csdn.net/make_progress/article/details/128855472

3.2 安装MySQL

# 创建网桥
docker network create --driver bridge du_net# 下载MySQL
docker pull mysql:5.7.34# 创建数据库
docker run -itd --name du_mysql \
--net du_net \
--restart=always \
-p 3306:3306 \
-v /home/dubbo/mysql/conf:/etc/mysql/conf.d \
-v /home/dubbo/mysql/data:/var/lib/mysql \
-v /home/dubbo/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7.34

3.3 初始化Nacos数据库


# 解压“nacos-server-2.1.0.zip”文件,将“nacos-server-2.1.0/nacos/conf”目录中的“nacos-mysql.sql”复制到容器中
docker cp nacos-mysql.sql du_mysql:/home/# 进入容器
docker exec -it du_mysql /bin/bash# 进入MySQL数据库,输入密码后进入MySQL
mysql -u root -p# 创建数据库
create database nacos_config;# 切换数据库
use nacos_config# 导入nacos配置信息到数据库
source /home/nacos-mysql.sql

3.4 安装Nacos

# 下载Nacos镜像
docker pull nacos/nacos-server:v2.1.0# 安装nacos
# 注意:Nacos2比Nacos1多开9848、9849两个端口需求全部开放,否则应用无法注册到Nacos
docker run -itd --name du_nacos \
--net du_net \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--env MODE=standalone \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=du_mysql \
--env MYSQL_SERVICE_PORT=3306 \
--env MYSQL_SERVICE_USER=root \
--env MYSQL_SERVICE_PASSWORD=123456 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
nacos/nacos-server:v2.1.0

访问Nacos

# 地址
http://192.168.108.200:8848/nacos账号:nacos
密码:nacos

4 公共模块

4.1 项目截图

在这里插入图片描述

4.2 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.mason</groupId><artifactId>ducommon</artifactId><version>1.0</version><properties><java.version>11</java.version></properties><dependencies><!-- Parse json --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.58</version></dependency><!-- Init the entity --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version><scope>provided</scope></dependency></dependencies></project>

4.3 服务层service下接口文件

service包下文件

package com.mason.ducommon.service;public interface TestService {public String getInfo(String message);
}

5 服务提供者

5.1 项目截图

在这里插入图片描述

5.2 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.mason</groupId><artifactId>duprovider</artifactId><version>1.0</version><properties><java.version>11</java.version><spring-cloud.version>Hoxton.SR12</spring-cloud.version><spring.cloud.alibaba.version>2.2.9.RELEASE</spring.cloud.alibaba.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-nacos</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 引入自定义的公共模块 --><dependency><groupId>com.mason</groupId><artifactId>ducommon</artifactId><version>1.0</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring.cloud.alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

5.3 yml文件

服务提供者做了3个节点,yml文件有“application-node1.yml,application-node2.yml,application-node3.yml”

application-node1.yml

server:port: 8081spring:# 配置注册在Nacos中的应用名称application:name: app-duprovidercloud:# 设置Nacos服务注册地址nacos:discovery:server-addr: 192.168.108.200:8848dubbo:# 设置Dubbo服务的应用名,如果不设置此应用名默认为应用名,此外默认为“app-duprovider”application:name: dubbo-duprovider# 设置Dubbo协议信息protocol:name: dubbo# 端口可以设置为“-1”,表示端口自增长port: 9081# 设置注册地址registry:address: nacos://192.168.108.200:8848# 设置服务超时provider:timeout: 3000management:endpoints:web:exposure:include: '*'

application-node2.yml

server:port: 8082spring:application:name: app-duprovidercloud:nacos:discovery:server-addr: 192.168.108.200:8848dubbo:application:name: dubbo-duproviderprotocol:name: dubboport: 9082registry:address: nacos://192.168.108.200:8848provider:timeout: 3000management:endpoints:web:exposure:include: '*'

application-node3.yml

server:port: 8083spring:application:name: app-duprovidercloud:nacos:discovery:server-addr: 192.168.108.200:8848dubbo:application:name: dubbo-duproviderprotocol:name: dubboport: 9083registry:address: nacos://192.168.108.200:8848provider:timeout: 3000management:endpoints:web:exposure:include: '*'

5.4 controller

此处的controller的作用是查看服务是否启动,与Dubbo提供服务无关,可以不要controller。

DubboController.java

package com.mason.duprovider.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/provider")
public class DubboController {@Value("${server.port}")private String port;@RequestMapping("/getdata")public String getData(){return "Dubbo " + this.port;}
}

5.5 service

提供Dubbo服务,实现公共模块(ducommon)中的服务接口。

Dubbo在新版本中使用@DubboService,旧版本中使用@Service,将Dubbo服务注册到注册中心。

TestServiceImpl.java

package com.mason.duprovider.service;import com.mason.ducommon.service.TestService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Value;@DubboService
public class TestServiceImpl implements TestService {@Value("${server.port}")private String port;@Overridepublic String getInfo(String message) {return "Service " + this.port + message;}
}

5.6 启动类

DuproviderApplication.java

⚠️ 注意:需要在启动类上,添加“@EnableDubbo"注解

package com.mason.duprovider;import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableDubbo
public class DuproviderApplication {public static void main(String[] args) {SpringApplication.run(DuproviderApplication.class, args);}}

5.7 访问controller的服务

# 访问地址
http://127.0.0.1:8081/provider/getdata

浏览器结果

在这里插入图片描述

Nacos中结果

在这里插入图片描述

6 服务消费者

6.1 项目截图

在这里插入图片描述

6.2 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.mason</groupId><artifactId>duconsumer</artifactId><version>1.0</version><properties><java.version>11</java.version><spring-cloud.version>Hoxton.SR12</spring-cloud.version><spring.cloud.alibaba.version>2.2.9.RELEASE</spring.cloud.alibaba.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-nacos</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 引入自定义的公共模块 --><dependency><groupId>com.mason</groupId><artifactId>ducommon</artifactId><version>1.0</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring.cloud.alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

6.3 yml文件

服务消费者也做了3个节点,yml文件有“application-node1.yml,application-node2.yml,application-node3.yml”

application-node1.yml

server:port: 8091spring:# 配置注册在Nacos中的应用名称application:name: app-duconsumercloud:# 设置Nacos服务注册地址nacos:discovery:server-addr: 192.168.108.200:8848dubbo:# 此处可以不设置Dubbo服务的应用名,因为没有注册Dubbo服务application:name: dubbo-duprovider# 设置Dubbo协议信息protocol:name: dubbo# 端口可以设置为“-1”,表示端口自增长port: 9091# 设置注册地址registry:address: nacos://192.168.108.200:8848# 设置服务超时provider:timeout: 3000management:endpoints:web:exposure:include: '*'

application-node2.yml

server:port: 8092spring:application:name: app-duconsumercloud:nacos:discovery:server-addr: 192.168.108.200:8848dubbo:application:name: dubbo-duproviderprotocol:name: dubboport: 9092registry:address: nacos://192.168.108.200:8848provider:timeout: 3000management:endpoints:web:exposure:include: '*'

application-node3.yml

server:port: 8093spring:application:name: app-duconsumercloud:nacos:discovery:server-addr: 192.168.108.200:8848dubbo:application:name: dubbo-duproviderprotocol:name: dubboport: 9093registry:address: nacos://192.168.108.200:8848provider:timeout: 3000management:endpoints:web:exposure:include: '*'

6.4 controller

控制层,为用户提供服务。

DubboController.java

package com.mason.duconsumer.controller;import com.mason.duconsumer.service.TestServiceRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/consumer")
public class DubboController {@Autowiredprivate TestServiceRequest testServiceRequest;@RequestMapping("/getdata")public String getData(){return this.testServiceRequest.getInfo();}}

6.5 service

服务层,消费Dubbo服务提供者提供的服务。

Dubbo在新版本中使用@DubboReference,旧版本中使用@Reference,消费注册中心的Dubbo服务。

TestServiceRequest.java

package com.mason.duconsumer.service;import com.mason.ducommon.service.TestService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;@Service
public class TestServiceRequest {@DubboReferenceprivate TestService testService;public String getInfo() {return this.testService.getInfo(" -- Hello Dubbo");}
}

6.6 启动类

DuconsumerApplication.java

package com.mason.duconsumer;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DuconsumerApplication {public static void main(String[] args) {SpringApplication.run(DuconsumerApplication.class, args);}}

6.7 访问controller的服务

# 访问地址
http://127.0.0.1:8081/consumer/getdata

浏览器中的结果

在这里插入图片描述

Nacos中结果

在这里插入图片描述

相关文章:

Dubbo3简单使用

Dubbo3简单使用 &#x1f449; 使用Spring Boot实现Dubbo3&#xff0c;请参见以下地址。 # Dubbo3官网地址 https://cn.dubbo.apache.org/zh/# 使用SpringBoot实现Dubbo3的地址 https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/spring-boot/# 该项目的git地址…...

Redis未授权漏洞蜜罐模拟与捕获分析

1.概述 文章主要分析Redis未授权漏洞的原理及形成原因&#xff0c;使用vulhub靶场进行漏洞复现&#xff0c;在了解漏洞原理并复现的基础上使用golang编写蜜罐代码进行模拟&#xff0c;开放端口在网上捕获真实存在的恶意攻击行为&#xff0c;对恶意样本进行分析&#xff0c;总结…...

Spring Security Oauth2.0认证授权

基本概念认证: 用户认证就是判断一个用户的身份是否合法的过程 &#xff0c;用户去访问系统资源时系统要求验证用户的身份信息&#xff0c;身份合法方可继续访问&#xff0c;不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录&#xff0c;二维码登录&#xff0c;手机…...

安卓小游戏:贪吃蛇

安卓小游戏&#xff1a;贪吃蛇 前言 这个是通过自定义View实现小游戏的第二篇&#xff0c;实际上第一篇做起来麻烦点&#xff0c;后面的基本就是照葫芦画瓢了&#xff0c;只要设计下游戏逻辑就行了&#xff0c;技术上不难&#xff0c;想法比较重要。 需求 贪吃蛇&#xff0…...

CUDA中的图内存节点

CUDA中的图内存节点 文章目录CUDA中的图内存节点1. 简介2. 支持的架构和版本3. API基础知识3.1. 图节点 APIs3.2. 流捕获3.3. 在分配图之外访问和释放图内存3.4. cudaGraphInstantiateFlagAutoFreeOnLaunch4. 优化内存复用4.1. 解决图中的重用问题4.2. 物理内存管理和共享5. 性…...

你真的看好低代码开发吗?

低代码开发前景如何&#xff0c;大家真的看好低代码开发吗&#xff1f;之前有过很多关于低代码的内容&#xff0c;这篇就来梳理下国内外低代码开发平台发展现状及前景。 01、国外低代码开发平台现状 2014年&#xff0c;研究机构Forrester Research发表的报告中提到“面向客户…...

一篇带你MySQL运维

1. 日志 1.1 错误日志 错误日志是 MySQL 中 重要的日志之一&#xff0c;它记录了当 mysqld启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时&#xff0c;建议首先查看此日志。 该日志是默认开启的&…...

《嵌入式 – GD32开发实战指南》第22章 SPI

开发环境&#xff1a; MDK&#xff1a;Keil 5.30 开发板&#xff1a;GD32F207I-EVAL MCU&#xff1a;GD32F207IK 22.1 SPI简介 SPI&#xff0c;是Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的…...

一个优质软件测试工程师的简历应该有的样子(答应我一定要收藏起来)

个人简历 基本信息 姓 名&#xff1a;xxx 性 别&#xff1a; 女 年 龄&#xff1a;24 现住 地址&#xff1a; 深圳 测试 经验&#xff1a;3年 学 历&#xff1a;本科 联系 电话&#xff1a;18xxxxxxxx 邮 箱&#xff1a;xxxxl163.com 求职意向 应聘岗位&#xff1a;软件…...

C++ 浅谈之 STL Deque

C 浅谈之 STL Deque HELLO&#xff0c;各位博友好&#xff0c;我是阿呆 &#x1f648;&#x1f648;&#x1f648; 这里是 C 浅谈系列&#xff0c;收录在专栏 C 语言中 &#x1f61c;&#x1f61c;&#x1f61c; 本系列阿呆将记录一些 C 语言重要的语法特性 &#x1f3c3;&a…...

Koa2-项目中的基本应用

文章目录安装配置koa2配置nodemon,热更新我们的项目中间件什么是中间件&#x1f47b;洋葱模型路由中间件连接数据库 - mysql后端允许跨域处理请求getpostputdelete后续会继续更新安装配置koa2 &#x1f47b;安装 koa2 npm i koa2 -s&#x1f47b;在package.json 配置,当然是在…...

Flask入门(2):配置

目录2.Flask配置2.1 直接写入主脚本2.2 系统环境变量2.3 单独的配置文件2.4 多个配置类2.5 Flask内置配置2.Flask配置 我们都知道&#xff0c;Flask应用程序肯定是需要各种各样的配置。来满足我们不同的需求的&#xff0c;这样可以使我们的应用程序更加灵活。比如可以根据需要…...

Linux--fork

一、fork入门知识 fork&#xff08;&#xff09;函数通过系统调用创建一个与原来进程几乎完全相同的进程&#xff0c;也就是两个进程可以做完全相同的事&#xff0c;但如果初始参数或者传入的变量不同&#xff0c;两个进程也可以做不同的事。可以简单地说fork()的作用就是创建一…...

计算机组成原理(一)

1.了解计算机硬件的发展和软件的发展历程&#xff1b; 硬件&#xff1a;   电子管时代&#xff08;1946-1959&#xff09;&#xff1a;电子管、声汞延迟线、磁鼓   晶体管时代&#xff08;1959-1964&#xff09;&#xff1a;晶体管、磁芯   中、小规模集成电路时代&#…...

【SpringBoot】实现Async异步任务

1. 环境准备 在 Spring Boot 入口类上配置 EnableAsync 注解开启异步处理。 创建任务抽象类 AbstractTask&#xff0c;并分别配置三个任务方法 doTaskOne()&#xff0c;doTaskTwo()&#xff0c;doTaskThree()。 public abstract class AbstractTask {private static Random r…...

Node =>Express学习

1.Express 能做什么 能快速构建web网站的服务器 或 Api接口的服务期 Web网站服务器&#xff0c;专门对外提供Web网页资源的服务器Api接口服务器&#xff1a;专门对外提供API接口的服务器 2.安装 在项目所处的目录中&#xff0c;运行以下命令&#xff0c;简装到项目中了 npm …...

QT基础入门【布局篇】消除控件之间的间隔

一、相关参数 layoutLeftMargin: layout内的布局距离边框左端的距离。 layoutTopMargin: layout内的布局距离边框顶端的距离。 layoutRightMargin: layout内的布局距离边框右端的距离。 layoutBottomMargin: layout内的布局距离边框底端的距离。 layoutHorizontalSpacing: layo…...

vue脚手架 element-ui spring boot 实现图片上传阿里云 并保存到数据库

一.阿里云 注册登陆就不讲了&#xff0c;登陆进去后如下操作 1. 进入对象存储OSS 创建一个新的Bucket 随后点击新建的bucket 2.去访问RAM 前往RAM控制台 3.去创建用户 4.创建密匙 5.随后返回RAM控制台 给用户增加权限&#xff0c;文件上传所需权限&#xff0c;需要带含有…...

【FPGA】Verilog:组合电路 | 3—8译码器 | 编码器 | 74LS148

前言&#xff1a;本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例&#xff1a;编码/译码器的应用 ​ 功能特性&#xff1a; 采用 Xilinx Artix-7 XC7A35T芯片 配置方式&#xff1a;USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度 存储器&…...

GLP-1类药物研发进展-销售数据-上市药品前景分析

据一项2021 年的报告发现&#xff0c;当 GLP-1 类似物用于治疗 2 型糖尿病时&#xff0c;全因死亡率降低了 12%&#xff0c;它们不仅降糖效果显著&#xff0c;同时还兼具减重、降压、改善血脂谱等作用。近几年&#xff0c;随着GLP-1R激动剂类药物市场规模不断增长&#xff0c;美…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...