首页
精选文章Kubernetes查看全文Kubernetes因为在英文名称首字母k和尾字母s中间一共有8个字符,而简称为k8s,k8s最早源自google公司内部的borg项目。k8s是一种容器编排技术,主要解决下列问题: 自动上线和回滚 k8s有完善的部署方案,可以对应用/配置进行分批上线,而确保不会同时终止所有的实例。在应用出现问题的时候,可以回滚到指定版本。 服务发现与负载均衡 k8s为容器提供了单独的IP地址(IPv4和IPv6双协议栈)以及DNS名称,可以实现负载均衡。 存储编排 k8s支持NFS、Ceph等文件系统以及AWS等公有云存储设施,可以实现自动挂载。 Secret和配置管理 k8s支持隐私配置。 自动装箱 根据资源需求或者其他约束条件,自动调节容器数量,实现水平扩缩容,更好的提高资源利用率。 批量执行 k8s可以管理批处理和CI工作负载,自动替换失效的容器,可以进行自我修复。 编排工具对比 名词解释 Pod pod是最小的调度单元,pod里面会包含若干个容器。 Deployment Deployment是pod的管理和控制单元,会通过自动扩缩容控制pod集群的数量。 Ingress Ingress管控pod的网络。 Namespace 通过namespace的命名空间可以把k8s集群分成若干个资源不共享的虚拟集群。 节点类型 K8S 集群将节点分为两类,Master节点和Worker节点。 Master节点的组件如下: API Server,K8S的请求的入口服务。API Server负责接收来自客户端或者CLI命令行的所有请求,API Server根据用户的请求类型,会路由给其他组件,通知其他组件执行具体操作…三阶段提交查看全文三阶段提交是分布式事务的一种实现方案,是两阶段提交的优化。两阶段存在阻塞问题和一致性问题。 阻塞 两阶段提交中协调者发起的准备指令和提交指令必须收到所有参与者的返回才能决定后续的状态,否则将持续处于阻塞状态,此时占用的资源会被一直锁定,长期占据的资源会对性能有较大的影响。 协调者在执行事务的过程中如果发生故障,则所有的参与者都会陷入阻塞等待后续指令。 不一致 协调者发送提交指令,部分参与者成功提交了事务,部分参与者未能接受提交指令,此时多个参与者的状态就出现了不一致的情况。 如果部分参与者在接收到提交指令之后发生宕机,而此时协调者也发生了宕机,后续选举出来的协调者的继任者无法确定所有参与者的状态,此时会出现故障。 三阶段针对两阶段存在的两个问题,阻塞和不一致问题给出了解决方案,其中,阻塞问题通过引入超时机制解决,不一致问题通过引入新的阶段预提交环节解决。 三阶段提交将分布式事务分成三个环节,准备阶段,预提交阶段,提交阶段。 准备阶段 和两阶段提交类似,准备阶段的主要功能也是完成资源锁定以及数据写入等操作,准备阶段通过将锁等资源获取前置,减少后续提交阶段失败的可能性。 三阶段事务的准备阶段,协调者会对所有的参与者发起准备的指令。 参与者接收到准备指令之后,进行事务操作,本环节的事务操作一般包括资源锁定,记录回滚日志(Undolog),执行成功会给协调者发送成功的返回,否则返回失败。 协调者收到所有参与者的返回都是成功时,而阶段提交会进入提交阶段。 协调者如果收到部分参与者的返回是失败的时候,则将成功的参与者进行回滚。 预提交阶段 三阶段提交的预提交阶段会完成事务中剩余的操作。 如果在预提交阶段进行回滚…CompletableFuture【Java】查看全文CompletableFuture是Java异步编程中常用的类,CompletableFuture 继承了 Future 和 CompletionStage 两个接口,Future接口提供了 CompletableFuture 对结果的异步处理能力,CompletionStage 则提供了流式处理的能力,方便对异步流程进行关联组合和流式处理。Future是Java语言中非常重要的异步类,其语义类似于调用中的凭证和票据,在异步场景下,调用方之行调用之后获取Future就可以直接返回,调用Future获取结果的时候,如果结果还没有返回,会进入阻塞状态,直至可以获取返回结果。 Future经常用于多个请求的并行调用,因为Future的异步机制可以将该类调用的耗时从多个请求的耗时之和变为最长的耗时。 Future的缺点在于多个Future不能进行组合以及串联,Future在阻塞的获取结果之前没办法进行其他的操作,Future也缺少异常处理机制。 通过引入CompletionStage,CompletableFuture具备了流失处理的总总能力。 CompletableFuture利用了CompletionStage实现了顺序结构,组合结构以及回调结构。主要的API如下所示: CompletableFuture通过组合和顺序关系会形成一个树状的结构。 内层的CompletableFuture会注册到外层的CompletableFuture,同一个外层CompletableFuture的注册者会构成一个链表实现的栈结构。外层的CompletableFuture会通过观察者模式接受注册者的返回,继续后续的流程和逻辑。 |
热门分类开源Golang消息队列JavaJavascriptLinuxMysqlNLPPHP事务内存管理分布式理论分类存储常用存储开源软件操作系统画图网络编程数据库算法虚拟化前端存储理论常用算法微服务数据结构算法应用计算机原理中间件共识算法分布式分治动态规划容器并发排序架构组件绘图工具网络协议编程语言理论算法思想树缓存架构C++字符串算法工程思想搜索
算法题库
精选内容 |