推荐系统在我们的日常生活中无处不在,它们非常有用,既可以节省时间,又可以帮助我们发现与我们的兴趣相关的东西。目前,推荐系统是消费领域最常见的机器学习算法之一[1]。...例如,我在某宝上浏览了几件黑色女式羽绒服,系统根据内容过滤算法直接提取 “黑色”、“羽绒服”、“女式” 等 item 特征,在这个应用场景下,item 具体为 “物品”。...通过对物品进行多次关联性分析,发现我多次在某宝中的点击之间的关联性,从而生成推荐结果,将“女式羽绒服” 推荐到我的某宝首页中。...从另外一个角度分析,在推荐 / 搜索中引入隐私也有一定的好处。我们可以利用用户不共享的更好的元数据进行推荐系统的训练,例如手机上的应用程序信息、位置等。...同时,这种方法是可推广的,可以扩展到各种推荐系统应用场景中。FCF 的完整框架如图 1。在中央服务器上更新主模型 Y(item 因子矩阵),然后将其分发到各个客户端中。
问: 假设我有这个脚本: export.bash #!...echo $VAR 有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR? 答: 不可以。 但是有几种可能的解决办法。...在调用 shell 的上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是在脚本中打印设置环境变量的命令.../set-vars2.sh)" $ echo "$FOO" BAR 在终端上执行 help export 可以查看 Bash 内置命令 export 的帮助文档: # help export export...help eval 相关阅读: 用和不用export定义变量的区别 在shell编程中$(cmd) 和 `cmd` 之间有什么区别 ----
该篇主要讲解在微服务架构中,如何使用我们耳熟能详的API网关+服务注册中心进行负载均衡的请求。...在实际开发项目中,是以Docker Overlay的网络方式部署的,有些中间件为了开放给开发人员使用并且在文章中很好的展示给各位读者,我是把容器端口映射到了宿主,大家可以根据自生的实际情况进行定义。...首先协议跟上面的问题一致是HTTP的,那么在.Net里HTTP API是不是可以通过HttpClient进行请求?...Kong与KongA的部署 对于中间件的部署,我建议在docker run的指令里指定【--ip】,避免每次启动的时候IP不一致,因此在应用配置需要指定。...} 添加Service 把圈起来的4项填写好,在实际场景可以根据自己的技术情况填写Protocol=http,Port=80,下面我将有taobao.com和baidu.com所以暂时用https
他山之石,可以攻玉!...技术选型 Consul 我是由于在最近的技术选型中了解到 Kong 的,在此之前,我曾经考虑过 Nginx+Consul 方案(详情见我的博客),对 Consul 也进行了深入的了解和测试,但是由于 Consul...kong 终于还是选择了 Kong,Kong 的平台无关性和设计良好的 REST API ,让我们有机会快速的接入到这款高性能的网关中,我个人开发 Kong.Net 这款客户端,用时 3 天,REST...API 共有 81 个 API,支持Kong:latest最新版本为1.2.x。...这个值就是要注册到 Kong 网关的地址,如果配置了,这个过程是自动的,否则需要手动指定客户端地址 上面的配置,和 Kong 内部的 UpStream 完全一致,在Kong 中怎么配置 UpStream
图片来自 Pexels 我今天就在和大家探讨一下 API Gateway。在微服务的架构下,API 网关是一个常见的架构设计模式。...在第一个页面请求时,页面将被存储在高速缓存中。...在某些情况下,在 Kong 的旁边添加自己的 NGINX 配置非常有用,例如在 API 网关旁边提供静态网站。在这种情况下,您可以修改 Kong 使用的配置模板。...虽然可以编写自己的模块,但是每次添加或更新模块时都必须重新编译 NGINX。为了简化添加新功能的过程,Kong 使用了 OpenResty。...由于 Kong 的请求路由和处理配置是通过其 admin API 控制的,因此可以在不编辑底层 NGINX 配置的情况下即时添加和删除插件配置。
/website/static/; index index.html; try_files $uri $uri/ /index.html; } 可以看到我的静态站点root 是/home...现需求是 我们的kong网关会绑定多个域名的,比如 api.mysite.com、health.mysite.com等,我们需要把静态站点部署到静态资源站点,然后由kong网关直接配置指定站点链接 比如我们静态站点链接是...//health.mysite.com/path1/index.html http://health.mysite.com/path1/path2/static1/index.html http://api.mysite.com...随便配 坑来了 然后现在需要部署前端地址是 :http://health.mysite.com/static1/ 我的kong网关配置 services: ? 对应的routes: ?...在kong网关中可以这样配置 方法1 公用service service ? route ?
在第一个页面请求时,页面将被存储在高速缓存中。...在某些情况下,在 Kong 的旁边添加自己的 NGINX 配置非常有用,例如在 API 网关旁边提供静态网站。在这种情况下,您可以修改 Kong 使用的配置模板。...虽然可以编写自己的模块,但是每次添加或更新模块时都必须重新编译 NGINX。为了简化添加新功能的过程,Kong 使用了 OpenResty。...由于 Kong 的请求路由和处理配置是通过其 admin API 控制的,因此可以在不编辑底层 NGINX 配置的情况下即时添加和删除插件配置,因为 Kong 本质上提供了一种在 API 中注入位置块(...以下是 Zuul 过滤器的主要特征: 类型:通常定义路由流程中应用过滤器的阶段(尽管它可以是任何自定义字符串) 执行顺序:在类型中应用,定义跨多个过滤器的执行顺序 准则:执行过滤器所需的条件 动作:如果符合条件
在第一个页面请求时,页面将被存储在高速缓存中。...在某些情况下,在 Kong 的旁边添加自己的 NGINX 配置非常有用,例如在 API 网关旁边提供静态网站。在这种情况下,您可以修改 Kong 使用的配置模板。...虽然可以编写自己的模块,但是每次添加或更新模块时都必须重新编译 NGINX。为了简化添加新功能的过程,Kong 使用了 OpenResty。...由于 Kong 的请求路由和处理配置是通过其 admin API 控制的,因此可以在不编辑底层 NGINX 配置的情况下即时添加和删除插件配置,因为 Kong 本质上提供了一种在 API 中注入位置块(...以下是 Zuul 过滤器的主要特征: 类型:通常定义路由流程中应用过滤器的阶段(尽管它可以是任何自定义字符串) 执行顺序:在类型中应用,定义跨多个过滤器的执行顺序 准则:执行过滤器所需的条件
也可以关注我的公众号:Felordcn 来及时获取相关的知识。 3. 安装Kong 你的机器中必须有Docker环境,这个是前提。假设你已经具备了必须的环境。...在下面的创建命令中kong-net是我们创建的Docker网络名称,当然你可以使用你认为合适的名称。...你可以执行以下命令中的一个来选择你的Database。...4.2.1 Konga数据库容器 上面在4.1特性介绍中我们介绍了Konga支持的数据库类型。这里我们依然使用PostgreSQL。请注意我新定义了挂载卷konga-postgresql 。...通过注册后进入,然后在dashboard面板里面添加Kong的管理Api路径http://yourdomain 。这里添加 http://ip:8001 。
API网关用于提供 API的完整生命周期管理,目前市面上流行的API网关有Kong、Tyk、Traefik、Zuul、APISIX、Ambassador等,从成熟度、性能和扩展性的角度来看,Kong都是一个较好的选择...PDK是一组Lua函数,可以使用它来实现插件与Kong的核心组件之间的交互。 插件可以存在于单独的代码库中,并且可以通过几行代码注入到请求生命周期的任何位置。...在Kong源码的插件目录中,可以看到有一个base_plugin.lua的文件,该文件里定义了一个基类BasePlugin,以及该基类所拥有的一些方法。...在tke中部署也类似,把插件文件和配置文件加到ConfigMap,再添加挂载点映射和启动环境变量。...这里需要注意,kong.cache:get如果在缓存中没有找到,如果回调函数不在第二个回参返回错误,则会把在db查到的值存入缓存。
在app里任意一个类中添加注解@DispatcherModules,里面写上所有使用此框架的Module的name; 例如:@DispatcherModules({"app","moduleinteract...name=liuzhao&sex=man"); 这样传递了两个参数:name与sex;在目标Activity中可以通过getIntent.getString("name")方式来获取; 通过url...Activity中可以通过getIntent.getInt("tab",0)方式来获取; 备注:必须参数与非必须参数可搭配使用,区别在于必须参数参与url匹配过程;通过url传参与不通过url传参两种方式可搭配使用...--改成自己的Scheme--> 备注:也可以使用自己的Activity: 只需要调用EasyRouter.open(Uri.toString...());即可 7、自动注入参数到界面; 在目标Activity中加上EasyRouter.inject(this); 在Activity中需要自动传参的参数上加上注解@AutoAssign,则会自动通过
在旧的服务治理体系之下,鉴权,限流,日志,监控等通用功能需要在每个服务中单独实现,这使得系统维护者没有一个全局的视图来统一管理这些功能。API 网关正是为了解决这些问题而生。...六、Kong 工作流程API 网关可以通过实现一些中间组件来解决一些问题,这些中间组件的功能就不需要到每个微服务中实现了,这样不同的团队可使用不同的方式来实现了不同的微服务。...{ kong.header_filter() --遍历在缓存中的插件列表,并执行 } body_filter_by_lua_block { kong.body_filter...() --遍历在缓存中的插件列表,并执行 } log_by_lua_block { kong.log() --遍历在缓存中的插件列表,并执行 } location...-s reload重新访问一下就可以看到真正的客户端IP:(12)上面已经添加了一个taget,为了演示负载均衡,继续添加创建两个tagets:7002和7003。
大家好,又见面了,我是你们的朋友全栈君。 kong笔记 目录导航 本文最初于 2020 年 9 月在公司内部发表,现整理并增加部分批注公开发布。...,这之后我负责公司 API Gateway 的开发,以及相关的落地工作。...我阅读并作出中文注释的 Commits 可以在这里看到: https://github.com/mayocream/kong/commits?...数据库事件 db/dao/init.lua 中定义了 DAO 相关的操作方法,我已经在 1.1.3 中简单阐述过了。...2.1.1 中已经提前进行了 DNS 预缓存,这里可以从缓存中读取。
主流网关对比 Nginx : Nginx 作为网关有天然的优势,高性能,反向代理等功能 Zuul: Kong: 专注于微服务Api网关的平台 Kong 实现原理 Kong是微服务中的一个网关组件,它具有高可用和可扩展性...,能提供于使用的RestFul Api来操作和配置Api管理系统,同时它可以通过负载均衡的功能把请求均匀分发到各个服务器上,应对大量的请求。...Target : 目标的IP地址和主机,其端口表示后端服务的实例,可以有多个Target,并且可以动态的添加Target。...Consumer : 表示服务的使用者或者是用户 Plugin : Kong 可以通过AdminApi配置全局和特定的路由和服务的插件,通过在代理转发不同生命周期和节点上嵌入业务逻辑实现。...,可以在浏览器输入:http://127.0.0.1:9002/overview,可以通过这个链接,检查kong是否安装成功. 4.初始化konga数据信息 docker run --rm --network
ingress-kong也可以作为k8s的ingress使用,当然kong也可以单独作为微服务的gateway网关来使用。...the database步骤中的connection-uri参数,你会发现他似乎没给出connection-uri的这个uri的例子是什么样子的。...其实这里我还犯了一个错误,就是其实一开始我初始化的pgsql命令中pgsql的url写错了,看了https://github.com/pantsel/konga/tree/master中的文档后,手敲命令...原因 是因为kong的deployment.yaml中的initContainers下的env环境变量中KONG_DATABASE写错了,我写成了kong。...写在最后 我在konga的github上没找到manifests直接可以用的yaml清单文件,只找到了chart包,因此我是渲染出来以后然后根据自己的实际环境进行了更改。
HTTPS请求,并转发到后台系统 :8001 通过HTTP协议提供管理功能的API (Admin API) :8444 通过HTTPS协议提供管理功能的API 这些端口可以在**/etc/kong/kong.conf...**中修改,:8000 和 :8443 默认绑定0.0.0.0;:8001 和 :8444 默认绑定 127.0.0.1 当然我们可以把Admin API作为一个服务通过kong的网关暴露出去,请参考[...为了看到负载均衡的效果,我们可以再起一个nodedmo运行在8088端口:PORT=8088 node server.js 下面把两个nodedemo添加到upstream中 curl -X POST...我用到的path有几个 route中的paths参数,表示符合这些请求路径要发到route对应的service中 route中的strip_path 参数,决定kong转发给后端的时候是否保留源请求用于路由匹配的路径...我遇到一个坑是这样的:在已经配置a.example.com和b.example.com这两个路由转发的前提下,我遇到的一个坑是这样的:我还有一个服务C,需要让*.example.com/c/ (包括a.example.com
二、Kong资产风险测绘分析 Kong是一个云原生,快速可扩展的分布式微服务抽象层(通常被称作API网关,API中间件),Kong于2015年被Mashape公司开源,其在Github上拥有31.6K...Kong资产版本分布 上图可以看出在统计的Kong资产中,37%的资产未获取到具体版本信息,剩余约63%资产中,绝大多数资产暴露版本分布在1.4.3、2.4.1、2.1.4、0.14.1、0.11.0...2.2Kong漏洞介绍 Kong于2015年开源至今,已有约7年时间,在此期间一共曝出三个漏洞[1][2]][3],可以说漏洞数量相对还是比较少的,从CVE编号信息我们可以看出漏洞披露时间主要集中在2020...在2.6版本中,Dashboard默认登录信息为admin/admin,若用户未对默认登录配置进行修改,攻击者可在进⼊Dashboard后添加⾃定义路由信息,并通过在接⼝路由中写⼊扩展脚本,从⽽达到执⾏...同时额外检查 ctx.var.upstream_uri 和 ctx.var.uri 变量,虽然已有被规范化的可能,但可防患于未然 禁止在APISIX的配置文件中对含有漏洞的插件进行声明 四、总结 近年来
1.1 特性 Kong 网关具有以下的特性: 可扩展性:通过简单地添加更多的服务器,可以轻松地进行横向扩展,这意味着您的平台可以在一个较低负载的情况下处理任何请求。...模块化::可以通过添加新的插件进行扩展,这些插件可以通过 RESTful Admin API 轻松配置。...“在 https://konghq.com/install/ 地址中,可以看到 Kong 支持在各种环境下的安装。 1.2 架构 Kong 的整体架构如下所示: ?...Konga 初始化 Kong 界面 添加完 Admin URL 地址后,我们就可以在 Konga 界面中看到 Kong 的信息。如下图所示: ?...简单来说,服务用于映射被转发的后端 API 的节点集合 在 Kong 中,还有 Consumer、Plugin、Tag、Certificate、Target 等等对象,胖友可以阅读《Kong 文档 ——