CentOS 7 企业级数据库高可用实战:MySQL MGR + Router + MHA 与 Redis 集群全栈部署指南
目录摘要mysql路由组复制MGR–MySQL Group Replication单主模式配置mysql shellmysql routerkeepalived 高可用MHA部署准备工作详细配置MHA部署MHA故障手动切换MHA故障自动切换RedisRedis安装redis主从复制redis高可用redis哨兵模式Sentinelredis集群摘要本文详细介绍了在 CentOS 7 环境下构建高可用 MySQL 数据库及 Redis 缓存层的完整解决方案。主要内容包括MySQL Group Replication (MGR)配置单主模式集群实现数据强一致性复制。MySQL Router部署读写分离代理自动路由请求至 MGR 集群的正确节点。Keepalived LVS为 MySQL Router 提供虚拟 IP (VIP) 漂移消除单点故障实现高可用访问入口。MHA (Master High Availability)作为传统主从架构的自动故障切换方案实现主库故障时的快速切换与从库重定向。Redis部署主从复制、哨兵模式及集群模式满足不同规模下的高性能缓存与高可用需求。通过分步实操演示从环境准备、服务配置到故障模拟切换完整呈现了企业级数据库高可用架构的搭建与验证过程。关键词MySQL 高可用MGRMySQL RouterMHARedis 集群mysql路由Mysql Router 部署·Router 通过读取元数据来自MGR集群自动感知节点角色将写请求路由到主节点读请求分发到从节点·使用 mysqlrouter --bootstrap 命令可自动生成配置文件简化手工配置。#mysql路由部署rpm-ivhmysql-router-community-8.0.46-1.el7.x86_64.rpmcd/etc/mysqlrouter/vimmysqlrouter.confsystemctlenable--nowmysqlrouter.service yuminstall-ymariadb create userlzc%identified by654321;mysql-h192.168.88.146-P7001-ulzc-p654321--default-authmysql_native_password子节点查看网络连接yuminstall-ylsoflsof-i:3306组复制MGR–MySQL Group Replication单主模式配置·server-id 必须全局唯一gtid_modeON 和 enforce-gtid-consistencyON 开启GTID便于故障恢复·group_replication_group_name 使用UUID格式集群内所有节点必须一致·group_replication_local_address 和 group_replication_group_seeds 分别定义本节点通信地址和集群成员列表·启动第一个节点时需临时开启 group_replication_bootstrap_groupON后续节点仅需执行 START GROUP_REPLICATION·注意检查防火墙/安全组放行 33061 端口组复制内部通信和 3306 端口。systemctl stop mysqldrm-fr*vim/etc/mysql/my.cnfserver1主节点disabled_storage_enginesMyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORYserver-id1gtid_modeON enforce-gtid-consistencyONbinlog_checksumNONElog_binbinloglog_replica_updatesONplugin_load_addgroup_replication.sogroup_replication_group_nameaaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaagroup_replication_start_on_bootoffgroup_replication_local_address192.168.88.143:33061group_replication_group_seeds192.168.88.143:33061,192.168.88.144/:33061,192.168.88.145:33061group_replication_bootstrap_groupoffgroup_replication_ip_whitelist192.168.88.0/24,127.0.0.1/8group_replication_single_primary_modeON;group_replication_enforce_update_everywhere_checksOFF;mysqld --defaults-file/etc/mysql/my.cnf--initializemysqlSETGLOBALgroup_replication_bootstrap_groupON;Query OK,0rowsaffected(0.00sec)mysqlSTARTGROUP_REPLICATION;Query OK,0rowsaffected,1warning(2.09sec)mysqlSETGLOBALgroup_replication_bootstrap_groupOFF;Query OK,0rowsaffected(0.00sec)mysqlSELECT*FROMperformance_schema.replication_group_members;------------------------------------------------------------------------------------------------------------------------------------------------------------------|CHANNEL_NAME|MEMBER_ID|MEMBER_HOST|MEMBER_PORT|MEMBER_STATE|MEMBER_ROLE|MEMBER_VERSION|MEMBER_COMMUNICATION_STACK|------------------------------------------------------------------------------------------------------------------------------------------------------------------|group_replication_applier|01e2c898-8c06-11f1-b570-000c292077de|server1|3306|ONLINE|PRIMARY|8.0.36|XCom|------------------------------------------------------------------------------------------------------------------------------------------------------------------1rowinset(0.03sec)server2 slavemysqlSTARTGROUP_REPLICATION;Query OK,0rowsaffected,1warning(2.02sec)mysqlSELECT*FROMperformance_schema.replication_group_members;------------------------------------------------------------------------------------------------------------------------------------------------------------------|CHANNEL_NAME|MEMBER_ID|MEMBER_HOST|MEMBER_PORT|MEMBER_STATE|MEMBER_ROLE|MEMBER_VERSION|MEMBER_COMMUNICATION_STACK|------------------------------------------------------------------------------------------------------------------------------------------------------------------|group_replication_applier|01e2c898-8c06-11f1-b570-000c292077de|server1|3306|ONLINE|PRIMARY|8.0.36|XCom||group_replication_applier|cd3c8329-8c09-11f1-b547-000c294eca46|server2|3306|RECOVERING|SECONDARY|8.0.36|XCom|------------------------------------------------------------------------------------------------------------------------------------------------------------------2rowsinset(0.12sec)再添加一个slave,server3server3与server2进行相同操作mysql shellserver4-mysql routeryuminstall-ymysql-shell-8.0.46-1.el7.x86_64.rpm mysqlsh icadmin192.168.88.143:3306server1–主节点mysqlCREATEUSERicadmin%IDENTIFIEDBY654321;Query OK,0rowsaffected(0.09sec)mysqlGRANTALLPRIVILEGESON*.*TOicadmin%WITHGRANTOPTION;Query OK,0rowsaffected(0.03sec)mysqlFLUSHPRIVILEGES;Query OK,0rowsaffected(0.02sec)server4:路由器接管MGR集群MySQL192.168.88.143:3306ssl JSvar clusterdba.createCluster(mgr_single_cluster,{adoptFromGR:true,force:true});#查看集群状态cluster.status();mysqlrouter--bootstrapicadmin192.168.88.143:3306--usermysqlrouter systemctl restart mysqlrouter.servicemysql routerkeepalived 高可用·在 server6 和 server7 上部署 Keepalived通过 VRRP 虚拟出一个 IP192.168.88.100并配置 LVS 将流量分发至两台Routerserver4, server5master:server6·lb_algo wrr 采用加权轮询调度persistence_timeout 保持用户会话粘性·通过 TCP_CHECK 检测后端Router服务的存活状态实现自动剔除故障节点。部署另一台路由器yuminstall-ykeepalivedvim/etc/keepalived/keepalived.conf global_defs{notification_email{rootlocalhost}notification_email_from keepalivedlocalhost smtp_server127.0.0.1 smtp_connect_timeout30router_id LVS_DEVEL vrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval0vrrp_gna_interval0}vrrp_instance VI_1{state MASTER interface ens32 virtual_router_id51priority100advert_int1authentication{auth_type PASS auth_pass1111}virtual_ipaddress{192.168.88.100}}virtual_server192.168.88.1006446{delay_loop3lb_algo wrr lb_kind DR persistence_timeout300protocol TCP real_server192.168.88.1466446{weight1TCP_CHECK{connect_timeout3connect_port6446}}real_server192.168.88.1476446{weight1TCP_CHECK{connect_timeout3connect_port6446}}virtual_server192.168.88.1006447{delay_loop3lb_algo wrr lb_kind DR persistence_timeout300protocol TCP real_server192.168.88.1466447{weight1TCP_CHECK{connect_timeout3connect_port6447}}real_server192.168.88.1476447{weight1TCP_CHECK{connect_timeout3connect_port6447}}}}backup:server7global_defs{notification_email{rootlocalhost}notification_email_from keepalivedlocalhost smtp_server127.0.0.1smtp_connect_timeout30router_id LVS_DEVEL vrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval0vrrp_gna_interval0}vrrp_instance VI_1{state MASTER interface ens32 virtual_router_id51priority90#权重比master小 advert_int1authentication{auth_type PASS auth_pass1111}virtual_ipaddress{192.168.88.100}}virtual_server192.168.88.1006446{delay_loop3lb_algo wrr lb_kind DR persistence_timeout300protocol TCP real_server192.168.88.1466446{weight1TCP_CHECK{connect_timeout3connect_port6446}}real_server192.168.88.1476446{weight1TCP_CHECK{connect_timeout3connect_port6446}}virtual_server192.168.88.1006447{delay_loop3lb_algo wrr lb_kind DR persistence_timeout300protocol TCP real_server192.168.88.1466447{weight1TCP_CHECK{connect_timeout3connect_port6447}}real_server192.168.88.1476447{weight1TCP_CHECK{connect_timeout3connect_port6447}}}MHA部署准备工作·在 server1、server2、server3 上配置一主两从异步复制均开启GTID简化位置管理·创建用于复制的专用用户 repl 和 MHA管理用户 root需具备管理权限·所有节点需配置SSH免密登录MHA依赖SSH进行日志传输和故障切换。详细配置primarysystemctl stop mysqld[rootserver1 mysql]# cd /data/mysql[rootserver1 mysql]# rm -fr *[rootserver1 mysql]# vim /etc/mysql/my.cnf[mysqld]basedir/usr/local/mysqldatadir/data/mysqlsocket/data/mysql/mysql.sock log-binmysql-binport3306usermysql pid-file/data/mysql/mysql.pid character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci log-error/data/mysql/mysql-error.loginnodb_buffer_pool_size1Gmax_connections1000default_authentication_pluginmysql_native_passwordserver_id1gtid_modeONenforce_gtid_consistencyONlog_slave_updatesONlog_binbinlog[client]socket/data/mysql/mysql.sock[rootserver1 mysql]# mysqld --defaults-file/etc/mysql/my.cnf --initialize[rootserver1 mysql]# systemctl start mysqldmysql alter user rootlocalhost identified by ‘654321’;Query OK, 0 rows affected (0.01 sec)mysqlCREATEUSERrepl%IDENTIFIEDWITHmysql_native_passwordBY654321;Query OK,0rowsaffected(0.01sec)mysqlGRANTREPLICATIONSLAVEON*.*TOrepl%;Query OK,0rowsaffected(0.01sec)mysqlshowmasterstatus;---------------------------------------------------------------------------------------------------|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|---------------------------------------------------------------------------------------------------|binlog.000002|950|||30a2d7e4-8e7c-11f1-863a-000c292077de:1-3|---------------------------------------------------------------------------------------------------1rowinset(0.00sec)slavesystemctl stop mysqldcd/data/mysqlrm-fr*vim/etc/mysql/my.cnf mysqld --defaults-file/etc/mysql/my.cnf--initializegreptemporary password/data/mysql/mysql-error.logmysqlalteruserrootlocalhostidentifiedby654321;Query OK,0rowsaffected(0.03sec)mysqlchange mastertomaster_host192.168.36.173,master_userrepl,master_password654321,master_auto_position1;Query OK,0rowsaffected,7warnings(0.03sec)mysqlstartslave;Query OK,0rowsaffected,1warning(0.03sec)mysqlshowslavestatus\G;mysqlcreatedatabasewestos;Query OK,1rowaffected(0.02sec)mysqlusewestosDatabasechanged mysqlcreatetableuser_tb(usernamevarchar(25)notnull,-passwordvarchar(50)notnull);Query OK,0rowsaffected(0.08sec)mysqlinsertintouser_tbvalues(user1,111);Query OK,1rowaffected(0.21sec)mysqlinsertintouser_tbvalues(user2,222);Query OK,1rowaffected(0.01sec)mysqlselect*fromwestos.user_tb;MHA部署server4systemctl stop mysqlrouter.service ssh-keygen ssh-copy-id server4scp-r.ssh/ server1:scp-r.ssh/ server2:scp-r.ssh/ server3: yuminstall-yha4mysql-node-0.58-0.el7.centos.noarch.rpm#若果安装失败添加epel源wget-O/etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo yuminstall-ymha4mysql-manager-0.58-0.el7.centos.noarch.rpm#集群安装客户端软件scpmha4mysql-node-0.58-0.el7.centos.noarch.rpm server1:scpmha4mysql-node-0.58-0.el7.centos.noarch.rpm server2:scpmha4mysql-node-0.58-0.el7.centos.noarch.rpm server3:mkdir/etc/masterhacd/etc/masterhavim/etc/masterha/app1.cnf[server default]userrootpassword654321ssh_userrootrepl_userreplrepl_password654321master_binlog_dir/data/mysqlremote_workdir/tmpsecondary_check_scriptmasterha_secondary_check-s192.168.88.144-s192.168.88.145ping_interval3manager_workdir/etc/masterha/app1manager_log/etc/masterha/app1/manager.log[server1]hostname192.168.88.143candidate_master1check_repl_delay0[server2]hostname192.168.88.144no_master1[server3]hostname192.168.88.145candidate_master1check_repl_delay0检查免密连接 masterha_check_ssh--conf/etc/masterha/app1.cnf检查集群masterha_check_repl--conf/etc/masterha/app1.cnfMHA故障手动切换MHA故障自动切换·监控进程 masterha_manager 定期通过 ping_interval 检测主库健康·当主库故障时MHA自动执行 master_ip_failover 脚本将VIP漂移到新主库并将所有从库重新指向新主·切换完成后原主库恢复后可作为新的从库加入集群。授予可执行权限chmod 755 master_ip_failoverchmod 755 master_ip_online_changevim master_ip_failover当 MHA 完成主库切换后自动执行这些命令将虚拟 IPVIP从旧主库漂移到新主库上。masterha_manager --conf/etc/masterha/app1.cnf 这条命令启动了 MHAMaster High Availability的核心监控进程它根据 app1.cnf 配置文件在后台静默运行。查看从库状态已切换至新的主节点。RedisRedisRemote Dictionary Server是一个开源的内存数据结构存储系统支持网络访问可用作数据库、缓存、消息代理和流处理引擎。特性说明内存存储数据主要存在内存中读写速度极快10万 QPS数据结构丰富不仅是 key-value还支持 String、Hash、List、Set、Sorted Set、Bitmap、HyperLogLog、Stream、Geo 等持久化支持 RDB快照和 AOF日志两种持久化方式单线程模型核心命令处理是单线程的避免锁竞争保证原子性高可用支持主从复制Replication、Sentinel 哨兵、Cluster 集群模式原子操作所有命令都是原子的适合并发场景Redis安装tarzxf redis-6.2.4.tar.gzcdredis-6.2.4makemakeinstallcdutils/viminstall_server.sh#运行安装脚本./install_server.sh改为监听所有端口redis主从复制·从节点通过配置 replicaof master_ip master_port 指向主库启动后自动同步数据·主从复制为异步适用于读多写少场景可横向扩展读能力。server1rsync-aredis-* server2:/usr/local/binrsync-aredis-6.2.4 server2:server2cdredis-6.2.4/utils ./install_server.shvim/etc/redis/6379.conf replicaof192.168.88.1436379systemctl restart redis_6379测试redis-cliinforedis高可用redis哨兵模式Sentinel·在 server1、server2、server3 上分别部署哨兵进程监控主库状态·哨兵之间相互通信通过投票机制判断主库是否客观下线并自动执行故障转移server2[rootserver1 redis]# redis-cli shutdownredis集群./create-cluster start·集群通过哈希槽16384个槽位分区数据自动分布在多个主节点上./create-cluster create连接集群redis-cli-c-p30001info127.0.0.1:30004setname ljx -Redirected to slot[5798]located at127.0.0.1:30002 OK#添加新节点30007、30008后需执行 reshard 迁移槽位才能均匀数据分布redis-cli--clusteradd-node127.0.0.1:30007127.0.0.1:30001·添加从节点时需指定主节点ID实现副本备份。redis-cli--clusteradd-node127.0.0.1:30008127.0.0.1:30001 --cluster-slave --cluster-master-id ef99a4fc501bce05f725ba926510c2816d1c9f46redis-cli--clustercheck127.0.0.1:30001#迁移hash槽redis-cli--clusterreshard127.0.0.1:30001

