バックエンド開発用語集(推奨)

バックエンド開発用語集(推奨)

善行を望む者はまずその器を利し、士が義を宣べ求める者はまずその書を読む。インターネット技術分野の目のりんごとして、バックエンド開発は常に開発者の追求のピークとなっています。

最后更新 2022/03/31 11:31
云加社区
预计阅读 18 分钟
分类
共有する。
标签
バックエンドの

导语 工欲善其事,必先利其器;士欲宣其义,必先读其书。后台开发作为互联网技术领域的掌上明珠,一直都是开发者们的追逐的高峰。本文将从后台开发所涉及到的技术术语出发,基于系统开发、架构设计、网络通信等几个方面让大家对后台来发有一个清晰的了解,讲解全面易懂。(作者:willlv)

システム開発は

  1. 高結合/低結合

高内聚指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。模块的内聚反映模块内部联系的紧密程度。

模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。一个完整的系统,模块与模块之间,尽可能的使其独立存在。通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。

  1. 過剰な設計。

過剰設計とは、将来志向の設計や比較的単純なことを複雑にし、モジュール性、スケーラビリティ、デザインパターンなどを過度に追求し、システムに不必要な複雑さを追加することです。

  1. 早期最適化の

時期尚早とは、開発プロセスの初期段階ではなく、需要の将来の変化の方向性をまだ把握していない時期を指します。最適化によって新しい要件をうまく実装できなくなるだけでなく、最適化の期待についての推測が間違っており、実際にはコードを複雑にする以外何も得られない可能性があります。

正确的方法是,先有质量地实现你的需求,写够testcase,然后做profile去找到性能的瓶颈,这个时候才做优化。

  1. リファクタリング(Refactoring)

リファクタリング(Refactoring)はプログラムコードを調整することでソフトウェアの品質、性能を改善し、そのプログラムの設計パターンとアーキテクチャをより合理的にし、ソフトウェアの拡張性と保守性を向上させることである。

  1. 壊れた窓の影響

割れ窓理論とも呼ばれ、割れ窓効果Broken windows theoryは犯罪学の一つの理論である。この理論では、環境中の望ましくない現象が放置されると、模倣を誘発し、さらに悪化するという。例えば、壊れた窓が少しある建物では、それらの窓が修理されなければ、破壊者がさらに多くの窓を破壊する可能性があります。最終的には建物に侵入し、無人であればそこに定住するか、火を放つこともある。

应用在软件工程上就是,一定不能让系统代码或者架构设计的隐患有冒头的机会,否则随着时间的推移,隐患会越来越重。反之,一个本身优质的系统,会让人不由自主的写出优质的代码。

  1. 相互不信の原則

プログラムの上流と下流のリンク全体を指し、各ポイントは絶対的な信頼性を保証することはできず、マシンネットワーク、サービス自体、依存環境、入力と要求を含む、任意のポイントはいつでも障害や予測不可能な動作を引き起こす可能性があります。

  1. 持続性Persistence

永続性は、プログラムデータを一時状態と永続状態に変換するメカニズムです。一般的に言えば、一時データ(メモリ内のデータなど、永続的なデータ)を永続的なデータ(データベースやローカルディスクに永続的に保存するなど、永続的なデータ)に変換することです。

  1. クリティカルゾーンの定義

クリティカルセクションは、複数のスレッドが使用できる共通のリソースまたは共有データを表しますが、一度に1つのスレッドしか使用できず、クリティカルセクションのリソースが占有されると、他のスレッドがリソースを使用するのを待たなければなりません。

  1. ブロッキング/非ブロッキング

ブロッキングとノンブロッキングは通常、マルチスレッド間の相互作用を記述します。例えば、あるスレッドがクリティカルセクションのリソースを占有すると、そのリソースを必要とする他のすべてのスレッドはクリティカルセクションで待機しなければならず、待機するとスレッドがハングアップします。これが閉塞です。この時点で、リソースを占有しているスレッドがリソースを解放しようとしない場合、このクリティカルゾーンでブロックされている他のスレッドは動作しません。ノンブロッキングは、複数のスレッドが同時にクリティカルゾーンに入ることを可能にする。

  1. Synchronous/非同期

通常、同期と非同期は関数/メソッド呼び出しの側面を指します。

