包阅导读总结
1. 关键词:API Gateway、CDN、Full-Stack Development、ScyllaDB、Patterns
2. 总结:本文涵盖了 API Gateway 的功能及作用、CDN 的流行原因和架构、全栈开发所需技术、数据和通信流的架构模式,以及 ScyllaDB 的实用指南和赞助信息。
3. 主要内容:
– API Gateway
– 作为应用后端服务的单一入口点,管理和优化 API 流量
– 具有请求路由、负载均衡、安全、速率限制等关键功能
– CDN
– 市场规模预计增长,多家公司大力投资
– 受欢迎的原因包括提升性能、增加可用性等
– 包含多个组件,如源服务器、边缘服务器等
– Full-Stack Development
– 需精通多个领域的技术和工具
– 包括前端、后端、数据库、移动开发等
– ScyllaDB
– 提供实用指南,涵盖工作方式、部署等内容
– 架构模式
– 介绍多种模式,如 Peer-to-Peer、Pub-Sub 等
– 赞助信息
– 提供 ScyllaDB 相关赞助
– 介绍广告位预定方式
思维导图:
文章地址:https://blog.bytebytego.com/p/ep122-api-gateway-101
文章来源:blog.bytebytego.com
作者:ByteByteGo
发布时间:2024/7/27 15:30
语言:英文
总字数:1068字
预计阅读时间:5分钟
评分:81分
标签:API 网关,系统设计,架构模式,内容分发网络,全栈开发
以下为原文内容
本内容来源于用户推荐转载,旨在分享知识与观点,如有侵权请联系删除 联系邮箱 media@ilingban.com
This week’s system design refresher:
-
Session Vs JWT: The Differences You May Not Know! (Youtube video)
-
Top 9 Architectural Patterns for Data and Communication Flow
-
API Gateway 101
-
Why are Content Delivery Networks (CDN) so Popular?
-
A Roadmap for Full-Stack Development
-
SPONSOR US
Get practical tips for building low latency, high throughput apps with ScyllaDB
ScyllaDB in Action is a practical guide to everything you need to know about ScyllaDB, from your first queries to running it in a production environment. It’s written by Discord Staff Engineer Bo Ingram, author of the famous blog on how Discord migrated trillions of messages from Cassandra to ScyllaDB.
This early access preview covers:
-
Working with ScyllaDB vs. working with other databases
-
How ScyllaDB runs in practice
-
What matters most in real-world deployments
-
How to launch your first cluster, add tables, and run queries
-
How to perform effective data modeling in ScyllaDB
Free Book Download
-
Peer-to-Peer
The Peer-to-Peer pattern involves direct communication between two components without the need for a central coordinator. -
API Gateway
An API Gateway acts as a single entry point for all client requests to the backend services of an application. -
Pub-Sub
The Pub-Sub pattern decouples the producers of messages (publishers) from the consumers of messages (subscribers) through a message broker.
-
Request-Response
This is one of the most fundamental integration patterns, where a client sends a request to a server and waits for a response. -
Event Sourcing
Event Sourcing involves storing the state changes of an application as a sequence of events. -
ETL
ETL is a data integration pattern used to gather data from multiple sources, transform it into a structured format, and load it into a destination database. -
Batching
Batching involves accumulating data over a period or until a certain threshold is met before processing it as a single group. -
Streaming Processing
Streaming Processing allows for the continuous ingestion, processing, and analysis of data streams in real-time. -
Orchestration
Orchestration involves a central coordinator (an orchestrator) managing the interactions between distributed components or services to achieve a workflow or business process.
If you’re not a paid subscriber, here’s what you missed.
-
“Tidying” Code
-
A Crash Course on Relational Database Design
-
A Crash Course on Distributed Systems
-
A Crash Course in Database Scaling Strategies
-
A Crash Course in Database Sharding
To receive all the full articles and support ByteByteGo, consider subscribing:
An API gateway is a server that acts as an API front-end, receiving API requests, enforcing throttling and security policies, passing requests to the back-end service, and then returning the appropriate result to the client.
It is essentially a middleman between the client and the server, managing and optimizing API traffic.
Key Functions of an API Gateway:
-
Request Routing: Directs incoming API requests to the appropriate backend service.
-
Load Balancing: Distributes requests across multiple servers to ensure no single server is overwhelmed.
-
Security: Implements security measures like authentication, authorization, and data encryption.
-
Rate Limiting and Throttling: Controls the number of requests a client can make within a certain period.
-
API Composition: Combines multiple backend API requests into a single frontend request to optimize performance.
-
Caching: Stores responses temporarily to reduce the need for repeated processing.
The CDN market is expected to reach nearly $38 billion by 2028. Companies like Akamai, Cloudflare, and Amazon CloudFront are investing heavily in this area.
There are several factors behind the popularity of CDNs
-
The Impact of CDN
CDNs improve performance, increase availability, and enhance bandwidth costs. With the use of CDN, there is a significant reduction in latency. -
CDN Request Flow
After DNS resolution, the user’s device sends the content request to the CDN edge server.
The edge server checks its local cache for the content. If found, the edge server serves the content to the user.
If not found, the edge server forwards the request to the origin server.
After receiving the content from the origin server, the edge server stores a copy in its cache and delivers it to the user. -
The Architecture of CDN
There are multiple components in a CDN’s architecture:
Origin Server: This is the primary source of content.
Edge Servers: They cache and server content to the users and are distributed across the world.
DNS: The DNS resolves the domain name to the IP address of the nearest edge server
Control Plane: Responsible for configuring and managing the edge servers. -
CDN Request Routing
GSLB: Routes user requests to the server based on factors like geographic proximity, server load, network conditions
Anycast DNS: Allows multiple servers to share the same IP address. It helps route incoming traffic to the nearest data center.
Internet Exchange Points: CDN providers establish a presence at major IXPs, allowing them to exchange traffic directly with ISPs and other networks. -
Best Practices
Some key best practices to optimize CDN performance are related to security aspects, caching optimizations, and content optimizations.
Over to you: What do you think makes CDNs popular?
A full-stack developer needs to be proficient in a wide range of technologies and tools across different areas of software development. Here’s a comprehensive look at the technical stacks required for a full-stack developer.
-
Frontend Development
Frontend development involves creating the user interface and user experience of a web application. -
Backend Development
Backend development involves managing the server-side logic, databases, and integration of various services. -
Database Development
Database development involves managing data storage, retrieval, and manipulation. -
Mobile Development
Mobile development involves creating applications for mobile devices. -
Cloud Computing
Cloud computing involves deploying and managing applications on cloud platforms. -
UI/UX Design
UI/UX design involves designing the user interface and experience of applications. -
Infrastructure and DevOps
Infrastructure and DevOps involve managing the infrastructure, deployment, and continuous integration/continuous delivery (CI/CD) of applications.
Get your product in front of more than 1,000,000 tech professionals.
Our newsletter puts your products and services directly in front of an audience that matters – hundreds of thousands of engineering leaders and senior engineers – who have influence over significant tech decisions and big purchases.
Space Fills Up Fast – Reserve Today
Ad spots typically sell out about 4 weeks in advance. To ensure your ad reaches this influential audience, reserve your space now by emailing sponsorship@bytebytego.com