相关新闻

人形机器人伦理:阿西莫夫法则、性别争议及人形机器人自杀事件的法律定性(上)

人形机器人伦理:阿西莫夫法则、性别争议及人形机器人自杀事件的法律定性(上)

一、阿西莫夫法则的修订提案及欧盟AI法案(一)阿西莫夫机器人法则的现代扩展阿西莫夫经典的机器人三定律(不伤害人类、服从人类命令、保护自身存在)在当今时代已显现出局限性。学者和机构因此提出了一些新的补充框架:阿…

2026/8/9 14:13:39 阅读更多 →
MCBE快速T触发器:原理、设计与低延迟电路实现

MCBE快速T触发器:原理、设计与低延迟电路实现

在红石电路的世界里,速度就是一切。无论是建造高速农场、自动化流水线,还是设计复杂的逻辑门,一个响应迅速、延迟极低的触发器往往是整个系统的性能瓶颈。如果你还在为传统红石中继器带来的延迟而烦恼,或者觉得某些触发器设计过于…

2026/8/9 16:08:17 阅读更多 →
SAP ABAP选择屏幕进阶:动态必输与健壮检查实战

SAP ABAP选择屏幕进阶:动态必输与健壮检查实战

1. 从“能用”到“好用”:选择屏幕的进阶思考 在SAP ABAP开发里,选择屏幕(Selection Screen)是每个开发者都绕不开的基础设施。它看起来很简单,无非就是几个输入框、单选按钮、复选框,加上一个执行按钮。很…