同期とは、関数呼び出しが発行されたときに、結果が得られないまで呼び出しが返されないことです。非同期呼び出しは瞬時に戻りますが、非同期呼び出しは瞬時に戻り、タスクが完了したことを意味するものではなく、バックグラウンドでスレッドを起動してタスクを継続し、タスクが完了した後にコールバックまたは他の方法で呼び出し元に通知します。

  1. 並行性/並行性
  • 并行(parallel)

同時に、複数のプロセッサで複数の命令が同時に実行されます。ミクロでもマクロでも、両方が一緒に実行されます。

  • 并发(concurrency)

同時に実行できる命令は1つだけですが、複数のプロセス命令は高速にローテーションされ、マクロレベルでは複数のプロセスが同時に実行される効果がありますが、ミクロレベルでは同時に実行されませんが、時間をいくつかのセグメントに分割して、複数のプロセスが高速に交互に実行できるようにします。

建築設計の構造

  1. 高同時性High Concurrency

分散システムの出現により、高並行性High Concurrencyとは、システムが多くの要求を同時に並列に処理できることを保証する設計を指すのが普通である。一般的に言えば、高並列性とは、一度に多くのユーザーが同じAPIまたはURLアドレスに同時にアクセスすることを意味します。これは、アクティブユーザー数が多く、ユーザーが集中しているビジネスシナリオでよく発生します。

  1. 高可用性(High Availability)

高可用性HA High Availabilityは、分散システムアーキテクチャ設計において考慮すべき要素の1つです。通常、サービスの高可用性を維持しながら、ダウンタイムを短縮するように、システムが特別に設計されていることを指します。

  1. 読み書きの分離。

データベース製品の安定性を確保するために、多くのデータベースはデュアルホットスタンバイ機能を備えています。すなわち、1台目のデータベースサーバは、外部に追加、削除、変更業務を提供する本番サーバであり、2台目のデータベースサーバは、主に読み取り操作を行います。

  1. コールド/ホット·スタンバイ
  • 冷备:两个服务器,一台运行,一台不运行作为备份。这样一旦运行的服务器宕机,就把备份的服务器运行起来。冷备的方案比较容易实现,但冷备的缺点是主机出现故障时备机不会自动接管,需要主动切换服务。

  • 热备:即是通常所说的active/standby方式,服务器数据包括数据库数据同时往两台或多台服务器写。当 active 服务器出现故障的时候,通过软件诊测(一般是通过心跳诊断)将 standby 机器激活,保证应用在短时间内完全恢复正常使用。当一台服务器宕机后,自动切换到另一台备用机使用。

  1. 地上での生活

异地多活一般是指在不同城市建立独立的数据中心,“活”是相对于冷备份而言的,冷备份是备份全量数据,平时不支撑业务需求,只有在主机房出现故障的时候才会切换到备用机房,而多活,是指这些机房在日常的业务中也需要走流量,做业务支撑。

  1. ロードバランシングBalance

ロードバランシングは、複数のサーバにトラフィックを分散させるロードバランシングサービスです。アプリケーションの外部サービス能力を複数のインスタンス間で自動的に分散することができ、単一障害点を排除することによってアプリケーションシステムの可用性を向上させ、より高いレベルのアプリケーションフォールトトレランス能力を実現し、アプリケーショントラフィックを分散するために必要なロードバランシング容量をシームレスに提供し、効率的で安定した安全なサービスを提供します。

  1. 動的分離と分離

動的分離とは、Webサーバアーキテクチャにおいて、静的ページと動的ページ、または静的コンテンツインタフェースと動的コンテンツインタフェースを異なるシステムアクセスから分離し、サービス全体のアクセス性能と保守性を向上させるアーキテクチャ設計方法を指します。

  1. クラスタリング

単一サーバーの同時負荷容量は常に限られており、単一サーバーの処理能力がパフォーマンスのボトルネックに達すると、複数のサーバーがサービスを提供するために組み合わせられ、この組み合わせはクラスタと呼ばれ、各サーバーはクラスタの“ノード”と呼ばれ、各ノードは同じサービスを提供することができるため、システム全体の同時処理能力を倍増させます。

  1. Distributed

