API-Gateway

腾讯T8纯手写66个微服务架构设计模式,全部学会真的“变强”了

被刻印的时光 ゝ 提交于 2020-07-27 14:28:37
微服务的概念虽然直观易懂,但“细节是魔鬼”,微服务在实操落地的环节中存在诸多挑战。我们在为企业提供PaaS、人工智能、云原生平台等数字化转型解决方案时也发现,企业实现云原生,并充分利用PaaS能力的第一步,往往是对已有应用架构进行现代化微服务改造,而如何进行微服务拆分、设计微服务逻辑、实现微服务治理等实操问题成为很大的挑战。 本文既包含了微服务的原理、原则,又包含了实际落地中的架构设计模式;既包含可举一反三的理念和概念,也包含类似领域驱动设计、Saga实现事务操作、CQRS构建事件驱动系统等具体可套用的示例。本书可以帮助读者把传统的单体巨石型应用循序渐进地改造为微服务架构,从微服务的拆分,微服务架构下业务逻辑的设计以及事务、API、 通信等的实现,一直到微服务系统的测试与生产上线,帮助读者建立从无到有的完整微服务系统搭建的生命周期。 书籍优质内容节选 第8章外部APl模式 8.1外部API的设计难题 为了探索与API相关的各种问题,让我们考虑一下FTGO应用程序。如图8-1所示,该应用程序的服务由各种客户端使用。使用服务API的客户端一共有四种: ■Web应用程序,如Consumer web 应用程序一为 消费者实现基于浏览器的用户界面,Restaurant web 应用程序一实 现基于浏览器的餐馆用户界面,以及AdminWeb应用程序一实 现供内部管理员使用的用户界面。

使用 Serverless + 飞书打造你的个性化消息提醒系统

柔情痞子 提交于 2020-07-27 13:11:16
一、前言 在日常工作学习生活中,我们可能会遇到以下情形: 自己管理的某台服务器宕机了,但是没有得到及时的提醒,导致业务受到损失 某些自己很想注册的网站悄悄开放注册,但是自己并没有及时得知,于是只能继续漫无目的的等待 …… 如果每件事都花时间去关注,那我们的时间必然会不够用,那有没有什么办法可以让这些消息 集中 起来并且 及时 推送呢?在这里我想向大家推荐一个解决方案,那就是 使用 Serverless + 飞书打造属于自己的个性化消息提醒系统 。 二、准备工作 首先注册一个飞书账号,然后在 飞书网页版 登录 打开 飞书开放平台 ,点击 创建企业自建应用 ,并输入 应用名称 和 应用副标题 ,然后点击 确定创建 在企业自建应用列表中点击刚刚创建成功的应用,并记录 App ID 和 App Secret 二、编写代码 在本地新建一个项目目录,名称随意,这里以 feishu-notify 为例 分别创建 3 个文件: .env , index.py 和 serverless.yml 按如下说明进行编码 .env TENCENT_SECRET_ID=AKID******************************** TENCENT_SECRET_KEY=******************************** 注:这里的 TENCENT_SECRET_ID 和 TENCENT

.NET Core 玩一玩 Ocelot API网关

偶尔善良 提交于 2020-07-24 05:06:58
.net 这几年国内确实不好过。 很多都选择转行。不过.net Core跨平台 开源之后 。社区的生态在慢慢建立。往好的趋势发展。 对于坚守在.NET战线的开发者来说 是个挺不错的消息。 特别是微软收购75亿美金GitHub。.net 生态 社区圈子。肯定会有所上升。 发展趋势越来越好。(当然 这只是我个人祈愿) 最近也比较懒。也有段时间没有写过文章了。 但对于追寻新技术渴望学习 是不会断的 最近微服务比较火热。 将以个大型项目根据业务可以拆分成一个个的较小的独立项目。便于管理 且互相协作 什么是Ocelot Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成 但是现在网上关于Ocelot的文章还是有限。 首先感谢几位大佬 Ocelot的文章 https://www.cnblogs.com/shanyou/p/7787183.html (张友善 大神) https://www.cnblogs.com/Leo_wl/p/7852311.html ( HackerVirus 大神) https://www.cnblogs.com/jesse2013/p/net-core

Load balancer and API Gateway confusion

为君一笑 提交于 2020-07-09 12:48:05
问题 I have always worked on mobile technologies and now I am stepping into backend systems, more specifically systems design. I keep coming across conflicting statements for the roles of api gateway and load balancer. Googling has only returned the same half a dozen results that mostly focus on the implementations of load balancer or api gateway service provided by some famous service. I will list here all the confusing I am facing, in hope someone can clarify all of them. Sometimes, i come

AWS API Gateway 403 Forbidden

帅比萌擦擦* 提交于 2020-06-27 08:33:35
问题 I have created one API in AWS API Gateway. In that API I created one proxy resource with custom http endpoint. But when I access the API Gateway endpoint https://2r3g3ttr6y.execute-api.eu-east-1.amazonaws.com/production/abc/abc.html it is not working whereas the original HTTP endpoint is working perfectly fine. I get {"message":"Forbidden"} response. Here is the setting: NOTE: The above API Endpoint is just a dummy endpoint. 回答1: This thing happened to me in the past because I forget to

In kong api gateway, how to make custom url?

一世执手 提交于 2020-05-17 07:12:08
问题 So I am creating application using microservice architecture. I have few microservices and I want to configure all in kong with custom routes/url. For example: I have user service and location service and I want those routes in kong looks like this: GET http://localhost:8001/service/user/list --> http://user-service-url.com/user_list GET http://localhost:8001/service/location/122332--> http://location-service-url.com/get/122332 I have searched all over the internet and couldn't find anything.

5G 融合计费系统架构设计与实现(一)

