首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我写了一本书,《深入理解 Kotlin 协程》

期间也搞了一些线下的活动来分享协程的用法作用, 1.1 正式发布不久之后又写了一篇介绍协程的使用场景的文章深入理解 Kotlin Coroutine(三)。...其中,使用 VSCode 处理文字内容;使用 Pandoc 将 md 文件编译成 docx 文件;使用后面的四个工具来绘制插图 —— 它们实际是将源码编译成图片的处理工具。 ?...除了使用 Haskell 编写的 Pandoc 的插件 cross-ref 我实在无法快速上手以外,我学习到了如何使用 Python Lua 编写用来在编译过程中处理图片生成逻辑和文字预处理的 Pandoc...过滤器,以及如何通过修改源码解决 plantUML、mermaid.js、rx-marbles 的样式定制字体的支持的问题,最后还借机学会了如何制作 docker 镜像。...当然,除了有意思之外,写作的过程中我也确实无数次感觉到了对文字细节的疲惫,但一次次的修改校对之后又觉得非常值得。

1.3K10

将 PDF 转化为 Word 文件

搜索关键词:pdf 转 word 使用 Pandoc 将 Tex 源文件转化为 Word 格式 该教程来源于CSDN[1],小编根据该教程 mac 中进行学习实践。...pandoc psalt.tex -o output.docx -w docx \ --reference-doc template.docx \ --filter pandoc-crossref...:用于交叉引用(公式、引文)的过滤器 【可选】,下载地址:GitHub[3],必须找到与已安装 pandoc 版本对应的可执行文件,下载后放在运行此命令的同一目录下(对于 Windows macOS...Word 文件预览 通过这种方法得到的图形公式基本不需要再处理了~ 注意:如果有对应期刊的参考模板 Docs 文件,效果会更好些。Windows 的处理方式类似,读者可以自行转化。...之后会整理如何使用英语汇报自己的学术成果,汇报模板等内容。 可能很多读者是通过 R 语言关注我的,但是最近发的内容主要是平常科研存在的小技巧科研者成长的相关内容。

1.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

亿级流量架构之网关设计思路,常见网关对比

,这些插件(使用 lua 编写)API请求响应循环的生命周期中被执行。...Criteria : 过滤器执行的条件 Action : 如果条件满足,过滤器执行的动作 Zuul提供了一个动态读取、编译运行这些过滤器的框架。...Zuul2Zuul1架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。...如果你非要阻塞,可以一个异步过滤器中这样做,并且一个单独的线程池上运行,否则可以使用同步过滤器; 上文提到过Zuul2开始采用了异步模型: 优势是异步非阻塞模式启动的线程很少,基本上一个...简单说明一下上文中的三个术语: Filter(过滤器) Zuul的过滤器概念类似,可以使用它拦截修改请求,并且对上游的响应,进行二次处理。

2.2K154

布隆过滤器

它实际是一个很长的二进制向量一系列随机映射函数。 布隆过滤器可以用于检索一个元素是否一个集合中。它的优点是空间效率查询时间都远远超过一般的算法,缺点是有一定的误识别率删除困难。...有的,我们接着往下看 Bloom Filter的缺点 bloom filter之所以能做到时间空间的效率比较高,是因为牺牲了判断的准确率、删除的便利性 存在误判,可能要查到的元素并没有容器中,...但是hash之后得到的k个位置值都是1。...手动Bloom Filter 实现 我们上面已经说了布隆过滤器的原理,知道了布隆过滤器的原理之后就可以自己手动实现一个了。...capacity: 过滤器的容量。当实际存储的元素个数超过这个值之后,性能将开始下降。实际的降级将取决于超出限制的程度。随着过滤器元素数量呈指数增长,性能将线性下降。

36130

亿级流量架构之网关设计思路、常见网关对比

,这些插件(使用 lua 编写)API请求响应循环的生命周期中被执行。...,过滤器执行的动作 Zuul提供了一个动态读取、编译运行这些过滤器的框架。...Zuul2Zuul1架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。Zuul1依赖多线程来支持吞吐量的增长,而Zuul 2使用的Netty框架依赖事件循环回调函数。...因为Zuul是运行在一个事件循环之上的,因此从来不要在过滤中阻塞。如果你非要阻塞,可以一个异步过滤器中这样做,并且一个单独的线程池上运行,否则可以使用同步过滤器。...简单说明一下上文中的三个术语: Filter(过滤器Zuul的过滤器概念类似,可以使用它拦截修改请求,并且对上游的响应,进行二次处理。

1.8K300

Envoy架构概览(10):热启动,动态配置,初始化,排水,脚本

完全静态 完全静态配置中,实现者提供了一组侦听器(过滤器链),集群以及可选的HTTP路由配置。动态主机发现只能通过基于DNS的服务发现来实现。配置重新加载必须通过内置的热启动机制进行。...静态配置的基础,SDS允许Envoy部署避开DNS的限制(响应中的最大记录等),并消耗更多用于负载平衡路由的信息(例如,金丝雀状态,区域等)。...SDS / EDS,CDS,RDSLDS 侦听器发现服务(LDS)Envoy可以在运行时发现整个侦听器的机制分层。这包括所有的过滤器堆栈,直到并包含嵌入式参考RDS的HTTP过滤器。...在所有先前的步骤发生之后,听众开始接受新的连接。该流程确保热启动期间,新流程完全能够旧流程开始排放之前接受并处理新的连接。 排水 排水是Envoy试图优雅地脱离各种事件的连接的过程。...脚本 Envoy支持实验性的Lua脚本作为专用HTTP过滤器的一部分。

2.1K20

Envoy 基础及其可扩展性要领

服务网格解决了大型分布式系统中与可观察性网络相关的诸多操作问题,而它的可扩展性正好能应用在多种使用场景。...一旦所有服务流量都必须通过 Envoy 网格,要一致地控制观察你的网络中的情况就变得十分简单。开发者可以随心选择适用的语言和技术,快速并持续地提供服务,重新聚焦应用的业务逻辑。...HTTP L7 路由过滤器架构︰ HTTP 模式中,Envoy 支持路由子系统,它能够按照路径、权限、内容种类、运行时值其他参数来路由重定向请求。服务网格的领域里,这是一个特别强大的工具。...其他扩展方法 Lua 过滤器现在只 HTTP 运作。你可以 Envoy config 配置中编写嵌入 Lua 脚本,然后 Lua 过滤器就会允许你进行 header 和数据修改。...WebAssembly 同时也另一个 WASM 仓库 [5] 运行

62110

MegaEase流量网关Easegress介绍

完全解耦控制逻辑业务逻辑。 旨在实现高可用性 >99.9% 的正常运行时间 SLA。 并且有四个关键性的东西要很好地通过云原生方式构建并被调度 基础设施运行时资源。...一开始的时候,我们主要是使用Nginx + Lua的方式,但在解决用户问题的过程中发现,对于一个流量调度网关,有两个非常重要的特点是我们无法避开的。 流量调度编排,而不是一个反向代理。...可以通过管理 API 在运行时运态地将功能或过滤器组织到Pipeline中。 可以很自由的扩展注入用户的自定义业务逻辑代码。 有两种类型的控制器有助于管理集成到整个云原生架构。...过滤器或控制器。按照开发指南,您可以使用 Go 语言开发过滤器控制器。但是这需要重新编译软件。 WebAssembly。...Easegress 支持 WASM 运行时引擎,因此,您可以使用任何支持 WASM 的编程语言开发过滤器,并且 Easegress 可以在运行时加载它。 函数即服务FaaS。

2.4K30

Wireshark网络分析从入门到实践

图3-5 环形缓冲器的使用 3.5 保存显示过滤器 单击菜单栏的“分析”→“显示过滤器” 图3-11 Wireshark中的显示过滤器 单击这个对话窗口左下方的“+”按钮,左侧“新建显示过滤器”中输入过滤器的名称...(例如baidu),右侧输入“显示过滤器”的内容,我这里输入的是ip.addr==www.baidu.com(见图3-12),完成之后单击OK按钮。...图3-13 Wireshark中的添加一个显示过滤器 7.2 观察远程访问HTTP的过程 步骤 描述 详细过程 1 判断服务器是否同一局域网 操作系统将自己的IP地址子网掩码用二进制表示并进行与运算...图16-1 Wireshark中的Lua版本 TShark -v来查看。如图16-2所示,我们可以看到这个TsharkWireshark一样都支持Lua5.2.4。...,这里使用-s参数来表示只捕获数据包的前512个字节数据: tshark -s 512 -i 4 Wireshark一样,Tshark还支持捕获过滤器显示过滤器的使用,这两种过滤器的语法也Wireshark

46330

5 种 API 网关技术选型,yyds

,这些插件(使用 lua 编写)API请求响应循环的生命周期中被执行。...Zuul提供了一个动态读取、编译运行这些过滤器的框架。...Zuul2Zuul1架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。Zuul1依赖多线程来支持吞吐量的增长,而Zuul 2使用的Netty框架依赖事件循环回调函数。...因为Zuul是运行在一个事件循环之上的,因此从来不要在过滤中阻塞。如果你非要阻塞,可以一个异步过滤器中这样做,并且一个单独的线程池上运行,否则可以使用同步过滤器。...简单说明一下上文中的三个术语: Filter (过滤器Zuul的过滤器概念类似,可以使用它拦截修改请求,并且对上游的响应,进行二次处理。

94640

高性能网关系统如何设计?

,这些插件(使用 lua 编写)API请求响应循环的生命周期中被执行。...Zuul提供了一个动态读取、编译运行这些过滤器的框架。...Zuul2Zuul1架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。Zuul1依赖多线程来支持吞吐量的增长,而Zuul 2使用的Netty框架依赖事件循环回调函数。...因为Zuul是运行在一个事件循环之上的,因此从来不要在过滤中阻塞。如果你非要阻塞,可以一个异步过滤器中这样做,并且一个单独的线程池上运行,否则可以使用同步过滤器。...简单说明一下上文中的三个术语: Filter (过滤器Zuul的过滤器概念类似,可以使用它拦截修改请求,并且对上游的响应,进行二次处理。

1.2K50

原创好文!亿级流量网关设计思路

,这些插件(使用 lua 编写)API请求响应循环的生命周期中被执行。...Zuul提供了一个动态读取、编译运行这些过滤器的框架。...Zuul2Zuul1架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。Zuul1依赖多线程来支持吞吐量的增长,而Zuul 2使用的Netty框架依赖事件循环回调函数。...因为Zuul是运行在一个事件循环之上的,因此从来不要在过滤中阻塞。如果你非要阻塞,可以一个异步过滤器中这样做,并且一个单独的线程池上运行,否则可以使用同步过滤器。...简单说明一下上文中的三个术语: Filter(过滤器Zuul的过滤器概念类似,可以使用它拦截修改请求,并且对上游的响应,进行二次处理。

1.8K20

聊聊布隆过滤器

前言 布隆过滤器作为一个精巧且实用的数据结构,对于后端程序员来讲,学习理解布隆过滤器有很大的必要性。希望通过这篇文章让更多人了解布隆过滤器的原理,并且会实际去使用它! 什么是布隆过滤器?...(判断一个邮件地址是否垃圾邮件列表中)、黑名单功能(判断一个IP地址或手机号码是否黑名单中)等等。...当我们需要判断一个元素是否存在于布隆过滤器的时候,会进行如下操作: 对给定元素再次进行相同的哈希计算; 得到值之后判断位数组中的每个元素是否都为 1,如果值都为 1,那么说明这个值布隆过滤器中,如果存在一个值不为...如果我们需要判断某个字符串是否布隆过滤器中时,只需要对给定字符串再次进行相同的哈希计算,得到值之后判断位数组中的每个元素是否都为 1,如果值都为 1,那么说明这个值布隆过滤器中,如果存在一个值不为...(lua 脚本实现):https://github.com/erikdubbelboer/redis-lua-scaling-bloom-filter pyreBloom(Python 中的快速 Redis

19720

给你的istio sidecar写一个自定义扩展程序

基于 lua 编写 istio 扩展包 我们知道 istio 支持 lua wasm 两种扩展能力,lua 作为脚本语言,相信写过游戏或 nginx 插件的都了解他,这里以 Lua 为例子,介绍下...脚本filter链拦截处理处理连接请求 - applyTo: HTTP_FILTER match: context: SIDECAR_INBOUND #"ANY", "SIDECAR_INBOUND...Lua Filter 说明 Lua 脚本方法说明: envoy_on_request 函数在请求路径被调用, envoy_on_response 脚本则在响应路径被调用。...只要它们还没有被发送到头链中的下一个过滤器,就可以被修改。例如,它们可以一个 httpCall() 或者 body() 调用返回后被修改。如果头在任何其他情况下被修改,脚本将失败。...元数据需要在过滤器名下指定,例如envoy.lua

56820

云原生环境下的API业务安全思考

微服务应用API治理与安全防护 微服务环境下,存在着大量的服务之间的调用。这时,内部服务的API调用的安全风险就不得不考虑进去。同时,云原生环境中,内外网边界逐渐模糊,更多的API会暴露在云。...Service Mesh 微服务的基础加上了一个网络代理,所有的流量都在Sidecar完成,Sidecar完成服务发现,负载均衡,智能路由,故障注入,熔断等动能,从而微服务只需要注重业务实现。...Istio官方[3]对Istio的架构描述如下图3: Istio逻辑分为数据平面控制平面,控制平面主要实现微服务管理需要的服务发现的功能,数据平面的Envoy以Sidecar的模式提供负载均衡的功能...5.1内置过滤器 通过内置过滤器,我们可以不编写代码的前提下,只需要通过配置项,就可以对流经Envoy的API请求进行防护。...通过Envoy提供的lua或者wasm的过滤器。我们可以直接编写lua代码,或者将C++、resty代码编译成WebAssembly代码,实现自定义的过滤器

93320

使用 WebAssembly 对 Istio 进行扩展

WASM 字节码机器码非常接近,因此可以非常快速的装载运行。...HTTP 过滤器 HTTP 过滤器 L7 运行,由网络过滤器(即 HTTP 连接管理器,HTTP Connection Manager)创建。...采用该规范的好处在于能让 Wasm 扩展程序不同的网络代理产品运行,比如 MOSN 的 Wasm 扩展程序可以运行在 Envoy ,而 Envoy 的 Wasm 扩展程序也可以运行在 MOSN ...AUTHZ: Istio 身份验证过滤器之后以及所有一级授权过滤器之前,即应用于 AuthorizationPolicy 资源之前。...STATS:在所有授权过滤器之后,以及 Istio 统计过滤器之前。 UNSPECIFIED_PHASE:让控制平面决定注入的位置,通常位于过滤器链的末端,也就是路由之前。

31910

一文速通Nginx网关与gateway网关区分

路由转发:接收外界请求,通过网关的路由转发,转发到后端的服务过滤器:分为Gateway FilIerGlobal Filter。Filter可以对请求和响应进行处理。...其特点是占有内存少,并发能力强,事实nginx的并发能力同类型的网页服务器中表现较好。...可靠性高:Nginx的代码被设计为高可靠性的,可以长时间运行中保持稳定性。 可扩展性好:Nginx可以通过添加第三方模块或编写自定义模块来扩展其功能。...支持热部署:Nginx可以不停止服务的情况下重新加载配置文件动态模块。...流量网关通常只专注于全局的Api管理策略,比如全局流量监控、日志记录、全局限流、黑白名单控制、接入请求到业务系统的负载均衡等 业务网关一般部署流量网关之后、业务系统之前,比流量网关更靠近业务系统。

2.4K32
领券