分散システムは、ビジネス機能に応じて完全なシステムを多くの独立したサブシステムに分割することであり、各サブシステムは“サービス”と呼ばれ、分散システムは要求をソートして異なるサブシステムに分散し、異なるサービスが異なる要求を処理するようにします。分散システムでは、サブシステムは独立して動作し、ネットワーク通信を介して接続され、データの相互運用とサービスの組み合わせを実現します。

  1. CAP理論とは

CAP理論とは、分散システムにおいて、Consistency(一貫性)、Availability(可用性)、Partition Tolerance(パーティションのフォールトトレランス)が同時に成立しないことをいう。

  • 一貫性:分散システム内のすべてのデータバックアップが同じ時点で同じか、同じ状態であることを要求します。

  • 可用性:システムクラスタの一部のノードがダウンした後も、システムはユーザーの要求に正しく応答することができます。

  • パーティションフォールトトレランス:システムはノード間のネットワーク通信の障害を許容することができる。

简单的来说,在一个分布式系统中,最多能支持上面的两种属性。但显然既然是分布式注定我们是必然要进行分区,既然分区,我们就无法百分百避免分区的错误。因此,我们只能在一致性和可用性去作出选择。

分散システムでは、我々はしばしば可用性を追求し、その重要性は一貫性よりも高いので、高可用性を達成する方法は、ここで別の理論、すなわちBASE理論があり、CAP理論をさらに拡張します。

  1. ベース理論の基礎

ベース理論によると

  • 基本使用可#ベーション#(Basic Av)

  • ソフト·ステート

  • 最終的な一貫性(Eventually consistent)

BASE 理论是对 CAP 中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

  1. 水平方向への拡張/垂直方向への拡張
  • 水平扩展 Scale Out 通过增加更多的服务器或者程序实例来分散负载,从而提升存储能力和计算能力。

  • 垂直扩展 Scale Up 提升单机处理能力。

垂直方向に拡張する方法は2つあります。

(1)增强单机硬件性能,例如:增加 CPU 核数如 32 核,升级更好的网卡如万兆,升级更好的硬盘如 SSD,扩充硬盘容量如 2T,扩充系统内存如 128G;

(2)提升单机软件或者架构性能,例如:使用 Cache 来减少 IO 次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;

  1. 並列拡張の略。

水平拡張と同じです。クラスタサーバ内のノードはすべてパラレルピアであり、スケールアップが必要な場合は、ノードを追加することでクラスタのサービス能力を向上させることができます。一般的に、サーバー内のクリティカルパス(サーバー内のログイン、支払い、コアビジネスロジックなど)は、実行時の動的並列スケーリングをサポートする必要があります。

  1. 柔軟性の拡張

展開クラスタの動的なオンラインスケーリングを指します。実際のビジネス環境に応じて、システム容量の増加、システム性能の向上、システムの信頼性の向上、またはこれら3つの目標を同時に達成するために、特定のポリシーに従って、より多くのノード(ストレージノード、コンピューティングノード、ネットワークノードを含む)を自動的に追加することができます。

  1. ステータス同期/フレーム同期
  • ステート同期:ステート同期とは、サーバーがゲームロジック全体を計算し、これらの計算結果をブロードキャストする責任があり、クライアントはプレイヤーのアクションを送信し、受信したゲーム結果を表示する責任があることを意味する。

特征:状态同步安全性高,逻辑更新方便,断线重连快,但是开发效率较低,网络流量随游戏复杂度增加,服务器需要承载更大压力。

  • 帧同步:服务端只转发消息,不做任何逻辑处理,各客户端每秒帧数一致,在每一帧都处理同样的输入数据。

特徴:フレーム同期は、システムが同じ入力の下で同じ出力を持つことを保証する必要があります。フレーム同期開発効率が高く、トラフィック消費量が低く安定しており、サーバーへの圧力は非常に小さい。しかし、ネットワーク要件が高く、接続時間が長く、クライアント計算圧力が大きい。

ネットワーク通信

  1. コネクションプール

接続バッファプールを事前に確立し、接続の使用、割り当て、管理ポリシーを提供し、接続プール内の接続を効率的かつ安全に再利用することができ、接続の頻繁な確立と閉鎖のオーバーヘッドを回避する。

  1. 切断されたリンク

