镜像概述和主要用途
Tyk是一个开源企业API网关,支持REST、GraphQL、TCP和gRPC协议。它提供“开箱即用”的功能,无任何功能锁定,使组织能够控制API的访问对象、时间和方式。Tyk Technologies在其所有应用中使用相同的API网关,为全球数千家组织和企业提供API保护、安全和处理服务。适用于Open Banking、云环境软件构建以及向团队、合作伙伴和消费者暴露API等场景。
Tyk网关从零构建,旨在成为全球最快的API网关,不依赖底层遗留代理,除Redis(用于分布式限流和令牌存储)外无第三方依赖。也可作为更大的全生命周期API管理平台https://tyk.io/features/dashboard/的一部分部署,该平台还包括管理控制平面、仪表板GUI和开发者门户。
核心功能和特性
多协议支持
- 支持REST、SOAP、https://tyk.io/docs/tyk-apis/tyk-gateway-api/api-definition-objects/graphql/、https://tyk.io/docs/key-concepts/grpc-proxy/和https://tyk.io/docs/key-concepts/tcp-proxy/协议。
行业标准认证
- 支持https://tyk.io/docs/advanced-configuration/integrate/api-auth-mode/open-id-connect/#setting-up-oidc、https://tyk.io/docs/tyk-apis/tyk-gateway-api/api-definition-objects/jwt/、https://tyk.io/docs/basic-config-and-security/security/authentication-authorization/bearer-tokens/、https://tyk.io/docs/tyk-apis/tyk-dashboard-api/basic-authentication/、客户端证书等认证方式。
Open API标准兼容
- https://tyk.io/docs/getting-started/import-apis/,快速搭建API配置。
高性能
- https://tyk.io/performance-tuning-your-tyk-api-gateway/,单CPU支持数千RPS,支持水平和垂直扩展。
内容转换
- https://tyk.io/docs/advanced-configuration/transform-traffic/,支持SOAP与GraphQL之间的格式转换。
可扩展插件架构
- https://tyk.io/docs/plugins/(Python、Javascript、Go等支持gRPC的语言),自定义中间件链。
限流与配额
- https://tyk.io/docs/basic-config-and-security/control-limit-traffic/rate-limiting/#setting-rate-limits-in-the-tyk-community-edition-gateway-ce,为每个消费者设置访问限制。
API版本控制
- https://tyk.io/docs/tyk-apis/tyk-gateway-api/api-definition-objects/versioning-endpoint/,并可指定版本废弃时间。
细粒度访问控制
- https://tyk.io/docs/security/security-policies/secure-apis-method-path/,支持IP黑白名单。
其他核心特性
- CORS支持:为特定API启用跨域资源共享。
- Webhooks:针对配额违规、认证失败等事件触发通知。
- 无中断重载:动态修改配置并重启服务,不影响活跃请求。
- Kubernetes原生:通过https://github.com/TykTechnologies/tyk-operator实现声明式API管理。
使用场景和适用范围
- Open Banking:符合***行业标准,安全管理开放银行API。
- 云环境API管理:在云平台中构建和保护微服务API。
- 合作伙伴与消费者API暴露:向内部团队、外部合作伙伴和终端用户安全提供API访问。
- 多协议API统一管理:整合REST、GraphQL、gRPC等协议的API,提供一致的访问控制和监控。
使用方法和配置说明
推荐部署方式:Docker
基本步骤
-
拉取镜像(具体版本参考官方仓库):
bash
docker pull docker.xuanyuan.run/tykio/tyk-gateway:latest
-
运行容器(需配置Redis):
bash
docker run -d \
--name tyk-gateway \
-p 8080:8080 \
-e TYK_GW_REDISADDR=redis-host:6379 \
docker.xuanyuan.run/tykio/tyk-gateway:latest
注:redis-host需替换为实际Redis服务地址,更多配置参数见https://tyk.io/docs/tyk-oss/ce-docker/。
-
配置API:通过API定义文件或Tyk Dashboard导入Swagger/OAS文档,详见https://tyk.io/docs/getting-started/import-apis/。
其他部署方式
- Kubernetes:使用https://github.com/TykTechnologies/tyk-helm-chart#install-tyk-community-edition或https://github.com/TykTechnologies/tyk-oss-k8s-deployment。
- Ansible:通过https://tyk.io/docs/tyk-oss/ce-ansible/自动化部署。
- Linux系统:支持Red Hat、Ubuntu、CentOS,详见https://tyk.io/docs/tyk-oss/。
从源码编译
-
克隆仓库:
bash
git clone https://github.com/TykTechnologies/tyk
-
编译(需Go 1.12环境):
-
运行测试(需本地Redis):
相关集成项目
- https://github.com/TykTechnologies/tyk-pump:API分析数据导出工具。
- https://github.com/TykTechnologies/tyk-operator:Kubernetes原生API管理。
- https://github.com/TykTechnologies/tyk-identity-broker:第三方登录认证代理。
- https://github.com/TykTechnologies/tyk-sync:配置同步工具,支持版本控制。
文档与社区
- 官方文档:https://tyk.io/docs/tyk-oss-gateway/
- 社区支持:https://community.tyk.io
- GitHub Issues:https://github.com/TykTechnologies/tyk/issues/new/choose
开源许可
采用MPL v2.0许可,详见https://github.com/TykTechnologies/tyk/blob/master/LICENSE.md。