- 博客(323)
- 问答 (2)
- 收藏
- 关注
原创 使用Docker 实现 MySQL 循环复制(三)
1. 在主机上安装MySQL客户端2. 配置循环复制拓扑2.1 进入容器2.2 创建复制用户并授予复制权限2.3 复位二进制日志2.4 配置环形复制拓扑2.5 导入测试数据并测试复制功能2.6 研究一下 GTID 在 MySQL 复制中的重要作用3. 常见出错与解决方法
2024-07-18 19:10:58
1330
2
原创 使用Docker 实现 MySQL 循环复制(二)
1. 创建三个 mysql 容器1.1 准备三个 mysql 容器的挂载卷1.2 为三个mysql实例创建配置文件1.3 修改各目录的权限以满足 mysql 容器的要求1.4 创建 docker-compose.yaml 文件1.5 创建容器
2024-07-18 18:18:02
1139
原创 使用Docker 实现 MySQL 循环复制(一)
复制是 MySQL 的一项非常重要的技术,它使服务器能够将更改从一个实例复制到另一个实例,复制技术被广泛应用在水平横向扩展、商业智能和分析、地理数据分布、高可用性与容灾等关键性场景中。在某些地区或网络环境下,直接从官方 Docker Hub 下载镜像可能会出现速度慢、不稳定甚至无法连接等问题。典型的复制拓扑是主/从属服务器的一对多关系,高级复杂复制拓扑有双向复制、循环复制以及多源复制等。本次实验将在一台虚拟机中使用 Docker 容器构建三个 MySQL 循环复制拓扑。
2024-07-18 16:48:18
1033
原创 【移动应用开发期末复习】第五/六章例题
是一个容器控件,用于容纳多个RadioButton,并确保在同一时间只有一个RadioButton能被选中,即实现互斥的选择效果。在Android中,有四种常用的布局方式,分别是:FrameLayout(框架布局)、LinearLayout(线性布局)、RelativeLayout(相对布局)和TableLayout(表格布局)。它并不限制文件的写入行为,也就是说,写入文件时不会覆盖原有内容,而是按照所选的写入模式(如MODE_APPEND或MODE_PRIVATE)进行操作。方法来提交你的更改。
2024-06-27 16:17:53
897
原创 【移动应用开发期末复习】第五/六章
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。即内容提供者,是 Android 四大组件之一。
2024-06-26 22:10:03
327
原创 【移动应用开发期末复习】第四章
使用XML布局文件定义视图组件Android平台为大多数视图组件以及其子类提供了XML标记,可通过XML布局文件中的标记来定义视图组件。XML中的每个元素代表了一个组件,即元素名称对应相应的Java类。
2024-06-26 20:55:32
1023
原创 【移动应用开发期末复习】第三章例题
C. System.exit(0):虽然这个方法可以强制终止整个Java虚拟机(包括你的Android应用),但它并不是Android官方推荐的方法。当调用此方法时,当前的Activity会经过其生命周期的onDestroy()方法,并从Activity栈中移除。B. 抛异常强制退出:虽然这种方法确实可以使Activity或整个应用退出,但用户体验极差,因为它会触发一个“Force Close”的对话框,给用户一种应用崩溃的错觉。此外,这种方法并不符合Android的设计理念和最佳实践。
2024-06-26 20:12:13
969
原创 【移动应用开发期末复习】第三章
Activity是Android应用程序四大组件中最基础、最重要的组件,它为用户提供了一个用于任务交互的用户界面,其作用类似于使用浏览器软件时的网页(二者都可以包含控件,都占据一个窗口),是用户与应用程序交互的基本单元每一个Activity可以启动另外一个Activity。每当一个新的Activity被启动,那么之前的Activity将被停止,但是Android系统并不是直接销毁之前的Activity,而是会把它压入到一个栈中(back stack,返回栈)。
2024-06-26 19:27:31
695
原创 【移动应用开发期末复习】第二章例题
当开发者在res文件夹中添加、修改或删除资源文件时,Android开发工具(如Android Studio)会自动重新生成R.java文件,以确保其中包含的资源ID与最新的资源文件保持一致。文件是资源文件的索引类,它包含了项目中所有资源(如布局、字符串、图片等)的。文件是Android开发中自动生成的,它不需要开发者进行手动维护。是一个自动生成的类,它包含了所有在res目录下定义资源的引用。
2024-06-26 16:57:46
1026
原创 【移动应用开发期末复习】第二章——Android开发环境
是Android中的命令行工具,用于获取程序从启动到关闭的日志信息。:包含一种或多种格式化属性的集合,在程序中调用主题资源可改变窗体的样式。)是一个命令行工具,它允许开发者与设备进行通信,进行各种调试和管理工作。(1)在AndroidManifest.xml文件中设置主题。想要调用styles.xml文件中定义的主题,可以在。:设置View的宽度、高度和背景颜色等信息。:通常用于搭建程序中的各个界面。件中设置,也可以在代码中设置。(2)在Java代码中设置主题。主题资源定义位置:在。
2024-06-26 16:17:12
539
原创 【移动应用开发期末复习】第一章——Android平台概述
Android 应用程序的开发主要使用Java语言Android SDK工具将应用程序代码和相关所有数据和资源文件都编译到一个Android软件包中(带有.apk后缀的存档)Android操作系统是一种多用户的Linux系统默认情况,每个应用程序都在其自己的Linux进程内运行。
2024-06-26 10:27:40
628
1
原创 【golang学习之旅】延迟调用——defer
在函数执行完毕后,可以及时地释放函数创建的资源,该操作不需要写在代码末尾(很容易忘记这个步骤),直接写在创建资源代码后面。后面的语句会依赖前面的资源,因此如果先前面的资源先释放了,后面的语句就没法执行了。这种机制让程序员不再为什么时机关闭资源而烦恼。defer 是先进后出的。,这和函数调用是一样的。
2024-06-25 22:09:40
1057
原创 【golang学习之旅】Go中的变量——基本数据类型(2)
在将string 类型转成 基本数据类型时,要确保string类型能够转成有效的数据,比如我们可以把"123"转成一个整数,但是不能把"hello"转成一个整数,如果这样做,Golang直接将其转成 0。和Java/C 不同,Go在不同类型的变量之间赋值时需要显示转换,也就是说不能自动转换。Go的字符串是由单个字节连接起来的,每个字节是使用UTF-8编码来处理字符的。从上面的输出可以看出:类型转换所转换的是。的值,是把转换后的值交给了其他变量,变量本身的类型并没有发生变化。字符串有两种表示形式。
2024-06-24 13:09:55
1307
原创 【golang学习之旅】Go中的变量——基本数据类型(1)
有符号 64 位整型 (-9223372036854775808 到 9223372036854775807):类似 uint8,代表了 ASCII 码的一个字符,也可以说是 ASCII 字符类型。Go 语言的 int/uint 类型,是不可移植的类型,其长度根据宿主机的机器字长决定。:无符号 64 位整型 (0 到 18446744073709551615):有符号 32 位整型 (-2147483648 到 2147483647):无符号 32 位整型 (0 到 4294967295)
2024-06-24 13:04:20
1192
1
原创 【计算机系统结构期末复习】第六章
设某个数组多路通道设备选择时间Ts=1us,传送1个字节数据的传送时间Td=1us,次传送定长数据块的大小k=512B。若希望从8台外设中至少选择4台外设同时连接到该通道上,而且尽量多连接传输速率高的外设,那么,应选择哪些外设连接到该通道上?(2)如果按数组多路通道设计,且通道一次传送定长数据块的大小k=512B,该通道的最大流量是多少?有8台外设的数据传输率如表所示,设计一种通道,Ts=2us,Td=2us.(2)若通道的最大流量等于实际工作流量,求通道的工作周期Ts+TD。
2024-06-21 10:49:05
811
原创 【计算机系统结构期末复习】第五章
假设在3000次访存中,第一级Cache 不命中110次,第二级Cache不命中55次。给定以下的假设,试计算直接映像Cache和两路组相联Cache的平均访问时间以及CPU的性能由计算结果能得出什么结论?(6)64KB直接映象Cache的失效率为1.4%,64KB两路组相联Cache的失效率为1.0%。设有一个"Cache-主存”层次,Cache为4块,主存为8块:试分别对于以下3种情况,画出。(1)理想Cache情况下的CPI为,时钟周期为2ns,平均每条指令访存1.2次;
2024-06-20 22:26:38
1100
原创 【计算机系统结构期末复习】第四章
基本思想:只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中。指令的执行结果也是直接送到等待数据的其它保留站中去。因而,对于连续的寄存器写,只有最后一个才真正更新寄存器中的内容。一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)。
2024-06-20 21:35:40
553
原创 【计算机系统结构期末复习】第三章
在CRAY-1计算机上按照链接方式执行下述4条间量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?有一条静态多功能流水线出5段组成(如图3.45所示加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t ,其余各段的时间均△t,现要在该流水线上计算Πi=1-4(Ai+Bi),画出其时空图,并计算其吞吐率、加速比和效率。效率:流水线中的设备实际使用时间与整个运行时间的比值,即流水线利用率。
2024-06-20 21:09:26
937
原创 【计算机系统结构期末复习】第二章
在通用寄存器结构中,根据操作数的来源不同,又可以进一步分为寄存器-存储器型结构(简称RM结构)和寄存器-寄存器型结构(RR结构),在RR结构中只有load和store指令能够访问寄存器,所以也称为load-store结构。相同功能的CISC目标程序的指令条数ICCISC 少于RISC的ICRISC,但是CISC的CPICISC和TCISC都大于RISC的CPIRISC和TRISC,因此,其中,IC为目标程序被执行的指令条数,CPI为指令平均执行周期数,T是时钟周期的时间。区别不同指令集结构的主要因素是。
2024-06-20 16:15:09
642
原创 【计算机系统结构期末复习】第一章
存储程序原理的基本点是指令驱动。程序预先存放在计算机存储器中,计算机一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。在系统结构方面有了很大的进展,主要包括以下几个方面。冯·诺依曼结构结构及其演进。
2024-06-20 10:33:37
444
原创 【golang学习之旅】Go程序快速开始 & Go程序开发的基本注意事项
Go方法是由一条条语句构成,每个语句后不需要分号,因为Go的编译器会主动把特定符号后的换行符转换为分号。Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句卸载同一行,否则报错。命令对该go文件进行编译,如果编译成功则在该目录下生成 一个同名的。打开VScode,点击下面绿框里的按键来打开我们上面创建的目录。然后在这个目录下创建一个main目录,main目录下创建一个以。打开VScode的terminal,进入到go文件所在的目录下。如果程序有错误,在编译时会在错误的那行报错。
2024-06-19 22:24:19
1446
原创 【golang学习之旅】使用VScode安装配置Go开发环境
也就是在一个平台上可以生成在另一个平台上运行的程序,比如在32位的windows操作系统环境中,生成可以在64位Linux操作系统上运行的二进制程序,通常需要借助第三方的工具才能够实现。最后可以去看一下系统变量里的 Path(点击 Path然后编辑),一般可以看到 Go 的路径已经配置好了,我们不需要动,这是 Go 在安装时自动配置的。,如果将Go安装在其他目录中,而需要将GOROOT的值修改为对应的目录。GOPATH的目录位置可以自己选择。,回车如下图,选择要安装的依赖(这里全选),等待安装完成。
2024-06-19 19:58:17
3371
原创 常说的上游服务和下游服务如何区分?
上游服务通常是指发起请求的服务,即调用其他服务的服务。在服务架构中,上游服务通常位于较高的层次,负责向下游服务发起请求并处理响应。下游服务则是被上游服务调用的服务,通常位于较低的层次,负责提供具体的业务逻辑或数据访问操作。下游服务通常是实现特定业务功能的服务,如用户管理、订单处理等。在服务架构中,上游服务和下游服务之间的关系通常是基于松耦合原则设计的,以便于服务的解耦和可扩展性。上游服务通常只关注于请求的发起和响应的处理,而不需要关心下游服务的具体实现细节。
2024-06-12 19:42:32
491
原创 【golang学习之旅】Go中的cron定时任务
corn是一个用Go实现的定时任务库,支持秒级定时任务,可以满足绝大多数工作场景需求。基本用法和Linux中的。用法与linux的crontab类似,不过多了个秒级别。cron库分两个主要的版本,
2024-06-05 11:48:56
753
1
原创 【小tips】GO中如何将time.Time格式时间转换成形如“2006-01-02T15:04:05.000Z“格式的UTC格式的字符串
**另外需要注意的是,转换格式后类型也变了,从原来的time.Time类型变为string类型**。所以使用的时候需要注意类型转换,看看是否符合函数的类型需求
2024-05-30 17:05:09
363
1
原创 【golang学习之旅】记录一次 error case : full error output: cc1: error: unrecognized command line option
最开始我使用的就是gcc8,但是机器重启后不知道为什么回退到gcc4,所以我尝试切换gcc版本到gcc8,然后再尝试运行就没有问题了。上网查了下发现有人出现过类似的case,回答基本都是在说gcc版本不对。然后我去检查了下机器的gcc版本,发现果然不对了。
2024-05-24 17:10:53
375
原创 【小tips】当机器里面有多个版本的gcc时,该如何切换当前的gcc版本?
有时候因为项目需求,可能不同的项目需要不同的gcc版本,所以机器上会安装多个版本的gcc,那我们如何切换到想要使用的版本?并且/usr/bin/gcc在全局变量PATH中。而我的项目需要gcc-8及以上版本,该如何切换?我当前的版本是gcc-4.8.3。指向 gcc安装目录下的。
2024-05-24 16:55:38
557
原创 【golang学习之旅】记录一次 panic case : reflect: reflect.Value.SetInt using unaddressable value
这个指针指向要插入到数据库中的结构体实例。当直接传入record时,实际上是传递了record的一个副本,而不是它本身的引用。方法则是用来向该表中插入一条新的记录。record是我们想要插入的记录的结构体类型的一个实例。代表一个已经初始化好的GORM数据库连接实例,我查了一些资料发现问题在于,GORM的。方法用于指定要操作的数据库表,而。这个panic提示我们可能是。
2024-05-23 17:52:17
305
原创 【golang学习之旅】go mod tidy
当我们项目中用到很多外部包的函数时,一个一个去用快捷键导包比较麻烦而且可能产生依赖冲突,这时使用。我们项目依赖的包都被下载下来保存在项目目录下的。就能很好的解决我们的需求。
2024-05-20 15:55:47
477
原创 【小tips】代码中2022-04-13T08:46:26.000Z是什么时间格式?如何与北京时间转换?
要仔细看接口文档喔,文档里一般会写明要求的时间格式
2024-05-17 15:31:26
840
原创 【每天一个linux小知识】如何使用 oh-my-zsh 让使用zsh更高效
Oh My Zsh 是一个管理zsh配置的开源框架,有众多插件,如代码高亮、代码提示、目录索引、各种语言支持等,还有众多主题可使用,让终端界面更加美观。zsh 一个强大的shell,但原生的zsh 过于难配置,通过oh my zsh 可以快速配置zsh。要使用oh-my-zsh前提是使用zsh。所以第一步安装zsh。安装完成之后可以看到你当前目录下多了一个。以上插件都安装完成之后打开安装目录下的。这些插件就应用成功了。
2024-05-07 11:44:48
456
原创 【golang学习之旅】深入理解字符串string数据类型
Go语言字符串的底层数据结构是 `reflect.StringHeader`( [reflect/value.go](https://github.com/golang/go/blob/go1.14.13/src/reflect/value.go#L1954-L1957)),它包含了指向字节数组的指针,以及该指针指向的字符数组的大小
2024-04-27 13:07:56
549
原创 【golang学习之旅】Go的 switch 分支语句
Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。Go 的 switch 语句类似于 C、C++、Java、JavaScript 和 PHP 中的,不过 Go 只会运行选定的 case,而非之后所有的 case。有些时候需要写很多的if-else来实现一些逻辑处理,这个时候代码看上去就很丑很冗长,而且也不易于以后的维护,这个时候switch就能很好的解决这个问题。
2024-04-27 12:29:08
386
Linux下 su 和 su- 命令对环境变量造成的影响
2023-08-05
我想问下,这个程序中的if后的大括号里为什么是空语句就代表继续?
2021-09-25
s(s-a)(s-b)(s-c)是合法的C语言表达式吗
2021-09-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人