ネットワークの変動により、ユーザは断続的にサーバから切断され、ネットワークが復旧した後、サーバはユーザを最後の切断時の状態とデータに接続しようとします。

  1. 会話の維持

セッション保持は、ロードバランサ上のメカニズムであり、クライアントとサーバ間の相互作用の関連性を認識し、関連する一連のアクセス要求が1台のマシンに分散されることを保証しながら、ロードバランシングを行う。人間の言葉で言えば、1つのセッション中に複数のリクエストが1つのマシンに送信されます。

  1. ロングコネクション/ショートコネクション

通常はTCPのロングコネクションとショートコネクションを指します。長い接続は、TCP接続を確立した後、この接続を維持し、通常、対応する存在を確認するために互いにハートビートを送信し、中間は複数のビジネスデータ転送を行い、一般的にアクティブに接続を切断しません。ショートコネクションは通常、コネクションを確立し、トランザクション(httpリクエストなど)を実行した後、コネクションを閉じることを意味します。

  1. トラフィック制御/輻輳制御
  • 流量控制 防止发送方发的太快,耗尽接收方的资源,从而使接收方来不及处理。

  • 拥塞控制防止发送方发的太快,使得网络来不及处理产生拥塞,进而引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿。

  1. サイジング·グループ効果

クラスタリング効果は、雷クラスタリング効果とも呼ばれますが、簡単に言えば、クラスタリング現象は、複数のプロセス(マルチスレッド)が同時に同じイベントをブロックして待っているとき(スリープ状態)、待っているイベントが発生すると、彼は待っているすべてのプロセス(またはスレッド)を目覚めさせますが、最終的には1つのプロセス(スレッド)だけがこのイベントを処理するためにこの時間の“制御”を得ることができます。他のプロセス(スレッド)が“制御”を得ることに失敗し、スリープ状態に戻ることしかできません。この現象とパフォーマンスの浪費は、恐怖と呼ばれます。

  1. NAT

NAT(Network Address Translation,Network Address Translation)は、IPメッセージのヘッダを置き換えるアドレス情報です。NATは通常、組織のネットワークの出口に展開され、内部ネットワークIPアドレスを出口IPアドレスに置き換えることで、パブリックアクセス性と上位層プロトコル接続性を提供します。

障害の例外

  1. ダウン中

ダウンタイムは、一般的にコンピュータのホストコンピュータの予期せぬ障害とクラッシュを指す。第二に、データベースなどの一部のサーバのデッドロックもダウンタイムと呼ばれ、一部のサーバの一部のサービスがダウンします。

  1. coredump

プログラムが異常に中断された場合、OSはプログラムの現在の状態をcoredunmpファイルに保存します。通常coredumpファイルにはプログラム実行時のメモリ,レジスタ状態,スタックポインタ,メモリ管理情報などが含まれる.

  1. キャッシュの貫通Cache Pertronce/ブレークダウンBreak down/アバランシェAvalanche
  • キャッシュ浸透:キャッシュ浸透は、キャッシュがデータベースからクエリする必要があるときにヒットしないため、存在しないデータをクエリすることを指し、データを見つけることができないキャッシュに書き込まれないため、データベースにクエリするたびに存在しないデータが要求され、データベースに圧力がかかります。

  • キャッシュブレークダウン:キャッシュブレークダウンとは、ホットスポットキーが特定の時点で期限切れになり、その時点でこのキーに対する多数の同時リクエストがあり、多数のリクエストがdbにヒットすることを指します。

  • キャッシュアバランシェ:キャッシュアバランシェは、キャッシュ内の大量のデータを指し、クエリデータは膨大であり、データベースに過度のストレスを引き起こし、マシンをダウンさせます。

  • キャッシュブレークダウンとは異なり、ホットキーの故障であるホットスポットであり、キャッシュアバランシェは多数のキーの同時故障である。

  1. 500/501/502/503/504/505
  • 500 Internal Server Error:内部服务错误,一般是服务器遇到意外情况,而无法完成请求。可能原因: 1、程序错误,例如:ASP 或者 PHP 语法错误;2、高并发导致,系统资源限制不能打开过多的文件所致。

  • 501Not implemented:服务器不理解或不支持请求的 HTTP 请求。

  • 502Bad Gateway:WEB 服务器故障,可能是由于程序进程不够,请求的 php-fpm 已经执行,但是由于某种原因而没有执行完毕,最终导致 php-fpm 进程终止。可能原因:1、Nginx 服务器,php-cgi 进程数不够用;2、PHP 执行时间过长;3、php-cgi 进程死掉;

  • 503Service Unavailable:服务器目前无法使用。系统维护服务器暂时的无法处理客户端的请求,这只是暂时状态。可以联系下服务器提供商。

  • 504Gateway Timeout:服务器 504 错误表示超时,是指客户端所发出的请求没有到达网关,请求没有到可以执行的 php-fpm,一般是与 nginx.conf 的配置有关。

  • 505HTTP Version Not Supported:服务器不支持请求中所用的 HTTP 协议版本。(HTTP 版本不受支持)