2026/8/9 15:46:24 阅读更多 →

最新新闻

C++通信开发必知:字节对齐原理、问题与跨平台解决方案

C++通信开发必知:字节对齐原理、问题与跨平台解决方案

1. 项目概述:通信中的字节对齐为何如此关键?在C开发,尤其是涉及网络通信、嵌入式系统、硬件交互或者跨平台数据传输的场景里,字节对齐(Byte Alignment)是一个你迟早会碰上的“坑”。它不像语法错误那样会立…

2026/8/10 1:20:41 阅读更多 →
【风电功率预测】【多变量输入单步预测】基于BiTCN-SVM的风电功率预测研究附Matlab代码

【风电功率预测】【多变量输入单步预测】基于BiTCN-SVM的风电功率预测研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/10 1:20:41 阅读更多 →
ThinkPHP与Laravel双框架教务系统开发实践

ThinkPHP与Laravel双框架教务系统开发实践

1. 项目概述:基于ThinkPHP与Laravel的研究生教务系统开发去年接手某高校研究生院信息化改造项目时,我们面临一个典型困境:原有选课系统采用ASP.NETSQL Server架构,存在跨平台兼容性差、移动端适配困难等问题。经过技术评估&#x…

2026/8/10 1:20:41 阅读更多 →
数据科学与大数据技术在能源消耗分析中的应用实践

