泉州商城网站开发设计百度首页百度一下

pingmian/2025/10/14 9:57:02/文章来源:
泉州商城网站开发设计,百度首页百度一下,wordpress谁看了,农业信息门户网站建设方案任务背景 ##一、真实案例 某同学刚入职公司#xff0c;在熟悉公司业务环境的时候#xff0c;发现他们的数据库架构是一主两从#xff0c;但是两台从数据库和主库不同步。询问得知#xff0c;已经好几个月不同步了#xff0c;但是每天会全库备份主服务器上的数据到从服务… 任务背景 ##一、真实案例 某同学刚入职公司在熟悉公司业务环境的时候发现他们的数据库架构是一主两从但是两台从数据库和主库不同步。询问得知已经好几个月不同步了但是每天会全库备份主服务器上的数据到从服务器上由于数据量不是很大所以一直没有人处理主从不同步的问题。这次正好问到了于是乎就安排该同学处理一下这个主从不同步的问题。 ——来自北京6期刘同学 二、案例背后核心技术 1、熟悉MySQL数据库常见的主从架构 2、理解MySQL主从架构的实现原理 3、掌握MySQL主从架构的搭建 三、今日任务场景 随着业务量不断增长公司对数据的安全性越来越重视由于常规的备份不能够实时记录下数据库的所有状态为了能够保障数据库的实时备份冗余希望将现有单机数据库变成双机热备。 #任务要求 备份数据库搭建双机热备数据库架构M-S #课程目标 了解什么是MySQL的Replication理解MySQL的Replication的架构原理掌握MySQL的基本复制架构的搭建M-S重点了解和掌握基于GTIDs的复制特点及搭建 #理论储备 ##一、MySQL集群概述 ###1、集群的主要类型 高可用集群High Available ClusterHA 高可用集群是指通过特殊的软件把独立的服务器连接起来组成一个能够提供故障切换Fail Over功能的集群 ###2、如何衡量高可用 可用性级别(指标)年度宕机时间描述叫法99%3.65天/年基本可用系统2个999.9%8.76小时/年可用系统3个999.99%52.6分钟/年高可用系统4个999.999%5.3分钟/年抗故障系统5个999.9999%32秒/年容错系统6个9 计算方法 1年 365天 8760小时 99% 8760 * 1% 8760 * 0.01 87.6小时3.65天 99.9 8760 * 0.1% 8760 * 0.001 8.76小时 99.99 8760 * 0.0001 0.876小时 0.876 * 60 52.6分钟 99.999 8760 * 0.00001 0.0876小时 0.0876 * 60 5.26分钟 ###3、常用的集群架构 MySQL Replication MySQL Cluster MySQL Group Replication MGR 5.7.17 MariaDB Galera Cluster MHA|Keepalived|HeartBeat|LvsHaproxy等技术构建高可用集群 ##二、MySQL复制简介 ###1、什么是MySQL复制 Replication可以实现将数据从一台数据库服务器master复制到一台到多台数据库服务器(slave) 默认情况下属于异步复制所以无需维持长连接 ###2、 MySQL复制原理 简单来说master将数据库的改变写入二进制日志slave同步这些二进制日志并根据这些二进制日志进行数据重演操作实现数据异步同步。 详细描述 slave端的IO线程发送请求给master端的binlog dump线程 master端binlog dump线程获取二进制日志信息(文件名和位置信息)发送给slave端的IO线程 salve端IO线程获取到的内容依次写到slave端relay log里并把master端的bin-log文件名和位置记录到master.info里 salve端的SQL线程检测到relay log中内容更新就会解析relay log里更新的内容并执行这些操作从而达到和master数据一致 ###3、MySQL复制架构 ####㈠ 双机热备AB复制 默认情况下master接受读写请求slave只接受读请求以减轻master的压力。 ####㈡ 级联复制 优点进一步分担读压力 缺点slave1 出现故障后面的所有级联slave服务器都会同步失败 ####㈢ 并联复制 优点解决上面的slave1的单点故障同时也分担读压力 缺点间接增加master的压力传输二进制日志压力 ####㈣ 双主复制 特点 从命名来看两台master好像都能接受读、写请求但实际上往往运作的过程中同一时刻只有其中一台master会接受写请求另外一台接受读请求。 ##三、MySQL复制搭建 ###1、传统AB复制架构(M-S) 说明当前环境中master上已有mysql数据库版本为5.7.31 ####㈠ 环境说明 IP主机名角色10.1.1.10db01.heima.cc 别名:mastermaster(主)10.1.1.20db02.heima.cc 别名:slavesalve(从) ####㈡ 安装前环境准备 1、关闭防火墙和selinux # systemctl stop firewalld # systemctl disable firewalld # systemctl list-unit-files|grep firewalld # setenforce 0 # sed -i /^SELINUX/cSELINUXdisabled /etc/selinux/config 2、修改主机名 master上 # hostnamectl set-hostname db01.heima.cc slave上 # hostnamectl set-hostname db02.heima.cc 3、绑定IP地址和主机名到hosts文件 说明主从两台服务器一起完成 # cat /etc/hosts 追加以下内容 10.1.1.10 db01.heima.cc master 10.1.1.20 db02.heima.cc slave ​ 4、同步系统时间 说明保证两台服务器系统时间一致即可 ####㈢ 搭建主从复制思路 slave必须安装相同版本的mysql数据库软件 master端必须开启二进制日志slave端必须开启relay log日志 master端和slave端的server-id号不能一致 slave端配置向master来同步数据 master端必须创建一个复制用户 保证master和slave端初始数据一致 配置主从复制slave端 ####㈣ 主从搭建步骤 #####① Slave安装MySQL软件 # useradd -r -s /sbin/nologin mysql # tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz # mv mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql # echo export PATH$PATH:/usr/local/mysql/bin /etc/profile # source /etc/profile # cd /usr/local/mysql # cp support-files/mysql.server /etc/init.d/mysql ​ 注意 暂时不需要初始化数据库文件只是安装好了和master相同版本的mysql数据库软件后面向master来同步所有数据。 #####② 修改主从配置文件 注意master和slave都要修改 Master服务器配置文件 [rootdb01 ~]# cat /etc/my.cnf [mysqld] basedir/usr/local/mysql datadir/usr/local/mysql/data socket/usr/local/mysql/mysql.sock port3310 log-error/usr/local/mysql/db01-master.err log-bin/usr/local/mysql/data/binlog server-id10 character_set_serverutf8mb4 Slave服务器配置文件 [rootdb02 ~]# cat /etc/my.cnf [mysqld] basedir/usr/local/mysql datadir/usr/local/mysql/data socket/usr/local/mysql/mysql.sock port3320 log-error/usr/local/mysql/db02-slave.err relay-log/usr/local/mysql/data/relaylog server-id20 character_set_serverutf8mb4 #####③ 同步master数据到slave 1停止master上的mysql服务 # service mysql stop 2删除master上auto.cnf文件 [rootdb01 data]# pwd /usr/local/mysql/data [rootdb01 data]# rm -f auto.cnf 说明auto.cnf文件里保存的是每个数据库实例的UUID信息代表数据库的唯一标识 3同步master数据到slave [rootdb01 ~]# rsync -av /usr/local/mysql/data 10.1.1.20:/usr/local/mysql/ 4启动master和slave数据库 [rootdb02 ~]# service mysql start [rootdb01 ~]# service mysql start #####④ 配置slave同步master数据 1master端创建授权用户 mysql create user slave10.1.1.% identified by 123; Query OK, 0 rows affected (0.00 sec)mysql grant replication slave on *.* to slave10.1.1.%; Query OK, 0 rows affected (0.00 sec)mysql flush privileges; Query OK, 0 rows affected (0.00 sec) 2查看master上正在写的二进制文件名和位置 先加锁防止两边数据不一致 mysql flush tables with read lock; 查看当前数据库的二进制日志写到什么位置只有打开二进制日志这句命令才有结果 mysql show master status; 3slave上配置同步信息 mysql change master to- master_host10.1.1.10,- master_userslave,- master_password123,- master_port3310,- master_log_filebinlog.000002,- master_log_pos1218;说明 master_host master的IP master_user 复制的用户 master_password 复制用户密码 master_port master的端口号 master_log_file master正在写的二进制文件名锁表后查看的 master_log_pos master正在写的二进制位置 4启动复制线程开始同步 mysql start slave; mysql show slave status\G;.....Slave_IO_Running: Yes 代表成功连接到master并且下载日志Slave_SQL_Running: Yes 代表成功执行日志中的SQL语句 启动slave报如下错误 mysql start slave; ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository 解决删除relay-log.info重启mysql服务或者mysqlreset slave; 5master上解锁 mysql unlock tables; Query OK, 0 rows affected (0.00 sec) 6测试验证 #####⑤ 主从配置总结 主从复制必须保证两台数据库实例的server-id不一致 主服务器必须开启二进制日志从服务器必须开启中继日志 主从复制搭建必须保证初始数据一致 主服务器必须要给从服务器创建一个复制用户并授予复制权限 Master—Slave架构主写会同步到从而从写不会同步到主 #####⑥ 数据不一致导致同步失效 问 如果由于人为操作或者其他原因直接将数据更改到从服务器导致数据同步失效怎么解决 答可以通过变量sql_slave_skip_counter临时跳过事务进行处理 SET GLOBAL sql_slave_skip_counter N N代表跳过N个事务 举例说明 mysql SET GLOBAL sql_slave_skip_counter1; mysql stop slave; mysql start slave; 注意 1. 跳过事务应该在slave上进行 2. 传统的AB复制方式可以使用变量sql_slave_skip_counter基于GTIDs的方式不支持 ###2、基于GTIDs的AB复制架构(M-S) ####㈠ 关于GTIDs概述 什么是GTIDs以及有什么特点 GTIDsGlobal transaction identifiers全局事务标识符是mysql 5.6新加入的一项技术 当使用GTIDs时每一个事务都可以被识别并且跟踪 添加新的slave或者当发生故障需要将master身份或者角色迁移到slave上时都无需考虑是哪一个二进制日志以及哪个position值极大简化了相关操作 GTIDs是完全基于事务的因此不支持MYISAM存储引擎 GTID由source_id和transaction_id组成 1source_id来自于server_uuid,可以在auto.cnf中看到 2transation_id是一个序列数字自动生成. 使用GTIDs的限制条件有哪些 不支持非事务引擎MyISAM因为可能会导致多个gtid分配给同一个事务 create table ... select 语句不支持主库语法报错 create/drop temporary table 语句不支持 必须使用enforce-gtid-consistency参数 sql-slave-skip-counter不支持(传统的跳过错误方式) GTID复制环境中必须要求统一开启和GTID或者关闭GTID 在mysql 5.6.7之前使用mysql_upgrade命令会出现问题 ####㈡ 基于GTIDs的配置 在生产环境中大多数情况下使用的MySQL5.6基本上都是从5.5或者更低的版本升级而来这就意味着之前的mysql replication方案是基于传统的方式部署并且已经在运行因此接下来我们就利用已有的环境升级至基于GITDs的Replication #####〇 思路 修改配置文件支持GTIDs (主从) 重启数据库 (主从) 为了保证数据一致性master和slave设置为只读模式 (主从) 从服务器上重新配置同步 从 ① 修改配置文件支持GTIDs [rootdb01 ~]# cat /etc/my.cnf [mysqld] basedir/usr/local/mysql datadir/usr/local/mysql/data socket/usr/local/mysql/mysql.sock port3310 log-error/usr/local/mysql/db01-master.err log-bin/usr/local/mysql/data/binlog server-id10 character_set_serverutf8mb4 gtid-modeon log-slave-updates1 enforce-gtid-consistency[client] socket/usr/local/mysql/mysql.sock[rootdb02 ~]# cat /etc/my.cnf [mysqld] basedir/usr/local/mysql datadir/usr/local/mysql/data socket/usr/local/mysql/mysql.sock port3320 log-error/usr/local/mysql/db02-slave.err relay-log/usr/local/mysql/data/relaylog server-id20 character_set_serverutf8mb4 log-slave-updates1 gtid-modeon enforce-gtid-consistency skip-slave-start[client] socket/usr/local/mysql/mysql.sock说明 1开启GITDs需要在master和slave上都配置gtid-modelog-binlog-slave-updatesenforce-gtid-consistency该参数在5.6.9之前是--disable-gtid-unsafe-statement 2其次slave还需要增加skip-slave-start参数,目的是启动的时候先不要把slave起来需要做一些配置 3基于GTIDs复制从服务器必须开启二进制日志 ② 重起主从数据库服务 [rootdb01 ~]# service mysql restart Shutting down MySQL............ SUCCESS! Starting MySQL.. SUCCESS! [rootdb02 ~]# service mysql restart Shutting down MySQL.... SUCCESS! Starting MySQL.. SUCCESS! #####③ 主从设置只读模式 mysql set global.read_onlyON; #####④ slave重新配置同步 mysql change master to master_host10.1.1.10,master_userslave,master_password123,master_port3310,master_auto_position1;注意 1.确保有复制用户 2.主要区别于传统复制的参数是master_auto_position1 #####⑤ slave上启动同步线程 mysql start slave; #####⑥ 关闭master只读模式 mysql set global.read_onlyOFF; #####⑦ 测试验证 ####㈢ 基于GTIDs手动跳过事务 指定需要跳过的GTIDs编号 SET GTID_NEXTaaa-bbb-ccc-ddd:N; 开始一个空事务 BEGIN; COMMIT; 使用下一个自动生成的全局事务ID。 SET GTID_NEXTAUTOMATIC;举例说明 mysql stop slave; mysql SET SESSION.GTID_NEXT 044e6392-cf9b-11e8-a748-000c294ca304:3; mysql BEGIN; mysql commit; mysql SET SESSION.GTID_NEXT AUTOMATIC; mysql start slave; mysql show slave status\G说明需要跳过哪个事务需要手动查看relaylog文件得到 [rootslave1 data]# ../bin/mysqlbinlog relay.000003|less 。。。。 # at 756 #181015 12:04:45 server id 10 end_log_pos 817 CRC32 0x5374f49e GTID [commityes] SET SESSION.GTID_NEXT 044e6392-cf9b-11e8-a748-000c294ca304:3/*!*/; ###3、其他复制架构 ####㈠ M-S1-S2 核心 中间slave1机器打开log-slave-updates1参数将master上的二进制日志同事保存到自己的二进制日志中以便其他从服务器来同步 其他配置和M-S架构一样 测试验证 master上更新数据slave1和slave2都可以同步 关闭slave1再次更新master数据slave2不能同步 启动slave1后slave1和slave2又再次同步了数据 ####㈡ M1-M2 配置和M-S一样再互换角色配置同步 测试验证M1写数据M2同步M2写数据M1同步 ###4、复制总结 上面的复制架构默认都是异步的也就是主库将binlog日志发送给从库这一动作就结束了并不会验证从库是否接受完毕。这样可以提供最佳的性能。但是同时也带来了很高的风险当主服务器或者从服务器发生故障时极有可能从服务器没有接到主服务器发过来的binglog日志这样就会导致主从数据不一致甚至导致数据丢失。为了解决该问题mysql5.5引入了半同步复制模式。 ###5、半同步复制 所谓的半同步复制就是master每commit一个事务(简单来说就是做一个改变数据的操作,要确保slave接受完主服务器发送的binlog日志文件并写入到自己的中继日志relay log里然后会给master信号告诉对方已经接收完毕这样master才能把事物成功commit。这样就保证了master-slave的数据绝对的一致但是以牺牲master的性能为代价).但等待时间也是可以调整的。 ####㈠ 准备M-S复制架构 自己准备完成 ####㈡ 半同步复制配置步骤 #####① 安装插件 插件存放目录$basedir/lib/plugin/ master上安装插件 mysql install plugin rpl_semi_sync_master soname semisync_master.so; Query OK, 0 rows affected (0.00 sec) 查看是否安装成功 mysql show global variables like rpl_semi_sync%; ------------------------------------------- | Variable_name | Value | ------------------------------------------- | rpl_semi_sync_master_enabled | OFF | 是否启用master的半同步复制 | rpl_semi_sync_master_timeout | 10000 | 默认主等待从返回信息的超时间时间10秒。动态可调 | rpl_semi_sync_master_trace_level | 32 | 用于开启半同步复制模式时的调试级别默认是32 | rpl_semi_sync_master_wait_no_slave | ON | 是否允许每个事物的提交都要等待slave的信号.on为每一个事物都等待off则表示slave追赶上后也不会开启半同步模式需要手动开启 -------------------------------------------slave上安装插件 mysql install plugin rpl_semi_sync_slave soname semisync_slave.so; mysql show global variables like rpl_semi_sync%; ---------------------------------------- | Variable_name | Value | ---------------------------------------- | rpl_semi_sync_slave_enabled | OFF | slave是否启用半同步复制 | rpl_semi_sync_slave_trace_level | 32 | ---------------------------------------- #####② 激活半同步复制 master上 mysql set global rpl_semi_sync_master_enabled on;mmysql show global status like rpl_semi_sync%; --------------------------------------------------- | Variable_name | Value | --------------------------------------------------- | Rpl_semi_sync_master_clients | 1 | 有一个从服务器启用半同步复制 | Rpl_semi_sync_master_net_avg_wait_time | 0 | master等待slave回复的平均等待时间。单位毫秒 | Rpl_semi_sync_master_net_wait_time | 0 | master总的等待时间。单位毫秒 | Rpl_semi_sync_master_net_waits | 0 | master等待slave回复的总的等待次数 | Rpl_semi_sync_master_no_times | 0 | master关闭半同步复制的次数 | Rpl_semi_sync_master_no_tx | 0 | 表示从服务器确认的不成功提交的数量 | Rpl_semi_sync_master_status | ON | 标记master现在是否是半同步复制状态 | Rpl_semi_sync_master_timefunc_failures | 0 | master调用时间如gettimeofday())失败的次数 | Rpl_semi_sync_master_tx_avg_wait_time | 0 | master花在每个事务上的平均等待时间 | Rpl_semi_sync_master_tx_wait_time | 0 | master花在事物上总的等待时间 | Rpl_semi_sync_master_tx_waits | 0 | master事物等待次数 | Rpl_semi_sync_master_wait_pos_backtraverse | 0 | 后来的先到了而先来的还没有到的次数 | Rpl_semi_sync_master_wait_sessions | 0 | 当前有多少个session因为slave回复而造成等待 | Rpl_semi_sync_master_yes_tx | 0 | 表示从服务器确认的成功提交数量 --------------------------------------------------- slave上 mysql set global rpl_semi_sync_slave_enabledon; mysql show global status like rpl_semi_sync%; ----------------------------------- | Variable_name | Value | ----------------------------------- | Rpl_semi_sync_slave_status | ON | ----------------------------------- #####③ 重启slave的IO线程 mysql stop slave IO_THREAD; mysql start slave IO_THREAD; #####④ 测试验证 原理 当slave从库的IO_Thread 线程将binlog日志接受完毕后要给master一个确认如果超过10s未收到slave的接收确认信号那么就会自动转换为传统的异步复制模式。 1master插入一条记录查看slave是否有成功返回 mysql insert into a values (3); Query OK, 1 row affected (0.01 sec)mysql show global status like rpl_semi_sync%_yes_tx; ------------------------------------ | Variable_name | Value | ------------------------------------ | Rpl_semi_sync_master_yes_tx | 1 | 表示这次事物成功从slave返回一次确认信号 ------------------------------------ 2slave上模拟故障查看返回时间 当slave挂掉后master这边更改操作 # service stop mysql 或者直接停止slave的IO_thread线程 mysql stop slave io_thread;mysql insert into a values (4); Query OK, 1 row affected (10.00 sec) 这次插入一个值需要等待10秒默认的等待时间)mysql insert into a values (5); Query OK, 1 row affected (0.01 sec) 现在自动转成了原来的异步模式 3再次启动slave查看同步模式 mysql show global status like rpl_semi_sync%; ----------------------------------- | Variable_name | Value | ----------------------------------- | Rpl_semi_sync_slave_status | OFF | ----------------------------------- 如需要再次半同步复制则按照以上步骤重新开启就可以mysql set global rpl_semi_sync_slave_enabledon; mysql stop slave IO_THREAD; mysql start slave IO_THREAD;或者可以将该参数写入到配置文件中 masterrpl_semi_sync_master_enabled1 slaverpl_semi_sync_slave_enabled1 4、测试结果 5、master需要等到slave确认后才能提交如果等不到确认消息master等待10s种后自动变成异步同步;slave启起来后master上改变的数据还是会自动复制过来数据又回到一致。 6、等待时间可以在master上动态调整如下 mysql set global rpl_semi_sync_master_timeout3600000; mysql show global variables like rpl_semi_sync%; --------------------------------------------- | Variable_name | Value | --------------------------------------------- | rpl_semi_sync_master_enabled | ON | | rpl_semi_sync_master_timeout | 3600000 | | rpl_semi_sync_master_trace_level | 32 | | rpl_semi_sync_master_wait_no_slave | ON | --------------------------------------------- ⑤ 卸载插件 mysql select plugin_name,load_option from information_schema.plugins; mysql uninstall plugin plugin_name; ###6、经验值分享 ###7、扩展补充 跟复制相关的文件 master.info 用于保存slave连接至master的相关信息包括服务器地址用户名密码等 relay-log.info 保存在当前的slave节点上已经复制的当前二进制日志和本地relay log日志的对应关系 复制的监控和维护 purge 命令 mysql purge binary logs to mysql-bin.000008; 指明这个二进制文件之前的所有的文件都会被清理mysql purge binary logs before 2017-04-23 20:46:26; 指明二进制日志文件中这个时间点之前的所有的事件都会被清理监控操作mysql show master status; 显示主节点正在写哪个二进制日志文件mysql show binlog events; 显示在二进制文件中记录了哪些信息mysql show binary logs ; 显示记录了哪些二进制日志文件mysql show slave status; 显示从服务器的状态mysql show processlist; 显示当前启用的线程 #课后实战 使用今天所学完成今天的任务形成技术文档

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设对策react做的网站有哪些