500エラーが言語エラーである可能性があることを除いて、残りのエラーはおそらくサーバーまたはサーバー構成の問題として理解できます。

  1. メモリーオーバーフロー/メモリー·リーク
  • 内存溢出:内存溢出(Out Of Memory)指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储 int 类型数据的存储空间,但是你却存储 long 类型的数据,那么结果就是内存不够用,此时就会报错 OOM,即所谓的内存溢出。

  • 内存泄漏:内存泄漏(Memory Leak)指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。

  1. ハンドルの漏れ

ハンドルリークとは、プロセスがシステムファイルを呼び出した後に開いているファイルハンドルを解放しないことです。一般的にハンドル漏洩後の現象は、マシンが遅くなり、CPUが急増し、ハンドル漏洩が発生したCGIやサーバのCPU 使用率が増加することです。

  1. デッドロックデッドロック

デッドロックとは、実行中の2つ以上のスレッドを指し、競合するリソースまたは相互通信によるブロッキング現象によって引き起こされるため、外部の力がなければ、それらはブロッキング状態で抑制され、進行することができない、この時点でシステムはデッドロック状態にあるか、システムはデッドロックを生成した。

  1. ソフト割り込み/ハード割り込み。
  • 硬中断:我们通常所说的中断指的是硬中断(hardirq)。

システムに接続されている周辺機器ネットワークカード、ハードディスクなどによって自動的に生成されます。

主にオペレーティングシステム周辺機器の状態の変更を通知するために使用されます。

  • 软中断:1、通常是硬中断服务程序对内核的中断;2、为了满足实时系统的要求,中断处理应该是越快越好。

linuxはこの機能を実現するために、割込みが発生すると、短時間でできる作業をハード割込みで処理し、イベントを処理する長い作業を割込みの後に置いて行う、すなわちソフト割込みで行う。

  1. バリ取り

ある時点で、サーバーパフォーマンス指標(トラフィック、ディスクIO、CPU 使用率など)は、その時点とその時点の期間よりもはるかに大きくなります。バリの出現は、サーバーリソースの不均一で不十分な利用を表し、他の深刻な問題を引き起こしやすい。

  1. リプレイアタック

攻撃者は、システムをだます目的を達成するために、宛先ホストが受信したパケットを送信します。これは、主に認証プロセスに使用され、認証の正しさを損ないます。これは、有効なデータ送信を悪意的または詐欺的に継続的に繰り返す攻撃の一種であり、リプレイ攻撃は、発信者またはそのデータを傍受して再送信する敵によって行われる可能性があります。攻撃者は、ネットワークリスニングなどを使用して認証資格情報を盗み、認証サーバに再送信します。

  1. ネット島の島

ネットワークアイランドとは、クラスタ環境において、一部のマシンがクラスタ全体とネットワーク接続を失い、小さなクラスタに分割され、データの矛盾が発生する状態を指します。

  1. データの傾斜

クラスタシステムでは、一般的なキャッシュは分散されており、異なるノードがキャッシュされたデータの範囲を担当する。キャッシュデータの分散が不十分であるため、大量のキャッシュデータが1つまたは複数のサービスノードに集中してしまいます。一般的に、データスキューは負荷分散実装の効果が悪いために発生します。

  1. 脳のひび割れ

ブレインクラッキングとは、クラスタシステムにおいて、一部のノード間のネットワークが到達できないことによって引き起こされるシステムの分裂を指し、異なる分裂した小さなクラスタはそれぞれの状態に応じてサービスを提供し、元のクラスタは同時に一貫性のない応答を持ち、ノード間のリソースの競合、システムの混乱、データの破損を引き起こします。

