InfraPub 为您找到相关结果 364

深入理解Golang之context

消当前timerCtx。WithTimeout与WithDeadline类似,WithTimeout也是创建一个定时取消的context,只不过WithDeadline是接收一个过期时间点,而WithTimeout接收一个相对当前时间的过期时长timeout:func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { return WithDeadline(parent, time.Now().Add(timeout)) } context的使用首先使用context实现文章开done channel的例子来示范一下如何更优雅实现协程间取消信号的同步:func main...阅读全文

博文 2021-01-27 09:05:27 知乎

kubelet 中垃圾回收机制的设计与实现

) }kl.containerGC.GarbageCollectkl.containerGC.GarbageCollect 调用的是 ContainerGC manager 中的方法,ContainerGC 是在 NewMainKubelet 中初始化的,ContainerGC 在初始化时需要指定一个 runtime,该 runtime 即 ContainerRuntime,在 kubelet 中即 kubeGenericRuntimeManager,也是在 NewMainKubelet 中初始化的。k8s.io/kubernetes/pkg/kubelet/kubelet.gofunc NewMainKubelet(){ ...... // MinAge、MaxPerPodContainer、MaxContainers 分别上文章开提到的与容器垃圾回收有关的 // 三个参数...阅读全文

博文 2021-02-05 17:48:22 知乎

Cortex: 高可用和水平扩展Prometheus监控系统

置为对cortex执行远程写入。使用此功能,指标可以从多个集群聚合到一个运行cortes的集群中。这为我们提供了一个中心位置,在这里我们可以观察整个基础设施的指标。Cortex提供了与Prometheus/PromQL兼容的端点endpoint。可以将此端点endpoint作为数据源提供给grafana,并与普通Prometheus实例相同的方式执行查询。长期储存普罗米修斯的本地存储不是持久的长期存储。发送到cortex的指标被存储在已配置的存储服务中。如果使用云存储,这将使您从运行自己的数据库的麻烦中解脱出来。你还可以享受云提供商提供的SLA。Cortex还支持用于存储块的对象存储:GCSS3多租户当向cortex写入指标时,通过设置http(X-Scope-OrgID)来提供多租户。查...阅读全文

博文 2021-10-09 17:00:22 知乎

Kubernetes 部署 Nacos 1.4 集群 · 小豆丁

等可视化工具进行快捷导入。 四、部署 Nacos 这里我们部署 Nacos 集群模式,整体如下示意图,会在 Kubernetes 中创建一个 Service,该 Service 关联 Nacos 中的多个 Pod,一个 Pod 就是 Nacos 节点,Pod 之间通过该 Service 进行互。最后我们会配置一个 NodePort 方式对外访问。当然,你如果你的 Kubernetes 集群已经部署了 Ingress Controller 则可以创建 Ingress 规则对外提供访问。 ](https://imgchr.com/i/sH7vBF) 1、创建 RBAC 资源 nacos-rbac.yaml apiVersion: v1 kind: ServiceAccount metadata...阅读全文

博文 2021-02-24 10:10:29 www.mydlq.club

WebAssembly:无需容器的 Docker (上)

Linux、Windows 和 macOS 等传统操作系统。 因为无法依赖可用的 JavaScript 引擎,所以他们使用不同的接口与外界通信,例如 WASI(WebAssembly 系统接口)。 这些运行时允许 Wasm 应用程序以与 POSIX 类似(但不完全相同)的方式与其 host 系统互。 WASI SDK 和 wasi-libc 等项目帮助人们将现有的兼容 POSIX 的应用程序编译为 WebAssembly。你只需将应用程序编译成 Wasm 模块一次,然后这个同样的二进制文件就可以在任何地方运行。Wasm 有什么了不起的?下面这些特性让 Wasm 在浏览器大放异彩,也使得它用在服务端开发颇具优势:🌐 开放 —— 它是业界广泛采用的标准。 与过去的浏览器争夺战相反,各大公司正积极合作...阅读全文

博文 2023-01-03 06:35:56 spider

如何在 Debian 下配置邮件服务器

程中的演示只是运行在实验室环境中。测试DNS服务器所有必要的记录都已配置,并且用户之间的邮件可以在相同的服务器上发送(相同的域换)。为了让事情更有趣,多邮件服务器可以被部署到不同的域来检查电子邮件如何跨域通信,因为必要的DNS记录都已存在。 对外的邮件服务器有效的DNS记录。 Postfix和Dovecot的的设置,可以根据需要进行调整。 警告:如果想要部署邮件服务器任何能够访问互联网邮件服务器,请确保您的SMTP是安全的。互联网以及来自局域网内部的恶意软件都是可以攻击SMTP的。...阅读全文

博文 2021-01-28 17:50:22 debian.cn

Debian 10.8 发布:包括多项安全更新和错误修复

/src:grub2) | 非互式升级 grub-pc 时,如果 grub-install 失败则退出;运行 grub-install 前明确检查目标设备是否存在; grub-install。增加备份和恢复功能;不要在刚安装 grub-pc 时调用 grub-install | | [highlight.js](https://packages.debian.org/src:highlight.js) | 修复原型污染[CVE-2020-26237] | | [intel-microcode](https://packages.debian.org/src:intel-microcode) | 更新各种微码 | | [iproute2](https://packages.debian.org...阅读全文

博文 2021-02-07 10:57:22 joseph

基于thanos搭建分布式prometheus

external_labels: cluster: 158 rule_files: - /etc/prometheus/rules/*.yml remote_write: - url: http://receive集群的service ip:19291/api/v1/receive scrape_configs: remote_write部分的IP填写receive集群对外暴露的入口IP,端口是receive组件的remote-write专用端口19291,URI部分是固定的。 最后 thanos官方提供了一个sidecar方案的互式教程,帮助大家理解thanos整个组件关系和配置过程,建议学习:https://katacoda.com/thanos/courses/thanos,实际生产中建议采用方案2。 如果文章...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

Go 语言的大版本更新:Go 2.0 安排上了

述。 Go 1 和 Go 2 之间的主要区别在于主导权的不同。谁将影响设计,又该如何做出决策?我们都知道,Go 1 的诞生是小团队努力的结果,受外部影响不大;而到了 Go 2,尤其是经过将近 10 年的发展后,Go 语言的生态已经十分庞大,因此它也更多地受到社区的驱动和影响。经历了这些,Go 开发团队也了解到了更多一开始不知道的与语言特性和库相关的知识 —— 这些都来自于 Go 社区的反馈。 2015年,Go 开发团队引入了提案流程,以收集特定类型的反馈:针对语言和库变更方面的提案。由 Go 开发团队高级成员组成的委员会定期审查、分类和决定社区提的提案。这个流程十分有效,但作为该过程的一部分,他们忽略了所有不向后兼容的提案,只是将其标记至 Go 2。到了2017年,Go 开发团队也停止进行...阅读全文

阿里巴巴版 JDK 首发 GA 版 生产环境可用

区接受,确定会被移植进 OpenJDK 8u 主线,目前社区的移植工作正在 incubator 分支紧张进行当中。在不远的将来,整个 OpenJDK 8 的下游生态都可以享受这一功能特性。 除社区现有功能外,Dragonwell 在 JFR 上做了很多增强和创新。作为 JFR 在 OpenJDK 8u 社区的参与者,阿里巴巴表示会将 Dragonwell 在 JFR 方面的最新工作成果及时引入社区。在上游社区接受这些特性之前,Dragonwell 的开发者将会最先使用这些新特性。 ElasticHeap 新特性展望 据阿里巴巴内部披露,ElasticHeap 特性将很快在下一个版本开源。作为高级编程语言,Java 带有垃圾回收器。随着程序运行,Java 会用户配置的内存逐渐消耗掉。即使这些...阅读全文

博文 2019-07-11 10:24:52 debian.cn

RabbitMQ 高可用实现镜像队列

列中某个节点宕掉的后果: 当slave宕掉了,除了与slave相连的客户端连接全部断开之外,没有其他影响。 当master宕掉时,会有以下连锁反应: 与master相连的客户端连接全部断开;选举最老的slave节点为master。若此时所有slave处于未同步状态,则未同步部分消息丢失;新的master节点requeue所有unack消息,在此我向大家推荐一个架构学习流圈:830478757 帮助突破瓶颈 提升思维能力,因为这个新节点无法区分这些unack消息是否已经到达客户端,亦或是ack消息丢失在老的master的链路上,亦或者是丢在master组播ack消息到所有slave的链路上。所以处于消息可靠性的考虑,requeue所有unack的消息。此时客户端可能有重复消息;如果客户端连着...阅读全文

博文 2018-12-30 19:21:59 debian.cn

分布式运行时 Dapr 知多少

API:POST/PUT http://localhost:/v1.0/bindings/输出到Kafka特定队列上。 5. Actors Dapr中的Actor模型,和Orleans的Virtual Actor一脉相传,之前写过一篇文章Orleans 知多少 | .NET Core 分布式框架介绍过。简单来讲:Actor模型 = 状态 + 行为 + 消息。一个应用/服务由多个Actor组成,每个Actor都是一个独立的运行单元,拥有隔离的运行空间,在隔离的空间内,其有独立的状态和行为,不被外界干预,Actor之间通过消息进行互,而同一时刻,每个Actor只能被单个线程执行,这样既有效避免了数据共享和并发问题,又确保了应用的伸缩性。 Actor模型大大简化了并发编程的复杂...阅读全文

Debian 9 使用kubeadm创建 k8s 集群(下)

deploy nginx --port 80 --target-port 80 --type NodePort 服务是另一种类型的Kubernetes对象,它向内部和外部客户端公开集群内部服务。 它们还能够对多个pod进行负载均衡请求,并且是Kubernetes中不可或缺的组件,经常与其他组件互。 运行以下命令: kubectl get services 这将输出类似于以下内容的文本: OutputNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 443/TCP 1d nginx NodePort 10.109.228.209 80:nginx_port/TCP 40m 从上面输出的第三行,您可以检...阅读全文

博文 2019-05-13 22:57:41 debian.cn

细数k8s支持的4种类型的container - 侃豺小哥

: Sidecar ... 总结 本文简单介绍了标准容器,sidecar容器,init 容器,ephemeral 容器 4种类型的containers。随着kubernetes日益普及,我们需要充分掌握着几种类型容器原理和使用方法,才能更好地服务业务。 此外Sidecar容器将会成为未来软件付的一种新的方式,参照Dapr等,不同的团队提供自己的功能容器,然后选择性注入Sidecar到主业务容器,实现解耦...阅读全文

博文 2021-08-20 11:45:32 博客园