摘要: Java 8 中的 Stream API 提供了一种新的处理集合和数组的方式,可以使代码更加简洁、易读,同时还可以提高性能。其中 map() 方法是比较常用的方法之一,它可以将 Stream 对象中的每个元素映射为另一个元素。本文将对 Java 8 中…

win7系统下动网站建设sem优化公司

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

西安高新网站制作怎么办?

2013年国庆期的一则网络消息说,11万人看升旗留下了5吨垃圾。有人认为这是一则假消息,因为5吨=5000千克,110000500022千克/人,而每人携带22千克(44斤)的垃圾是不可能的。以前还看过一个说法&…

外卖网站开发能多少钱建立网站解析会员视频是犯什么罪

国货之光来喽 !!!!超火的colorkey空气唇釉给你们安排上 !!!R601 酒酿梅子超酷超性感的一支 !!这个颜色是偏调但是不显老的深草莓红 一点都不挑皮 谁涂谁白一个度~厚厚的涂一层气场值upup !R608 焦糖红棕偏橘棕调的红棕板栗 !!薄涂厚涂都显白、显气质!味道…

网站制作价格行情wordpress变化

写在前面:三目运算符是我们经常在代码中使用的,a (bnull?0:1); 这样一行代码可以代替一个 if-else,可以使代码变得清爽易读。但是,三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。前段时间遇到(一个…

自己做网站咋做有了页游源代码如何做网站

在足够多的新设备进入主流市场之前,5G已经在许多领域引起了越来越多的关注。从IT、零售、交通和制造业到医疗、娱乐、教育和农业,几乎每个行业都将在某种程度上受到5G的影响。 作者:李雪薇来源:IT168网站 在足够多的新设备进入主…

根据网站做app网站收录查询接口

内存函数主要用于动态分配和管理内存,它直接从指针的方位上进行操作,可以实现字节单位的操作。 其包含的头文件都是:string.h memcpy copy block of memory的缩写----拷贝内存块 格式: void *memcpy(void *dest, const void …

衡阳市网站建设公司北京网页制作公司物美价廉

Android系统启动加载流程: 参考图 Linux内核加载完毕启动init进程init进程fork出zygote进程zygote进程在ZygoteInit.main()中进行初始化的时候fork出SystemServer进程SystemServer进程开启的时候初始化ActivityThread和ActivityManagerService(其它还有P…

咸阳网站建设推广装修工人

ElasticSearch系列整体栏目 内容链接地址【一】ElasticSearch下载和安装https://zhenghuisheng.blog.csdn.net/article/details/129260827【二】ElasticSearch概念和基本操作https://blog.csdn.net/zhenghuishengq/article/details/134121631【三】ElasticSearch的高级查询Quer…

做缓网站网页版的微信

文章目录 5.1 跨链交易分析5.1.1 基础知识5.1.2 重点案例:分析以太坊到 BSC 的跨链交易理论步骤和工具准备Python 代码示例构思步骤1: 设置环境和获取合约信息步骤2: 分析以太坊上的锁定交易步骤3: 跟踪BSC上的铸币交易 结论 5.1.3 拓展案例 1:使用 Pyth…

模板网站建设哪家专业上海企业查询官网

楼宇自动化在现代建筑中扮演着重要的角色,它可以集成和控制各种设备和系统,提高建筑的能效和舒适性。然而,不同的设备和系统通常使用不同的通信协议,这给楼宇自动化的实施带来了一定的挑战。为了解决这个问题,BACnet和…

做网站大概要多久项目实施方案计划书

正则表达式速查表 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n“匹配字符”n“。”\n“匹配一个换行符。串行”\\“匹配”\“而”\(“则匹配”(“。 ^ 匹配输入字符串的开始位置。如果设置了RegExp…

化妆品网站优化网站代码规范性

hi,我是逸尘,一起学java吧 枚举是信息的标志和分类 当一个变量有几种固定可能的取值时,就可以将它定义为类型的枚举。 优点:代码可读性好,入参约束严谨,代码优雅,是最好的信息分类技术&#x…

网站免费建站众享星球专门做童装的网站

一、SpEL 其中,直接写也可以赋值,‘ ’ 单引号引起来后成为一个字符串对象,可以调用String的方法; 二、引用另外一个bean 装配这个类的bean: 1、第一种方法,property标签中使用bean引用 2、使用Spring表达…

房地产网站设计网络营销推广的

原标题:北方工业大学服务机器人研究项目介绍指导老师:王月海、杨扬团队成员:李雄 16级研究生 电子与通信工程专业郭迎达 15级研究生 电子与通信工程专业朱建林 15级研究生 计算机技术专业宋威 16级研究生 电子与通信工程专业孙逊之 15级研究生…

产品设计公司创业常州seo建站

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发…

广州建设银行招聘网站凡客v 网上商城

【ArcGIS处理】行政区划与流域区划间转化 引言数据准备1、行政区划数据2、流域区划数据 ArcGIS详细处理步骤Step1:统计行政区划下子流域面积1、创建批量处理模型2、添加批量裁剪处理3、添加计算面积 Step2:根据子流域面积占比均化得到各行政区固定值 参考…

珠海微网站制作网页设计实训报告总结与收获

摘要: 知识图谱,是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系,通过将数据粒度从document级别降到data级别,聚合大量知识,从而实现知识的快速响应和推理。文/阿里安全 染青“The world i…

深圳电力建设公司网站sns社交网站建设

Git 基础 参考 Git 中文文档 — https://git-scm.com/book/zh/v2 1.介绍 Git 是目前世界上最先进的分布式版本控制系统,有这么几个特点: 分布式:是用来保存工程源代码历史状态的命令行工具保存点:保存点可以追溯源码中的文件…

网站开发+语音网页设计与制作100例论文

iis php500错误的解决办法:1、打开PHP.ini,设置显示错误;2、把“require(./xxx.php)”改成“require(xxx.php)”;3、给网站的上级目录赋予iis用户读权限即可。推荐:《PHP视频教程》本方法适用于任何品牌的电脑。IIS 配…