警報の監視

  1. サービスの監視

サービス監視の主な目的は、サービスの問題またはその差し迫った問題を正確かつ迅速に検出し、影響を低減することです。サービス監視には一般的に様々な手段があり、レベルによって分けることができる。

  • システム層(CPU、ネットワーク状態、IO、マシン負荷など)

  • アプリケーション層(プロセスの状態、エラー·ログ、スループットなど)

  • ビジネス层(サービス/インタフェースのエラーコード、応答)

  • ユーザー層(ユーザー行動、世論監視、フロントエンド埋め込み)

  1. 全リンクの監視
  • サービスダイヤルテスト:サービスダイヤルテストは、主に可用性と応答時間を測定するために、ターゲットサービスのダイヤルテストノードを通じて、サービス(アプリケーション)の可用性を検出する監視方法であり、ダイヤルテストノードは通常、複数のオフサイトを持っています。
  • ノード検出:ノード検出は、主に応答時間、パケットロス率、測定するためのホップ数を通じて、異なるコンピュータルーム(データセンター)ノード間のネットワークの可用性と透明性監視方法を検出して追跡するために使用され、検出方法は一般的にping、MTRまたはその他のプライベートプロトコルです。
  • アラームフィルタリング:いくつかの予測可能なアラームをフィルタリングし、少量のクローラーアクセスによって引き起こされるHTTPレスポンス500エラー、業務システムのカスタム異常情報など、アラーム統計データに入らない。
  • アラームの再確認:アラームが担当者に通知された場合、アラームが再開されるまで同じアラームを受信し続けません。
  • アラーム抑制:システムのジッタによる干渉を低減するためには、サーバーの瞬間的な高負荷などの抑制も必要です。これは正常である可能性があり、一定期間の持続的な高負荷のみに注意を払う必要があります。
  • アラーム復旧:開発/保守担当者は、アラーム通知だけでなく、障害除去アラームが正常に戻る通知も受け取る必要があります。
  • アラートマージ:マイクロサービスクラスタが同時に複数のサブサービスの過負荷アラートを発生させるなど、同時に発生した複数の同じアラートをマージする必要があります。
  • アラーム収束:特定のアラームが発生すると、しばしば他のアラームが発生します。この時点で、根本原因のみがアラートを生成し、他のアラートはサブアラートに収束して通知を送信できます。クラウドサーバーのCPU負荷アラートは、通常、ホストするすべてのシステムの可用性アラートを伴います。
  • 障害自己治癒:リアルタイムアラート検出、事前診断分析、自動障害復旧、およびプロセス全体のクローズドループを実現するために周辺システムを開きます。

サービス·ガバナンス

  1. マイクロサービスは

マイクロサービスアーキテクチャは、単一のアプリケーションを小さなサービスのセットに分割し、サービスが互いに調整して協力し、ユーザーに最終的な価値を提供するアーキテクチャパターンである。各サービスは独立したプロセスで実行され、サービスとサービスは軽量の通信メカニズムを採用して互いに通信します(通常はHTTPベースのRestful API)。各サービスは特定のビジネスを中心に構築されており、本番環境、本番環境などに個別にデプロイできます。

  1. サービス発見サービス

サービスディスカバリとは、レジストリを使用して分散システム内のすべてのサービスに関する情報を記録し、他のサービスが登録されたサービスをすばやく見つけることを意味する。サービスディスカバリは、大規模なSOAおよびマイクロサービスアーキテクチャをサポートするコアモジュールであり、可能な限り高可用性を確保する必要があります。

  1. フロークリッピング峰

抽選や秒殺システムの要求監視曲線を見ると、そのようなシステムは活動期間中にピークがあることがわかりますが、活動が開かれていないときは、システムの要求量とマシンの負荷は一般的に比較的安定しています。マシンリソースを節約するために、短時間のピーク要求をサポートするために常に最大のリソース容量を提供することはできません。そのため、瞬時の要求ピークを弱め、ピーク要求下でシステムスループットを制御可能にする技術的手段が必要です。ピークはバリ除去にも使用でき、サーバーリソースのバランスと完全な利用を実現します。一般的なピークカット戦略には、キュー、周波数制限、階層フィルタリング、マルチレベルキャッシュなどがあります。

  1. 互換性のあるバージョン

