3 天前 / 小道安全
在这个数字化转型关键时期,以容器为代表的云原生技术凭借自身的优势,正在逐渐成为核心 IT 基础设施。云原生已经不再是少部分“创新者”的特权,而是成为了市场主流选择,容器、容器云逐渐成为工作负载的主流形态。 与此相随,云原生大量的新技术,也带来了众多未知的风险敞口,安全防护对象也发生了颠覆性变化,容器正在逐渐成为黑客新的演练场。 容器成为重要的攻击目标在容器时代,安全面临新旧威胁的双重挑战。一方面,那些传统旧的攻击手段依然有效,包括漏洞利用、暴力破解、权限提升等等。
5 天前 / sjf0115
本文翻译自《Apache BookKeeper Internals — Part 3 — Reads》,作者 Jack Vanlightly。 译者:王伦辉,开源爱好者,贵州本土开发者。 本系列基于为 Apache Pulsar 配置的 BookKeeper 4.14。 在上一篇文章中,我们讨论了每次从 Netty 层到文件 IO 的写入路径,以及所有涉及的线程和组件。在这篇文章中,我们将对读取路径做同样的解析。读取请求被提交到要执行的读线程池,并且可以有多个线程来完成这项工作(因此它是一个池)。默认情况下,长轮询读取也提交给读线程轮询,但可以配置为在单独的长轮询线程池上运行。
13 天前 / hyper0x
图片拍摄于 2022 年 6 月 5 日 杭州 勇士总冠军!!! 距离上次写文章过了一月有余,这段时间着实太躺了。以至于昨晚做了一个噩梦,醒来的时候狠狠的抽了自己两巴掌,不能这么躺了。 上面当然是个笑话。 开篇上一篇 Go netpoll 大解析我们分析了 Go 原生网络模型以及部分源码,绝大部分场景下 (99%),使用原生 netpoll 已经足够了。 但是在一些海量并发连接下,原生 netpoll 会为每一个连接都开启一个 goroutine 处理,也就是 1 千万的连接就会创建一千万个 goroutine。
21 天前 / Android开发
第一节:了解一些基础 进程隔离在操作系统中,进程与进程之间的内存和数据都是不共享的,称之为进程隔离机制。 o-jcgl_ybv-3w4oGt.png 关于进程隔离知识请参考:Linux 预备知识(一):进程隔离 - 简书 (jianshu.com) https://www.jianshu.com/p/63828d891f31 如果进程之间需要进行通信,那么需要使用 IPC 机制,操作系统中的 IPC 机制很多,比如共享内存,socket 等,在安卓系统中,最常见的进程间通信就是 binder 了。
32 天前 / gyreg
Part I 主要介绍了 ES 框架的主要概念,整体架构,底层原理及数据流向。0x0 EndPoint Security FrameworkEndPoint Security Framework 简称 ES,是 MacOS 自 10.15 后提供的一个终端安全框架,允许在用户层进行系统事件的监控和决策。 示例代码以下代码可用于监控和拦截进程的 EXEC 事件,拦截策略是不允许执行 Calculator 计算器。#include #include #include #include #include const char* block_target = "/System/Applications/Calculator.app/Contents/MacOS/Calculator";static voidhandle_event(es_client_t *client, const es_message_t *msg){ ...
41 天前 / 秦小风啊
数据驱动概念的兴起,ABTest 逐渐被各互联网大厂所应用。ABTest 提供了科学的分流能力,能够实施监控实验效果数据,根据用户与产品的互动情况,支持各实验版本的流量的实时调整,保证实验结果数据可靠有效,助力业务决策。 接下来,我们来具体了解下什么是 ABTest。 什么是 ABTest 为了验证一个新策略的效果,准备原策略 A 和新策略 B 两种方案。然后在用户群中根据一定的分流方式区分出一部分目标用户群,将这部分用户随机的分成两个组。
47 天前 / 訢亮
《持续交付 发布可靠软件的系统方法》读书笔记 对于大多数项目来说,采纳持续集成实践是向 高效率 和 高质量 迈进的一大步。 它保证那些创建大型复杂系统的团队具有高度的自信心和控制力。一旦代码提交引入了问题,持续集成就能为我们提供快速的反馈,从而确保我们作为一个团队所开发的软件是可以正常工作的。它主要关注于代码是否可以编译成功以及是否可通过单元测试和验收测试。 实现端到端的自动化构建、部署、测试和发布流程,就能很快建立一个相当成熟且能快速运行的构建、测试和部署系统。
49 天前 / HueiFeng
大家好,我是飞哥! 今天开篇先给大家讲个飞哥自己的小故事。我在学校和刚毕业头一年主要从事的客户端开发,那时候对服务器端编程还不擅长。 有一次去面试服务器端岗位,面试官问我有一个连接过来,你该怎么编程处理它。我答道:“主线程收到请求后,创建一个子线程处理。” 面试官接着问,那如果有一千个连接同时来呢?我说“那就多创建一点线程,搞个线程池”。面试官继续追问如果一万个呢?我答道:“......不会。..”。 事实上,服务器端只需要单线程可以达到非常高的处理能力,Redis 就是一个非常好的例子。
50 天前 / sjf0115
作者:吴云涛,腾讯 CSIG 高级工程师 一个监控系统对于每一个服务和应用基本上都是必不可少的。在 Flink 源码中监控相关功能主要在 flink-metrics 模块中,用于对 Flink 应用进行性能度量。Flink 监控模块使用的是当前比较流行的 metrics-core 库,来自 Coda Hale 的 dropwizard/metrics [1]。dropwizard/metrics 不仅仅在 Flink 项目中使用到,Kafka、Spark 等项目也是用的这个库。Metrics 包含监控的指标(Metric)以及指标如何导出(Reporter)。Metric 为多层树形结构,Metric Group + Metric Name 构成了指标的唯一标识。
64 天前 / 编程一生
背景 3 月 28 日那天,咱们用户群里,朋友让我写篇 lambda 表达式的底层执行解析。拖了快 20 天了,今天就来聊聊这个问题。 《深入理解函数式编程》里讲到 lambda 表达式本质是一个匿名的内联函数。不从 Java 角度,Lambda 本身是计算机编程语言,Lambda 表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。那篇文章讲解了匿名内部类与函数式编程怎么转换,怎么 debug 调试。 对面试而言,这些内容足够了。朋友提出想了解 lambda 表达式的底层执行解析。说明是真的对技术有追求,是把问题思考细化了,这个是很赞的。
64 天前 / hyper0x
图片拍摄于 2022 年 4 月 3 日 杭州 开篇 之前简单看过一点 go 原生 netpoll,没注意太多细节。最近从头到尾看了一遍,特写篇文章记录下。文章很长,请耐心看完,一定有所收获。 内核空间和用户空间在 linux 中,经常能看到两个词语:User space( 用户空间)和 Kernel space ( 内核空间)。 简单地说, Kernel space 是 linux 内核运行的空间,User space 是用户程序运行的空间。它们之间是相互隔离的。 现代操作系统都是采用虚拟存储器。那么对 32 位操作系统而言,它的寻址空间(虚拟存储空间)为 4G(2 的 32 次方)。
72 天前 / sjf0115
在上一篇文章中,我们从组件、线程、读写流程三个方面讲解了 bookie 服务端原理。在这篇文章中,我们将详细介绍写操作是如何通过各组件和线程模型的配合高效写入和快速落盘的。我们尽量还是在架构层面剖析。 本系列文章基于 Apache Pulsar 中配置的 BookKeeper 4.14 版本。 写操作中有很多线程调用 Journal 和 LedgerStorage 的 API。在上一篇文章中,我们已经知道写操作中 Journal 为同步操作,DbLedgerStorage 为异步操作。
78 天前 / 捉虫大师
hello 大家好,我是小楼。 最近踩了个 DNS 解析的小坑,虽然问题解决了,但排查过程比较曲折,最后还是有一点没有想通,整个过程分享给大家。 背景最近负责的服务要置换机器。置换机器可能很多小伙伴不知道是干啥,因为大家平时接触不到,我简单解释一下什么是机器置换以及为什么需要机器置换。 机器置换通俗地讲就是更换机器,把服务从一台机器迁移到另一台上去。 为什么要机器置换呢?表面原因可能是机器硬件故障、或者机器过了保修期。
81 天前 / 逗逗
作者:vivo 互联网服务器团队 -Zhang Peng 一、缓存简介 1.1 什么是缓存 缓存就是数据交换的缓冲区。缓存的本质是一个内存 Hash。缓存是一种利用空间换时间的设计,其目标就是更快、更近:极大的提高。 将数据写入 / 读取速度更快的存储(设备); 将数据缓存到离应用最近的位置; 将数据缓存到离用户最近的位置。 缓存是用于存储数据的硬件或软件的组成部分,以使得后续更快访问相应的数据。缓存中的数据可能是提前计算好的结果、数据的副本等。典型的应用场景:有 cpu cache, 磁盘 cache 等。本文中提及到缓存主要是指互联网应用中所使用的缓存组件。
86 天前 / sjf0115
本文翻译自《A Guide to the BookKeeper Replication Protocol (TLA+ Series Part 2)》,作者 Jack Vanlightly。原文链接:https://medium.com/splunk-maas/a-guide-to-the-bookkeeper-replication-protocol-tla-series-part-2-29f3371fe395。 译者简介王嘉凌 @ 中国移动云能力中心,移动云 Pulsar 产品负责人,Apache Pulsar Contributor,活跃于 Apache Pulsar 等开源项目和社区 我们知道关系型数据库中的数据是按表结构来存储,客户端可以将数据存储到表中以及从表中读取数据。