谁都会走 提交于 2020-05-08 00:23:31
   5G 融合计费系统架构设计与实现(一)    随着5G商用临近,5G的各个子系统也在加紧研发调试,本人有兴全程参与5G中的融合计费系统(CCS)的设计、开发、联调工作。接下来将用几篇文章介绍我们在CCS实现过程遇到的挑战与架构设计的考量。相信这些宝贵的经验可以适用于更广的软件系统,免于重复地陷入软件开发的焦油坑。   5G系统由3Gpp定制统一的架构和协议规范,这也是电信行业一直以来通行的作法。不同的是,5G以前的规范3Gpp总是喜欢独树一帜,比如最出名的DCC(Diameter Credit Control)协议。虽然二进制的格式封装可以带来极佳的性能,但这个协议应用的范围也十分有限,仅限于电信行业。   5G规范从一开始,3Gpp就一改以往的风格,极力与目前主流的技术进行匹配,甚至不惜重构整个通信系统。接下来我们会听到很多熟悉的词汇,包括:微服务、注册与发现、Http2、JSON、RESTFul、容器化、微服务编排等等。没错,新5G系统在尽一切可能拥抱最新的技术潮流。正由于这个原因,在设计新的5G CCS时,我们发现以前的技术储备全都用上了。这对于一个新系统来说极大地降低了原始开发的风险,在真正动手写代码之前,我们就已经知道项目一定会成功。这点对于新系统的研发至关重要!   一切从微服务架构说起……在微服务架构兴起前,大部分应用软件系统都采用单体应用架构。如下图所示

借助腾讯云的云函数实现一个极简的API网关

偶尔善良 提交于 2020-05-03 20:24:03
借助腾讯云的云函数实现一个极简的API网关 Intro 微信小程序的域名需要备案,但是没有大陆的服务器,而且觉得备案有些繁琐,起初做的小程序都有点想要放弃了,后来了解到腾讯云的云函数,于是利用腾讯云的云函数实现了一个简单的 API 网关,通过云函数来调用真正的 API 地址,借此来绕过域名备案的问题。 云函数简介 腾讯云云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码, 是实时文件处理和数据处理等场景下理想的计算平台。 您只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。 计算资源的变迁 随着云服务的发展,计算资源高度抽象化,腾讯云提供了从物理服务器到云函数和横跨各种抽象程度的计算资源供用户选择。 黑石物理服务器:以物理机为扩展单位。用户完全拥有整台实体计算资源,安全性最好。 云服务器(CVM):以云服务器为扩展单位,虚拟化硬件设备。用户和其他租户共享物理机资源,仍可自行配置 CVM 的各项指标,相对部署和迭代更加简单。 容器:以服务为扩展单位,虚拟化操作系统。测试和生产环境完全一致,测试和部署非常轻松。 云函数:以函数为扩展单位,虚拟化运行时环境(Runtime)。是现有计算资源的最小单位,具有完全自动

分布式微服务基础概念

走远了吗. 提交于 2020-05-02 17:41:41
分布式微服务基础概念 1、什么是微服务 微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自 己的进程中,并使用轻量级机制通信,通常是HTTP API。这些服务围绕业务能力来构建, 并通过完全自动化部署机制来独立部署。这些服务使用不同的编程语言书写,以及不同数据 存储技术,并保持最低限度的集中式管理 微服务:拒绝大型单体应用,基础业务边界进行服务微化和拆分,各个服务器独立部署运行 2、概念理解(集群&分布式&节点) 分布式中的每一个节点,都可以做集群,而集群并不一定就是分布式 集群:是物理形态,一堆机器合起来,就叫集群 分布式:是工作方式,分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统。 节点:集群中的一个服务器 3、远程调用 分布式系统中,各个服务可能处于不同主机,但是服务器之间有不可避免的调用,我们也称为远程调用 4、负载均衡 **(不要让任何一台服务器太忙,也一会让他太闲)**可以负载均衡调用每一个服务器,提升网站的健壮性 常见的负裁均衡算法: **轮询:**为第一个请求选择健康池中的第一个后端服务器,然后按顺序往后依次选择,直到最后一个,然后循环。 **最小连接:**优先选择连接数最少,也就是压力最小的后端服务器,在会话较长的情况下可以考虑采取这种方式。 **散列:**根据请求源的IP 的散列(hash)

Service Mesh 和 API Gateway 关系深度探讨

半世苍凉 提交于 2020-04-30 11:42:32
前言 关于 Service Mesh 和 API Gateway 之间的关系,这个问题过去两年间经常被问起,社区也有不少文章和资料给出解答。其中不乏 Christian Posta 这样的网红给出过深度介绍。我在这里做一个资料的整理和汇总,结合个人的理解给出一些看法。另外在本文最后,介绍蚂蚁金服在 Service Mesh 和 API Gateway 融合的这个最新领域的一些开创性的实践和探索,希望给大家一个更有体感的认知。 备注1:为了节约篇幅,我们将直奔主题,假定读者对 Service Mesh 和 API Gateway 已有基本的了解。 备注2: 这边文章更关注于梳理整个脉络,内容不会展开的特别细,尤其是其他文章已经详细阐述的部分。如果您在浏览本文之后,还想更深入的了解细节,请继续阅读文章最后的参考资料和推荐阅读。 原本清晰的界限:定位和职责 首先,Service Mesh 和 API Gateway 在功能定位和承担的职责上有非常清晰的界限: Service Mesh:微服务的网络通信基础设施,负责(系统内部的)服务间的通讯; API Gateway: 负责将服务以 API 的形式暴露(给系统外部),以实现业务功能; 如上图所示: 从功能和职责上说: 位于最底层的是拆分好的原子微服务,以服务的形式提供各种能力; 在原子微服务上是(可选的)组合服务