バージョンアップグレードの過程では、新しいデータ構造が古いデータを理解して解析できるかどうか、新しく変更されたプロトコルが古いプロトコルを理解し、期待される適切な処理を行うかどうかを考慮する必要があります。これは、サービス設計プロセス中にバージョン互換性が必要です。

  1. 過負荷保護。

過負荷とは、現在の負荷がシステムの最大処理能力を超えていることを意味し、過負荷の出現は、一部のサービスが利用できなくなり、不適切な処理は、サービスが完全に利用できなくなり、雪崩につながる可能性があります。過負荷保護は、サービスが完全に利用できなくなることを防ぐために、この異常な状況に対する対策です。

  1. サービスの破壊

サービス溶断の役割は、私たちの家庭のヒューズに似ています。サービスが利用できない場合や応答タイムアウトの場合、システム全体の雪崩を防ぐために、一時的にサービスへの呼び出しを停止します。

  1. サービスのダウングレード

サービスの劣化は、サーバーのストレスが急増した場合に、現在のビジネス状況とトラフィックに応じて、一部のサービスとページをポリシー的に劣化させ、サーバーリソースを解放してコアタスクを正常に実行することです。ダウングレードは、異なるレベルを指定し、異なる例外レベルに直面して異なる処理を実行する傾向がある。

  • サービスモードによっては、サービスを拒否したり、遅延したり、時にはランダムにサービスを提供したりできます。

  • サービスの範囲に応じて、機能を切断したり、モジュールを切断したりできます。

总之服务降级需要根据不同的业务需求采用不同的降级策略。主要的目的就是服务虽然有损但是总比没有好

  1. 解散VS降格。
  • 相同点:目标一致,都是从可用性和可靠性出发,为了防止系统崩溃;用户体验类似,最终都让用户体验到的是某些功能暂时不可用;

  • 不同点:触发原因不同,服务熔断一般是某个服务(下游服务)故障引起,而服务降级一般是从整体负荷考虑;

  1. サービス制限付きフロー

制限フローは、サービス劣化の一種と考えることができ、制限フローは、システムの入出力トラフィックがシステムを保護する目的を達成していることを制限することです。一般的に、システムのスループットを測定することができ、システムの安定した動作を確保するために、制限するしきい値に達すると、トラフィックを制限し、トラフィック制限の目的を達成するためにいくつかの措置を講じる必要があります。例えば,遅延処理,拒否処理,部分拒否処理など.

  1. 障害のシールド

障害のあるマシンをクラスタから削除し、新しいリクエストが障害のあるマシンに配信されないようにします。

試験方法は

  1. ブラックボックステスト/ホワイトボックステスト

黑盒测试不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否满足需求规格说明书。一般会有一个输入值,一个输入值,和期望值做比较。

白盒测试主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构,测试手段有:语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖

  1. ユニット/統合/システム/受入テスト

ソフトウェアテストは、単体テスト、統合テスト、システムテスト、受け入れテストの4つの段階に分けられます。

  • 单元测试:单元测试是对软件中的最小可验证单元进行检查和验证,如一个模块、一个过程、一个方法等。单元测试粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。

  • 集成测试:集成测试也叫做组装测试,通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。

  • 系统测试:系统测试时将经过集成测试的软件,作为计算机系统的一部分,与系统中其他部分结合起来,在实际运行环境下进行一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。

  • 验收测试:验收测试也称交付测试,是针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行

  1. 回帰テストのテスト

欠陥が発見されて修正されたり、ソフトウェアに新しい機能が追加されたりしたら、再テストします。発見された欠陥が修正され、変更が新たな問題を引き起こさなかったかどうかを確認する。

  1. 煙の検査

この用語はハードウェア業界に由来する。ハードウェアまたはハードウェアコンポーネントに変更または修復を加えた後、デバイスに直接電源を入れます。煙がなければ、コンポーネントはテストに合格します。ソフトウェアにおいて、“スモークテスト”という用語は、コードの変更を製品のソースツリーに埋め込む前に検証するプロセスを指します。

