- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 服务注册和配置中心Consul的研究
最近一直在对比Consul和Nacos,两者功能几乎完全类似,都是服务注册和全局配置中心。Consul是基于Google基于Go语言开发的,Nacos是阿里巴巴使用JAVA开发的。本篇文章我们简单来研究下Consul服务注册中心,Consul的下载和使用很方便,直接到官网下载,我下载的是consul_1.7.2_windows_amd64.zip版本,下载后之后直接解压,然后运行命令:consul agent -dev -ui -client=192.168.43.1 -dns-port=53clie
2021-12-28 10:03:50
291
原创 kong与Consul集成和kong网关上游服务的关系
我们知道,关于服务注册和配置,比较常见的开源产品如Nacos/Consul都是基于微服务组件级别的注册,即注册时实际上相当于微服务的JAR包部署到Docker容器中,通过在代码中加入注解进入注入配置,两者都是采用通过 Spring Cloud 原生注解@EnableDiscoveryClient开启服务注册发现功能,而且Nacos和Consul都提供基于API和DNS两种方式的服务消费。这里其实我们可以把这类产品的功能进行拆分一下:1、 全局配置中心,在服务注册和配置中心设置的Key/Value值可以
2021-12-24 08:46:53
1739
原创 Kong与Serverless无服务器计算
首先我们要来科普一下什么是无服务器计算,无服务器计算是在无需最终用户管理的基础设施上托管应用程序的新方式,是IaaS(基础设施即服务)演进的下一个阶段。它将底层基础架构从开发人员中分离出来,基本上虚拟化了运行时(虚拟机的一种,一般指进程级别的虚拟机)和运营管理。这通常被称为 FaaS(功能即服务)。无服务器计算的优势表现在:敏捷、可伸缩性、计费模式、安全。其他相关知识可以百度,这里我们举个例子来说明一下:比如一款手机游戏,允许用户在不同的平台上查询全球顶级玩家分数表。当请求此信息时,请求从应用程序到API
2021-12-21 09:39:15
598
原创 kong网关源代码研究及调试
前段时间一直研究kong网关,发现kong源码的整体结构还是比较清晰的。核心的目录结构如下:Api目录-----kong对外发布的管理API,通过8001端口发布。Cmd目录----kong的命令行,如start、stop等cluster_events目录------集群事件的策略配置文件,如数据库集群。Db目录------数据库的操作,如数据操作、结构定义、数据库迁移等Log目录------日志存储,平台分三类日志,access/admin_access/errorPdk目录------设计工
2021-12-17 16:37:14
1333
原创 Kong的流量控制组件测试和应用(四)
Request Termination,请求终止插件,此插件使用指定的状态代码和消息终止传入请求,这种方式一般用于(暂时)阻塞API或消费方。该插件的应用场景一般在某个消费方大量非正常调用的情况下,或者系统在做升级或者迁移的情况下临时的一个暂停请求的策略。我们对某个路由服务设置该插件:然后通过POSTMAN调用该路由服务看到:...
2021-12-15 09:19:09
262
原创 Kong的流量控制组件测试和应用(三)
Request Size Limiting,请求报文大小限制插件,阻止请求报文体大于特定大小的请求。这个插件比较容易配置,是指根据请求报文大小进行判断,如大于设置的阀值,则触发限流。1、 配置限流规则,目前设置1M的大小。2、 调用服务,request请求报文大于1M,出现限流控制。...
2021-12-14 13:20:24
217
原创 Kong的流量控制组件测试和应用(二)
Response Ratelimiting,响应速率限制插件,基于自定义响应消息头进行速率限制。这也是一种限流的插件和Rate Limiting相似,但是有一定的区别。Response Rate Limiting是由后端服务控制频率的减少,而Rate Limiting是由Kong网关来完成的。如下两张对比图详细展示了这种差别:我们来测试该插件,首先在kong的管理平台上增加该插件:可以看到该插件的元素和Rate Limiting有些类似的地方,如limit by和policy这个我就不再解释,如果路
2021-12-10 13:37:15
1186
原创 Kong的流量控制组件测试和应用(一)
今天我们来测试kong的流量控制组件,可以从kong目前开源的已发布的流量插件来看包含以下四个插件,我们一个个来解析:1) Rate Limiting,速率限制插件,速率限制主要用来控制接收的HTTP请求数量。速率限制插件是消费端在给定的秒、分钟、小时、天、月或年时间内可以发出多少次HTTP请求。如果API没有身份验证层,将使用客户机IP地址进行区分。否则,如果配置了身份验证插件,则将使用消费方。我们来看插件配置: 限制对象:包括消费方、凭证和IP地址,如果调用服务的客户端能对应到消费方则使用消费
2021-12-09 10:41:22
969
原创 kong的IP RESTRICTION的配置
Kong的IP RESTRICTION就是IP控制插件,可以控制全局、服务、路由、消费方的IP地址,通过设置黑白名单,来限制访问的IP和IP段。IP或CIDR范围到白名单的逗号分隔列表。必须在白名单或黑名单之间至少指定一个。1、 如果配置了白名单,则白名单之外的IP都不允许访问。2、 如果配置了黑名单,则黑名单之外的IP都允许访问。3、 如果同时配置了黑白名单,则只允许白名单的访问。我们将该插件配置到test-service服务上,并设置限制黑名单的IP地址为调用服务的IP。上图我们看一下,业
2021-12-08 09:45:43
2743
原创 kong的Dashboard展示需求和功能改造方案
谈到kong的统计和展示需求,我们先来参考一下kong的开源管理平台konga的Dashboard内容。Konga展示了五个部分的内容,基本都是通过kong的管理api提供的信息来做的展示,包括http://kong:8001/ (节点Info信息) http://kong:8001/status (连接信息) http://kong:8001/plugins/enabled (平台插件和有效插件信息)Konga在dashboard展示的信息是否能满足我们日常仪表盘监控的需求了呢?显然还是完全不够的,
2021-12-06 10:19:18
445
原创 系统蓝屏解决方案
最近不知道为什么,先是老的笔记本电脑主板坏,然后接着是老笔记本启动按键坏了,修了两次总算修好,但总感觉风险很高,于是从公司新申请了一台电脑,公司电脑配置还挺高的,本以为可以开心的堆代码了,可不知道是今年电脑跟我过不去还是咋的,新笔记本也频繁出现了蓝屏,好在我是搞IT的,这点难不倒我,先是拆机从电脑中取出硬盘备份资料,然后重装系统,本以为可以解决,结果还是不断蓝屏,我使用windlg打开dump文件检查发现,蓝屏的各种原因都出现了,包括:1、system service exception2、irql n
2021-12-02 19:17:17
461
原创 kong代理透传webservice服务方法
说到软件系统的集成技术,集成协议有很多,比如dubbo、rmi、thrift、memcached、webservice、http、restful等等。大家用的最多的一般就是webservice和Restful。Webservice是用在传统企业内部各系统间的互联互通,而Rest则大多数用在企业对外服务、互联网应用集成。一般我们谈Restful协议,就很容易想到API网关,那么API网关是否只支持restful呢?答案显然不是这样,我们就以kong网关为例,来看一下kong对webservice的代理支撑。
2021-11-26 10:00:24
1238
原创 API网关产生背景以及kong网关产品介绍
最近在整理API网关的培训资料,也想来谈一谈我们为什么需要API网关,以及kong网关的一些特性分析。互联网的大环境下,以及微服务架构盛行的今天,为解决企业对外部互联网集成交互的高效和高质量,采用分布式集成架构去中心化减少风险,并降低臃肿的企业IT应用架构每年带来的巨大维护成本节省投资,API网关就这样在一些工程师的引领和推动下产生了,API网关解决的问题包括: 后端的服务能否对接多终端?如何快速检索到需要的API服务? 如何知道API被谁消费了?如何管理业务系统暴露的上万API ? API是否
2021-11-24 13:28:25
700
原创 ppt编写方法和指南
对于程序员或者架构师来说,编写ppt很多人都有过这样的体验,宁愿写程序也不愿写ppt,程序带来的实现快感明显高于产出ppt。但我们要知道,一个软件是否能卖出去,ppt的好与不好,是起到非常重要的作用的。至少它是一个敲门砖,客户第一时间接触的肯定是售前的方案ppt,如果这一关都过不去,即使你的程序再优秀,设计再出众,也无人问津。所以无论公司还是个人,编写ppt的方法和技能是展现自我能力的一把利刃,特别是做售前或者方案的人,这就是一项重要且不可或缺的技能。那么如何编写好的ppt呢,我们从两个方面来讲述,第一是
2021-11-22 16:27:52
1016
原创 微服务应用API端点自动注册
微服务应用注册的注册可以采用Nacos或者Consul等服务注册和配置中心,但无法实现微服务端点的自动注册。典型的场景比如,我开发一个用户管理的微服务应用,其中需要暴露的API包括:/users,GET,查询所有用户。/userpri/{id} , GET,获取用户权限/userdept/{id}, GET,获取用户部门………………(可能还有很多)那么当我在对微服务应用部署的时候,我同时希望这些API快速的注册到网关的API库中,可实现网关对于API的快速代理配置。根据需求,我们大致整理一下实现的
2021-11-22 09:38:43
968
原创 linux系统使用fpm对kong进行快速打包部署
Linux目前安装软件的方式大致有以下几种:源码安装、yum安装、deb安装(基于Debian的系统使用deb格式的包如ubuntu)、Rpm安装 (基于Red hat)。其中Rpm安装相对来说是最方便快捷而且全自动的安装方式。本文将介绍如果将我们编写或者修改的源码用rpm进行打包。首先要提到的是rpmbuild这个工具,这个工具我之前也提到过,可以生成rpm包,但是需要编写spec文件,上手麻烦。而本文提到的Fpm,是一种比较快速制作rpm包的工具,比起rpmbuild要方便很多。Fpm支持的源类型包:
2021-11-19 08:43:14
347
原创 通过API开发平台构建微服务应用实例(三)
在上一章中我们对《供应商资料管理》微服务应用的底层数据模型设计已经完成,这一章我们将开始开发微服务应用的API和端点。一、 首先对于数据实体的API能力发布,我们可以直接使用平台数据实体发布在线API的功能,这个功能可以发布对于数据实体的增删改查的基本API能力,且做过完整的事务处理。发布后的API是部署在Node-Red服务器上生成flow,对于Node-Red比较熟悉的开发人员也可以打开flow进行编排和二次开发。可以配置请求路径、私有/公有、API分组(通过Token来控制访问权限)。三个数
2021-11-17 20:58:54
601
原创 通过API开发平台构建微服务应用实例(二)
接上一章,我们完成了《供应商资料管理》微服务应用的需求分析和设计之后,马上进入到该应用的开发,在本次开发过程中,我们使用了远行API快速开发平台从零开始,全程无代码,快速完成该后端微服务应用的开发工作。首先我们创建了一个专有用户apidev并对其授权,使用该用户登录进入系统:我们看到在设计的数据实体中其实都存在像创建人、创建时间、更新人、更新时间这些字段,所以我们创建一个公共的元数据《创建更新人和时间》,创建这个元数据的目的是为了后续创建数据实体时能复用:我们在开始创建微服务应用涉及
2021-11-16 09:42:40
592
原创 通过API开发平台构建微服务应用实例(一)
API开发平台能帮助开发人员快速发布API和构建微服务,那么这个过程是怎么样的,我们今天就用使用实际的场景来演示整个开发过程。下图是传统供应链系统的功能架构。可以看到供应链系统的模块还是比较多的,我们选择供应商管理这个大的模块来进行微服务拆分,供应商管理的系统范畴包括:供应商资料管理供应商资质管理供应商查询供应商流程(入驻、认证、考察、合作、绩效评估、淘汰全流程业务)供应商联系人管理供应商统计分析如果按照这个粒度对供应商管理进行微服务拆分,那么我们可以得到微服务
2021-11-15 14:18:40
471
原创 API开发平台应用场景和产品研发
对于前后端分离的应用来说,后端应用主要是以API的形式对外提供能力,而在微服务架构盛行的当下,很多企业对于后端传统的应用程序已经做了打散和拆分,实现了微服务改造。如果一个企业的IT建设比较全的话,那么在管理域、业务域和运维域的传统信息化系统至少超过10个,全部经过微服务拆分改造后的微服务应用可能达到几十甚至上百个。如此多的微服务应用不仅运维管控存在问题,而且微服务应用的开发、变更、升级都会存在较大的时间和资金成本。微服务运维管控的问题交给Devops,本章只为应对微服务应用开发变更带来的问题。目前业界提供
2021-11-15 13:59:42
1344
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人