Serendipity96 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703143629



##########
File path: 
website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao";
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4";
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 
`Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 
的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 
这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner)
 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 
`Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 
`apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin 
Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 
向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后

Review comment:
       Is this a plugin? Please add a link to the project documentation or 
GitHub address.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to