09 2021 档案

摘要:对于海量的互联网业务来说,除了线上的数据库,还需要有一套对应的历史数据库,用于查询历史的数据。比如查看历史微博、查看淘宝历史交易。 历史数据库架构 业务会将最新的数据变更插入在线的 MySQL 数据库,但 MySQL 数据库仅保留最近半年的数据,超过半年的数据会存放在历史数据库系统中。对于历史数据库 阅读全文
posted @ 2021-09-26 15:23 请务必优秀 阅读(495) 评论(0) 推荐(0) 编辑
摘要:DROP TABLE 生产环境大多数是已经确定的库表,一般不会进行 DROP TABLE 这么重的操作,甚至大部分DBA 都不应该拥有 DROP 权限。 随着数据无限增长,在某些系统中,需要将数据归档到历史数据库,删除生产数据库中的表,从而释放存储空间,典型的就是偏日志、流水类的数据。 “优雅的删除 阅读全文
posted @ 2021-09-25 23:39 请务必优秀 阅读(273) 评论(0) 推荐(0) 编辑
摘要:表结构设计 INT 类型不使用 unsigned 无符号属性,容易引入额外的计算问题。 自增用 8 字节 BIG INT,不要使用 4 字节 INT,且自增在 MySQL 8.0 版本前有回溯问题,请考虑是否业务有影响。 字符集使用 UTF8MB4 字符编码,不推荐 GBK、UTF-8 等其他字符集 阅读全文
posted @ 2021-09-25 11:18 请务必优秀 阅读(91) 评论(0) 推荐(0) 编辑
摘要:Kubernetes的Pods是有生命周期的。他们可以被创建,而且销毁不会再启动。如果使用Deployment来运行应用程序,则它可以动态创建和销毁 Pod。 一个Kubernetes的Service是一种抽象,它定义了一组Pods的逻辑集合和一个用于访问它们的策略 - 有的时候被称之为微服务。一个 阅读全文
posted @ 2021-09-22 23:35 请务必优秀 阅读(371) 评论(0) 推荐(0) 编辑
摘要:在kubernetes系统中,Pod的管理对象RC,Deployment,DaemonSet和Job都面向无状态的服务,但现实中有很多服务时有状态的,比如一些集群服务,例如mysql集群,集群一般都会有这四个特点: 每个节点都是有固定的身份ID,集群中的成员可以相互发现并通信 集群的规模是比较固定的 阅读全文
posted @ 2021-09-22 16:56 请务必优秀 阅读(175) 评论(0) 推荐(0) 编辑
摘要:Job 一次性执行任务,类似Linux中的job 应用场景:如离线数据处理,视频解码等业务 部署Job例子 docker pull perl:slim job-test.yml apiVersion: batch/v1 kind: Job metadata: name: pi spec: templ 阅读全文
posted @ 2021-09-22 16:54 请务必优秀 阅读(859) 评论(0) 推荐(0) 编辑
摘要:DaemonSet DaemonSet 确保全部Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有Pod。 在每一个node节点上只调度一个Pod,因此 阅读全文
posted @ 2021-09-22 16:52 请务必优秀 阅读(176) 评论(0) 推荐(0) 编辑
摘要:Deployment是kubernetes在1.2版本中引入的新概念,用于更好的解决Pod的编排问题,为此,Deployment在内部使用了ReplicaSet来实现目的,我们可以把Deployment理解为ReplicaSet的一次升级,两者的相似度超过90% Deployment的使用场景有以下 阅读全文
posted @ 2021-09-22 16:28 请务必优秀 阅读(653) 评论(0) 推荐(0) 编辑
摘要:replication Controller replication controller简称RC,是kubernetes系统中的核心概念之一,简单来说,它其实定义了一个期望的场景,即声明某种pod的副本数量在任意时刻都复合某个预期值,所以RC的定义包含以下部分: pod期待的副本数量 用于筛选目标 阅读全文
posted @ 2021-09-22 11:57 请务必优秀 阅读(226) 评论(0) 推荐(0) 编辑
摘要:Controller Manager 由 kube-controller-manager 和 cloud-controller-manager 组成, 是Kubernetes 的大脑, 它通过 apiserver 监控整个集群的状态, 并确保集群处于预期的工作状态。 kube-controller- 阅读全文
posted @ 2021-09-22 10:57 请务必优秀 阅读(306) 评论(0) 推荐(0) 编辑
摘要:容器生命周期钩子使它能够感知其自身生命周期管理中的事件,并在相应的时刻到来时运行由用户指定的处理程序代码。k8s为容器提供了两种生命周期钩子: postStart:于容器创建完成之后立即运行的钩子处理器(handler),不过k8s无法确保它一定会 于容器中的entrypoint之前运行 preSt 阅读全文
posted @ 2021-09-21 17:52 请务必优秀 阅读(112) 评论(0) 推荐(0) 编辑
摘要:容器探测时pod对象生命周期中的一项重要的日常任务,它是kubelet对容器周期性执行的健康状态诊断,诊断操作由容器的处理器进行定义。k8s支持三种容器探针用于pod探测: ExecAction:在容器中执行一个命令,并根据其返回的状态码进行诊断的操作称为Exec探测,状 态码为0表示成功,否则即为 阅读全文
posted @ 2021-09-21 17:51 请务必优秀 阅读(212) 评论(0) 推荐(0) 编辑
摘要:初始化容器即应用程序的主容器启动之前要运行的容器,常用于为主容器执行一些预置操作,它们具有两种典型特征 初始化容器必须运行完成直至结束,若某初始化容器运行失败,那么k8s需要重启它直到成功完成 每个初始化容器都必须按定义的顺序串行运行 如果pod对应的restartPolicy为never,它就不会 阅读全文
posted @ 2021-09-21 17:50 请务必优秀 阅读(213) 评论(0) 推荐(0) 编辑
摘要:pod对象自从创建开始至终止退出的时间范围称为生命周期,在这段时间中,pod会处于多种不同的状态,并执行一些操作;其中,创建主容器为必须的操作,其他可选的操作还包括运行初始化容器(init container)、容器启动后钩子(start hook)、容器的存活性探测(liveness probe) 阅读全文
posted @ 2021-09-21 17:37 请务必优秀 阅读(918) 评论(0) 推荐(0) 编辑
摘要:演进概述 部署层面:单机到集群,集中式到分布式,物理部署到云化 业务层面:单一mvc到垂直拆分,服务治理到微服务 数据层面:db到集群,单一关系型数据到多样化nosql,搜索引擎,文件服务 单机器时代 1)方案 大型机:引发对单机性能的过度追求,推动高配机器的发展,成本高昂 调优:jvm单节点调优甚 阅读全文
posted @ 2021-09-17 23:44 请务必优秀 阅读(299) 评论(0) 推荐(0) 编辑
摘要:数据中台 数据中台多为大数据相关架构体系,大促期间,同样可能面临大批数据洪峰,比如订单量激增、用户行为数据暴涨等场景。简单看一下可能需要做的一些应对。(大屏实时计算) 数据通道 对数据传输通道扩容,比如kafka扩大分区数,rabbitmq增加细分队列。一方面实现了扩容,另一方面在传输的起始阶段就对 阅读全文
posted @ 2021-09-17 17:40 请务必优秀 阅读(300) 评论(0) 推荐(0) 编辑
摘要:运维中台 做好灾备 灾备是应对大型故障的保底措施,最好的结局是永远不要触发,但是大促前需要做好灾备切换演练,可以选择大促前用户量少的时间段进行: 前期准备:两地灾备程序同步维护,大促相关的迭代和活动专题上线确保两地测试ok,镜像版本统一 数据库配置两地主从,或双主单写。切换前做好数据同步性检查 启用 阅读全文
posted @ 2021-09-17 12:01 请务必优秀 阅读(213) 评论(0) 推荐(0) 编辑
摘要:技术中台 数据库优化 数据库层的调优,一般发生在大促前的预备阶段,一旦大促开始,对数据库的优化已经来不及了。 在大促开始前梳理耗时查询业务,对关键业务压测。 开启mysql的慢查询日志(两种方式) #配置文件方式,需要重启mysql #日志文件位置 log-slow-queries=/opt/dat 阅读全文
posted @ 2021-09-16 23:49 请务必优秀 阅读(151) 评论(0) 推荐(0) 编辑
摘要:业务中台 订单中心 1)异步化 场景:大促期间新增许多需要获取订单状态的服务,比如应对双11而临时增加的数据中台订单大屏展示等 解决:异步化,并对消息队列调优,多队列分流 问题:注意异步化引发的乱序问题,一是传输阶段,二是消费阶段 rabbitmq传输:队列级别顺序保障,单消费者消费一个队列可以严格 阅读全文
posted @ 2021-09-16 17:32 请务必优秀 阅读(680) 评论(0) 推荐(0) 编辑
摘要:概述 从组织架构到技术架构,当前各大电商系统基本趋于中台化。中台在2015由阿里提出,是一种企业架构而不是单纯的技术层面,目前几乎各大电商都进行着中台化的建设。 中台是对 ”共享“ 理念系统化的归纳和总结。 重复功能建设和维护带来的重复投资 烟囱式建设造成系统壁垒,数据孤岛 业务沉淀促进可持续发展 阅读全文
posted @ 2021-09-16 11:21 请务必优秀 阅读(2086) 评论(0) 推荐(0) 编辑
摘要:架构解耦 配置中心与配置架构演进 核心痛点 上游痛:扩容的是下游,改配置重启的是上游(耦合,典型反向依赖) 下游痛:不知道谁依赖于自己(难以实施服务治理) 怎么解耦,怎么解决? “配置私藏”架构 “全局配置文件”架构 “配置中心”架构 MQ MQ是一个互联网架构中常见的解耦利器 什么时候不使用MQ? 阅读全文
posted @ 2021-09-14 15:42 请务必优秀 阅读(894) 评论(0) 推荐(0) 编辑
摘要:微服务架构 服务化好处 复用性,消除代码拷贝 专注性,防止复杂性扩散 解耦合,消除公共库耦合 高质量,SQL稳定性有保障 易扩展,消除数据库解耦合 高效率,调用方研发效率提升 潜在问题 系统复杂性上升 层次间依赖关系变得复杂 运维,部署更麻烦 监控变得更复杂 定位问题更麻烦 微服务粒度 统一服务层 阅读全文
posted @ 2021-09-14 15:36 请务必优秀 阅读(63) 评论(0) 推荐(0) 编辑
摘要:技术选型 初期 技术选型,先看业务需求,任何脱离需求的技术选型,就是耍流氓 早期架构:ALL in one 早期选型依据:熟悉的,擅长的 建议选型:PHP体系,Java体系 早期主要矛盾:业务开发效率与质量低,CURD出错 早期重要组件:DAO/ORM 要不要自研 早期不建议自研 随着规模的扩大,要 阅读全文
posted @ 2021-09-14 15:05 请务必优秀 阅读(121) 评论(0) 推荐(0) 编辑
摘要:资源 缩写 API分组 按命名空间 资源类型 configmaps cm - ✔ ConfigMap namespaces ns ✖ Namespace nodes no ✖ Node persistentvolumeclaims pvc ✔ PersistentVolumeClaim persis 阅读全文
posted @ 2021-09-02 09:41 请务必优秀 阅读(622) 评论(0) 推荐(0) 编辑
摘要:get # 查看集群状态信息 kubectl cluster-info # 查看集群状态 kubectl get cs # 查看集群节点信息 kubectl get nodes # 查看集群命名空间 kubectl get ns # 查看指定命名空间的服务 kubectl get svc -n ku 阅读全文
posted @ 2021-09-01 23:45 请务必优秀 阅读(309) 评论(0) 推荐(0) 编辑
摘要:查看pod 查看default命名空间下的pods kubectl get pods kubectl get po 查看kube-system命名空间下的pods kubectl get pods -n kube-system 查看所有命名空间下的pods kubectl get pod --all 阅读全文
posted @ 2021-09-01 18:05 请务必优秀 阅读(396) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示