Rust 程序设计语言 简体中文版 1.85.0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 14.1. 采用发布配置自定义构建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 14.5. Cargo 自定义扩展命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ,等到你想要通过项目应用所学到的细节 时再回到第二章。 第五章讨论结构体(struct)和方法,第六章介绍枚举(enum)、match 表达式和 if let 控 制流结构。在 Rust 中,创建自定义类型需要用到结构体和枚举。 第七章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第八章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和0 码力 | 562 页 | 3.23 MB | 10 天前3TiDB中文技术文档
基本操作 TiDB 快速入门指南 - 17 - 本文档使用 书栈(BookStack.CN) 构建 使用 CREATE DATABASE 语句创建数据库。语法如下: 1. CREATE DATABASE db_name [options]; 例如,要创建一个名为 samp_db 的数据库,可使用以下语句: 1. CREATE DATABASE IF NOT EXISTS samp_db; 使用 语句查看数据库: 1. SHOW DATABASES; 使用 DROP DATABASE 语句删除数据库,例如: 1. DROP DATABASE samp_db; 使用 CREATE TABLE 语句创建表。语法如下: 1. CREATE TABLE table_name column_name data_type constraint; 例如: 1. CREATE TABLE person ( 2 SHOW CREATE 语句查看建表语句。例如: 1. SHOW CREATE table person; 使用 SHOW FULL COLUMNS 语句查看表的列。 例如: 创建、查看和删除数据库 创建、查看和删除表 TiDB 快速入门指南 - 18 - 本文档使用 书栈(BookStack.CN) 构建 1. SHOW FULL COLUMNS FROM person; 使用 DROP0 码力 | 444 页 | 4.89 MB | 5 月前3Open Flags 调研
*pathname, const struct open_how *how, size_t size); open系统调用会打开pathname指定的文件(如果不存在,如果携带O_CREAT flag则会创建),返回一个文件描述符fd(该fd是进程打开文件描述符表的index),在后续系统调用(read(2)、write(2)、lseek(2)、fcntl(2) etc.)中指向这个打开的文件。打开的文件描述符记录中保存着文件的offset V的早期版本引入的,后改进为O_NONBLOCK) flags中必须access mode:O_RDONLY, O_WRONLY, O_RDWR其中之一;© XXX Page 4 of 23 文件创建标志只影响打开操作, 文件状态标志影响后面的读写操作 file creation flags: O_CLOEXEC, O_CREAT, O_DIRECTORY, O_EXCL, O_NOCTTY, O_NOFOLLOW O_NONBLOCK, O_PATH flags的含义 O_RDONLY: 只读 : 只写 O_WRONLY : 读写 O_RDWR O_CREAT: 当pathname对应的文件不存在时则创建它,文件uid为进程uid,gid为进程gid或父目录gid(取决于SGID是否置位);当flags中出现O_CREAT 或 O_TMPFILE时,mode参数必须提供,否则会使用栈中随机字节填充;0 码力 | 23 页 | 524.47 KB | 5 月前3Curve核心组件之snapshotclone
• 对数据增删改查 • 快照克隆服务器 • 快照 • 克隆快照和克隆的特点 • 快照的定义 快照是云盘数据在某个时刻完整的只读拷贝,是一种便捷高效的数据容灾手段, 常用于数据备份、制作自定义镜像、应用容灾等。 • 快照的特点 • 转储到s3对象存储 • 异步转储快照,底层使用copy-on-write技术,读写不影响转储 • 增量转储,第一次全量转储s3之后,后续只需转储增量部分 基于brpc提供restful API的对外http接口 HttpService: • Serivce层面区分上层请求为同步接口调用,还是异步接口调用, 同步接口调用直接调用Core层接口实现功能,异步接口创建Task, 并交由TaskManager调度。 SnapshotService & CloneService: • 任务管理层负责调度SnapshotTask和CloneTask,并向上提供如 负责管理快照和克隆源卷的引用计数。 SnapshotRef & CloneRef:快照总体流程 • 1.用户发起快照,生成快照任务,并持久化到 etcd,开始执行快照任务。 • 2.在curve中创建内部快照,并返回快照信息, 然后将快照信息更新到etcd。此时,即返回用 户快照成功,可以进行读写。 • 3.向mds查询快照的元数据,转储快照元数据 块metaObject。 • 4.根据快照元数据信息,转储快照数据块0 码力 | 23 页 | 1.32 MB | 5 月前3Service Mesh结合容器云平台的思考和实践
standalone proxies acting as L7/L4 routers. 2. IPAddress, ID, Domain 它们都可以通过pilot-agent的proxy命令的对应flag来提供用户自定义值。如果用户不提供,则会在proxy命令执行时,根据istio连接 的服务注册中心(service registry)类型的不同,会采用不同的配置方式。agent当前使用的具体service registry类型保存在 t还要负责envoy进程的监控与管理工作,包括: 1. 创建envoy对象,结构体包含proxyConfig(前面步骤中为envoy生成的配置信息),role.serviceNode(似乎 是agent唯一标识符),loglevel和pilotsan(service account name)。 2. 创建agent对象,包含前面创建的envoy结构体,一个epochs的map,3个channel:configCh nel:configCh, statusCh和 abortCh。 3. 创建watcher并启动协程执行watcher.Runwatcher.Run首先启动协程执行agent.Run(agent的主循环),然 后调用watcher.Reload(kickstart the proxy with partial state (in case there are no notifications0 码力 | 28 页 | 3.09 MB | 5 月前3Istio + MOSN 在 Dubbo 场景下的探索之路
是资源提供方(server),资源变化了推送给订阅者(Pilot),Istio 1.5 之前这个 角色就是 Galley 或者自定义 MCP Server; • Sink 资源的订阅者(client),在 Istio1.5 之前这个角色就是 Pilot 和 Mixer,都是订阅 Galley 或者自定义 MCP Server 的资源;8/23 MCP mcpserver demo: https://github MOSN-routers15/23 MOSN-cluster16/23 Dubbo 场景下的改造 /03 从数据面、控制面两个方面来介绍如何改造17/23 改造方案1 Istio+Envoy • 通过创建 EnvoyFilter 资源来给 xDS 资源打 patch • Envoy 解析 Dubbo 协议中的 Serivce 和 Method • 根据路由策略配置把流量转发到对应的 Provider0 码力 | 25 页 | 3.71 MB | 5 月前322-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊
如果应用负载升高/降低,如何及时、按需扩展/收缩所 用资源? 场景 3 如果业务系统要升级,如何平滑升级?万一升级失败是 否能够自动回滚?整个过程线上业务持续运行不中断。 传统稳态业务环境难以高效承载敏态应用 发现故障 (假死) 创建 新实例 配置 运行环境 部署当前 应用版本 添加 监控 配置 日志采集 测试确认 服务正常运行 实例 加入集群 恢复正常 场景 1 如果生产中一台Web应用服务器故障,恢复这台服务器需要 如果应用负载升高/降低,如何及时按需扩展/收缩所用 资源? 场景 3 如果业务系统要升级,如何平滑升级?万一升级失败是 否能够自动回滚?整个过程线上业务持续运行不中断。 传统稳态业务环境难以高效承载敏态应用 发现故障 (假死) 创建 新实例 配置 运行环境 部署当前 应用版本 添加 监控 配置 日志采集 测试确认 服务正常运行 实例 加入集群 恢复正常 工作量 成本 新一代架构(微服务)应用的对承载平台提出新要求 Resource(CR) Operator机制 Pod,Deployment, etc Spec (K8s Yaml) Custom Resource Spec (K8S yaml) 通过拓展实现自定义控制器来实现对非标准资源的纳 管,比如数据库的自动拓展能力或者自动化数据同步 能力等等。 标准化能力-分布式操作系统核心-容器服务-新发展 由于历史遗留或者软件形态所限制,不可能所有的软件都可以0 码力 | 42 页 | 11.17 MB | 6 月前336-云原生监控体系建设-秦晓辉
暴露的是容 器的概要监控数据(普通json协议), 在 /metrics 暴露的是自身的监控数据 (prometheus协议) • Kubelet 的核心职责就是管理本机的 Pod 和容器,典型的比如创建 Pod、销 毁 Pod,显然我们应该关注这些操作的 成功率和耗时 • Categraf 的仓库中 inputs/kubernetes/kubelet-metrics- dash.json 就是 Kubelet agent 业务 进程 Pod内的业务应用的监控 – prom sdk 数据流向 • /metrics 接口的抓取,对于大规模集群可以考虑 sidecar 模式,自闭环更灵活,可以自定义认证、过滤规则;对 于小集群,可以直接使用 Kubernetes 服务发现机制,用一个抓取器来抓 Pod-001 业务 容器 agent Pod-002 业务 容器 agent rabbitmq,直接暴露了 /metrics 接口,可以做一个 sidecar 模式的抓取器,与中间件一起部署、一起升级、一起下线销毁 • 动态改配置:比如中间件部署在物理机上,部署中间件的脚本,顺便创建对应的采集配置,然后对采集器 reload, 下线中间件的时候,就是删除对应的采集配置,对采集器 reload • 中心端统一采集:不同的中间件,可以分别使用不同的采集器实例(相当于根据中间件类型做抓取器的分片),0 码力 | 32 页 | 3.27 MB | 6 月前3金融级云原生 PaaS 探索与实践
SLB(ALB) DNS 发布运维体系 InPlaceSet Controller Pod Service/Endpoint Controller LoadBalancer Controller 创建 更新 等待3s 执行升级 ReadinessGate=true 添加Pod IP 注册Pod IP 添加finalizer ReadinessGate=false 删除Pod ip 注销 1st Group 2nd Group InPlaceSet A CafeDeployment partition:1 …… Pod Upgrade 机房A – 单元A • 精准分组,自定义拓扑 • IP不变,无损升级 • 可适配多种工作负载 • InPlaceSet • ReplicaSet • StatefulSet 可灰度: • 应用发布进程可控,允许灰度、 分组和 Beta0 码力 | 20 页 | 1.71 MB | 5 月前3新一代云原生分布式存储
强一致性协议对异常的容忍较差 使用WARO一致性协议 • 所有副本写完成返回客户端 • 延迟取决于所有副本中最慢的那一个块存储场景 为云主机提供云盘,云盘提供随机读写、快照(数据备份,灾备使用)、镜像(模板,自定义)功能。块存储场景 为物理机提供块设备 Linux IO栈 应用程序 -> 文件系统 -> 块设备层 -> 不同协议/驱动使用中的问题 • io抖动(一致性协议): 异常场景(比如阵列卡一致 Copyset: 复制组 ChunkServer: 管理一个磁盘进程架构简介 — 数据放置 Copyset的放置 Chunk的分配 • 由中心节点MDS以Scatter-width 均衡为目标进行创建 • 由中心节点MDS在各Copyset中 根据权重进行选择架构简介 — 一致性协议 复制策略 • 主动拷贝,由 leader 向 follower 并发拷贝 异常处理 • 自动leader选举0 码力 | 29 页 | 2.46 MB | 5 月前3
共 50 条
- 1
- 2
- 3
- 4
- 5