発煙テストは、ソフトウェア開発プロセスにおけるソフトウェアバージョンパッケージの迅速な基本機能検証戦略であり、ソフトウェアバージョンパッケージの詳細なテストではなく、ソフトウェアの基本機能を検証する手段です。

例えば、ログインシステムの煙テストでは、正しいユーザー名、パスワードを入力し、ログインのコア機能ポイントを検証するだけで、入力ボックス、特殊文字などについては、煙テスト後に実行することができます。

  1. パフォーマンステスト

パフォーマンステストは、自動テストツールを使用して、さまざまな正常、ピーク、および異常負荷条件をシミュレートし、システムのさまざまな性能指標をテストします。負荷試験とストレステストはどちらも性能試験であり、両方を組み合わせることができます。

負荷テストを通じて、様々な作業負荷下でのシステムの性能を決定し、目標は負荷が徐々に増加したときのシステムの性能指標の変化をテストすることです。

ストレステストは、システムのボトルネックまたは許容できないパフォーマンスポイントを特定することによって、システムが提供できる最大のサービスレベルを達成するテストです。

  1. ベンチマーク試験

ベンチマークテスト(Benchmark)も性能テスト方式であり、機器のハードウェアの最高実行性能、及びソフトウェア最適化の性能向上効果を測定し、同時にあるコードのCPU或いはメモリ効率問題を識別することができる。多くの開発者はベンチマークテストを用いて異なる並行モードをテストし、あるいはベンチマークテストを用いて作業プールの数を補助して構成し、システムのスループットを最大化できることを保証する。

  1. A/Bテスト

A/Bテストは、2つ以上のランダムに割り当てられた類似した数のサンプルを比較するもので、実験群と対照群の実験結果が目標指標において統計的に有意であれば、実験群の機能が望ましい結果につながることを示し、仮説の検証や製品の決定に役立ちます。

  1. コードカバレッジテスト

コードカバレッジ(Code coverage)はソフトウェアテストにおける一種のメトリックであり、プログラム中のソースコードがテストされる割合と程度を記述し、得られた割合をコードカバレッジ率と呼ぶ。単体テストを行う際、コードカバレッジはテストの品質を測定する指標としてよく使用されます。コードカバレッジはテストタスクの完了を測定するために使用されます。例えば、コードカバレッジは80%または90%でなければなりません。そのため、テスターはケースカバレッジコードの設計に苦労しました。

リリースの展開

  1. DEV/PRO/FAT/UAT
  • DEV(Development environment):开发环境,用于开发人员调试使用,版本变化较大。

  • FAT(Feature Acceptance Test environment):功能验收测试环境,用于软件测试人员测试使用。

  • UAT(User Acceptance Test environment):用户验收测试环境,用于生产环境下的功能验证,可作为预发布环境。

  • PRO(Production environment):生产环境,正式线上环境。

  1. グレースケールリリース

グレースケールリリースは、アップグレードバージョンのプロセスでは、パーティション制御、ホワイトリスト制御などを通じて、ユーザーの一部が最初に製品機能をアップグレードし、残りのユーザーは変更されません。一定期間後に製品機能をアップグレードするユーザーがフィードバックの問題を持っていない場合、徐々に範囲を拡大し、最終的にはすべてのユーザーに新しいバージョンの機能を開放し、グレースケールリリースはシステム全体の安定性を確保することができ、初期グレースケールで問題を発見し、修正することができます。

  1. ロールバックRback

プログラムまたはデータの処理エラーが発生した場合、プログラムまたはデータを最後に正常な状態(または最後の安定バージョン)に復元する動作を指します。

Keep Exploring

延伸阅读

更多文章
近期更新 2026/05/01

このサイトはついにAIで再構築されました。

Razor Pages、SEO、違法なキーワード検索フィルタリング、ロード最適化、コンテンツのホットアップデート、最小限のテストセット、ウェブストアの使用方法など、Code WFをAIでリファクタリングしました。

继续阅读
近期更新 2026/04/22

バージョン別の. NETサポート状況(250 7 0 7更新)

仮想マシンとテストマシンを使用して、各バージョンのオペレーティングシステムの. NETサポートをテストします。オペレーティングシステムのインストール後、対応するランタイムを測定し、スターダストエージェントをパスとして実行できます。

继续阅读