源文件:https://github.com/TykTechnologies/tyk-swagger-definitions/blob/master/tyk_gateway_api.yml
swagger: '2.0' info: version: "1.9" title: Gateway REST API paths: /tyk/keys/: get: description: | Gets a list of *key* IDs (will only work with non-hashed installations) parameters: - name: api_id in: query description: Back-end to target required: true type: string format: string - name: x-tyk-authorization in: header description: tyk gateway shared secret required: true type: string format: string responses: 200: description: Successful response schema: type: object properties: keys: type: array items: type: string /tyk/keys/create: post: description: | Create a n
最近在做微服务相关产品,其中需要有API网关相关产品,虽然早有研究过API网关产品TYK,但是感觉其太重,想起之前研究开源BI产品saiku的时候,记得其有NodeJS的代理代码,于是看了下,颇有启发,略微修改了一些,拿出来跟大家分享下,虽然简单,不可用于生产,但是对于学习还是不错的
{
"name": "SmartHttpProxy",
"description": "An simplest Http Proxy",
"version": "0.0.1",
"author": "liuyg@liuyingguang.cn",
"license": {
"type": "Apache License Version 2"
},
"main": "server.js",
"scripts": {
"start": "node server.js 8088 127.0.0.1 80 / "
},
"dependencies": {
"express": "~4.13.4"
}
}
/*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either e
最近有朋友提出了问题:“是不是拥有了服务发现就是微服务了?”,对于这个问题,很难回答,毕竟微服务的定义在每个人心里都是不一样的,就像“互联网思维”一样,我们说得清“互联网”,却总也说不清楚什么是“互联网思维”(在这个思想开放的互联网时代,你我都是哈姆雷特,但是也是交流沟通便利性的时代)。今天总结这篇文章呢,来说说我对微服务的理解,以及再来探讨下微服务的定义。
其实回头看看我之前写的《微服务指南走北》系列的第一篇《微服务指南走北(一):微服务是什么》中描述的:微服务是基于Restful风格的,基于资源及资源操作一组API的集合,可以实现模块儿或者说是特定的业务范围内的一个完全独立、细粒度、自包含的一个服务。每个微服务提供一组API,供其他微服务或者应用客户端所用。
其中,包含如下几个要点:
1. 基于资源
2. 模块儿化或者业务独立
近段时间离职,跟同事们讲解我之前所做的微服务相关产品,对于同事们提出的问题,做了如下整理出来,加上自己的理解,分享出来跟大家一起探讨下:
可以解决复杂性的问题,在功能不变的情况下,分解为多个相互协作的微服务,通过rest API定义边界,这样极大易于开发、理解和维护。
微服务架构是的每
微服务“Microservices”已经成为软件架构最流行的热词之一。网络上看到很多关于微服务的文章,但是感觉很多离我们还很遥远,并且没有找到多少真正在企业场景中应用的实例。此处省略一万字~~~~于是想要将自己最近一段时间使用微服务以及通过看大师们的文章的所思所想梳理出来,分享出来,以供大家参考(热切欢迎大家拍砖,头破血流最好)。
记得刚看到微服务的时候,注意点在微字上,然后才是服务,初步理解为:将整块儿的服务拆分成多个类似工具类的微小web服务,供其他服务调用,每个服务应该是极其微小的,就像各个零件一样,各司其职,拼装成一个伟大的服务群
由于自己是技术出身,对理论并不是很重视,于是基于初期的理解,就向着“微服务”(这里要打引号,不然会被拍板砖)迈进。先是实现了微服务的多种搭建方式,听说有springboot的、有jersey+jetty的、有Python的、有NodeJS的等等。进而了解到,微服务主要是以restful风格架构以提供服务(还有Thrift),rest的实现是HTTP的“请求-响应”,而rest是基于资源的API风格,进而可以理解微服务是多个能够表现对一个资源及对此资源执行的操作集成的服务。既然是对一个资源的使用及操作,那么每个微服务应该是独立的个体。
基于以上理解,迫不及待的使用“微服务”来实现自己手上的业务需求,就拿简单的客户信息管理系统为例:主要有客户信息管理、用户管理、组织架构管理等(这里不多举例)。根据之前的理解,客户、用户、组织架构,应该是三种不同的资源,那么应该分为三个不同的微服务。可是某一层组织架构下,会有多个用户,而某个用户又会拥有属于自己的多个客户,如此并没有办法将三个服务彻底分离(还是有关联关系),这不符合之前的理解。然而业务关系上,三者的联系必不可少,存在即合理,那么也理应是三个微服务互相协作而又相互独立的关系。如同团队成员之间的协作关系,相互独立而又相互依赖。
小结:微服务是基于Restful风格的,基于资源及资源操作一组API的集合,可以实现模块儿或者说是特定的业务范围内的一个完全独立、细粒度、自包含的一个服务。每个微服务提供一组API