数据科学与大数据技术在能源消耗分析中的应用实践

1. 数据科学在能源消耗分析中的核心价值 能源消耗分析正面临前所未有的数据挑战。随着智能电表、工业物联网设备和分布式能源系统的普及,单个中型制造企业每小时产生的能耗数据就可能超过10GB。传统基于Excel和简单统计的方法已经无法应对这种规模的数据处理需求。 …

2026/8/10 1:20:41 阅读更多 →
Unity AR语音交互实战:从语音识别到三维指令解析

Unity AR语音交互实战:从语音识别到三维指令解析

1. 项目概述:当AR遇见语音,交互的升维革命最近在做一个AR项目,客户提了个挺有意思的需求:用户戴上AR眼镜,看到虚拟物体后,直接开口说话,比如“把这个红色的方块放大一点”,或者“把那…

2026/8/10 1:20:41 阅读更多 →
Android架构模式演进:从MVC到MVVM的实践指南

Android架构模式演进:从MVC到MVVM的实践指南

1. Android架构模式演进:从MVC到MVVM的必然选择在Android开发领域,架构模式的选择直接影响着代码的可维护性、可测试性和团队协作效率。十年前我刚入行时,Activity里塞满业务逻辑和UI操作的"上帝对象"比比皆是,直到第一…

2026/8/10 1:19:41 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →