5-31面接の準備

春の雲
ユーレカを
設定ファイルのサービスレジストリのポート番号と名前とアドレスを設定し、
その後、メインの起動クラスにコメント@EnableEurekaClent構成と同様のセンターを追加する

リボン
、顧客のブラウザが背景に要求を行うとき、ある時、クライアント・ロード・バランシングユーレカ・サーバへの最後は、サーバーが利用可能なサービス登録情報のリストを読み込み、ポリシーセット(つまり、デフォルトで設定されていない)、サーバにリクエストを送信する決定をロードバランシングによります。
マスターブート方法で、新しいクラスでは、戻り値のRestTemplateオブジェクトおよびラベルは、開口部@LoadBalancedラベルによる負荷分散機能ながら注入法容器を@Beanます。

ふりは、
最初の依存性を追加
し、メインふりClent起動クラスの走査のオープン@EnableFeignClientsを追加ロード処理は、
サービス名と注釈@FeignClients URLによって指定されたインターフェイス上のインターフェイスとふりを定義
噴射コントローラインタフェース層、メソッドが呼び出されるインターフェースふりは、各インターフェイスオブジェクトのRequestTemple生成する際に
HTTPリクエストは、パラメータ名の要求メソッドを含むために必要なすべての情報をカプセル化し、
クライアントに要求を処理するために、オブジェクトによって要求RequestTemplateを生成し、
最後のクライアントクラスはLoadBalanceclientにカプセル化されています結合リボン・ロード・バランシングのこのタイプは、サービス間の通話を開始します。

Hystrixは、
メイン回路ブレーカ@EnableCiruitBreaker起動クラスに配置されました
次いで、注釈を追加@HystrixCommand回路遮断器の方法を使用する必要が
括弧=事前準備リターン結果にfallbackMethod充填を

Zuul
ZuulのNetflixは、JVMルーティングおよびサーバロードバランサに基づいて生成される。
トランスを作るために使用することができ薬剤はまた、リクエストやフィルタをフィルタするために使用することができます
要求をフィルタリングする:YMLルーティングルールを設定

nginxのサーバーの
概念を:nginxのWebサーバHTTP、HTTPS、SMTP、POP3およびIMAPプロトコルのリバースプロキシサーバです。
特徴:クロスプラットフォーム、シンプルな構成、ノンブロッキング、高同時接続、メモリ消費量が少なく、パフォーマンスが良いです
使用:リバースプロキシ、ロードバランシング(ポーリング、重量、iphash)、静的および動的分離
高並行性の原則を達成するために:
主要なプロセスを、そしてよりプロセス作業、各ワーカー・プロセスは、それぞれの要求に来て、複数の要求を処理することができ、に対処するためのワーカープロセスが存在します。他の要求に対処するための閉塞の顔は、かつて上流のサーバは、トリガ・イベントを戻して処理を継続します。
二つのプロセス:
マスター・プロセス:の設定と保守読みと評価
ワーカープロセスを:プロセスが要求した
コンフィギュレーションを:
サーバー{
聞く:待機するポート番号、
サーバー名:ドメイン名を監視することを;
/ {LOCATIONの
proxy_passは、ホスト名とポート番号を移動する必要があります。
}
}

負荷分散ポリシーを設定します
上流の名前{
サーバメインステアリングのホスト名とポート番号、
サーバメインステアリングホスト名とポート番号、
サーバメインステアリングホスト名とポート番号;
}
一般的に3つの戦略(ポーリング、重量、ip_hash)使用
量(サーバのホスト名ポート重量= N-数+)
同じサーバセッション上問題のIPアドレスを解決するために)固定された上流のサーバ要求内の各立ち下がり; IPHash(ip_hash最初の行に書き込まれます。
上流の割り当て要求に対するサーバの応答時間で設定され、公正な(書き込み線の端部における公正)。短い応答時間優先配分。
url_hash設定

mycatミドルウェア
キー機能はMyCat
一般的なミドルウェア・プロキシのMySQLのネイティブプロトコル、クロスランゲージ、クロスプラットフォーム、クロスデータベースに準拠しています。
自動切り替えに基づく心不全、主支持のMySQLから分離サポートを読み書き、サブテーブル支持サブライブラリー
ベースのNiOが効果的な管理スレッド、高並行性の問題を達成。

mycat基本構成(service.xmlに、rule.xml、scherma.xml):
service.xmlにメインの設定パラメータmycat、ポート番号、myact論理データベースのユーザー名とパスワードなどのようなサービス、
role.xml主要なルーティングポリシー、スプリットルール;
schema.xmlを主要な物理データベース構成情報、論理データベース名とポリシールーティングテーブルとの間の関係

サブサブテーブルリポジトリ
スライスラインで(スライステーブルの大きさ)、水平分割と垂直解像度(サイズ)

Redisのは、
5つのデータ型(文字列、ハッシュ、リスト、セット、ZSET)をサポート

:文字列
フォーマット:SETキー値の
文字列型はバイナリセーフです。文字列のRedisの意味は、任意のデータを含めることができます。そのようなJPGイメージまたはシリアライズ目的とします。
Redisのは、最大512MBのキーを格納することができ、文字列データ型の最も基本的なタイプです。

ハッシュ(ハッシュ)
フォーマット:hmset VALUE1 KEY1 KEY2 value2の名前
Redisのハッシュキー(キー=>値)ペアです。
Redisのハッシュフィールドは、文字列型とマッピングテーブルの値であり、ハッシュは、オブジェクトを格納するのに特に適しています。

一覧(リスト)
Redisのリストの文字列の単純なリスト、ソート挿入順です。あなたは、(右側の)リストの先頭(左側)または尾に要素を追加することができます
フォーマット:lpush名前値
先頭列要素がキーに追加されるのリストに対応する
フォーマット:rpush名前値
キーに文字列要素を追加するために、リストの末尾に対応する
フォーマット:lrem名前のインデックス
リストに対応するキーと要素のようにカウント値を削除する
形式:llen名前が
リストの長さに対応するキーを返します

セット(コレクション)
フォーマット:サッドの名前と値の
Redisのは、順序付けられていないコレクションの種類を設定した文字列です。
コレクションは、ハッシュテーブルを実現するので、削除、追加、検索の複雑さはO(1)です。

ZSET(ソートセット:順序付きコレクション)
フォーマット:スコアZadd名値
RedisのはZSETと文字列型要素のコレクションとして設定され、重複したメンバーを許可していません。
違いは、ダブルスコアは要素の各タイプに関連付けされることです。これは、メンバーの合格点のコレクションの大量注文に小さなからRedisのことです。
ZSETメンバーはユニークですが、スコア(点数)は、それを繰り返すことができます。
Redisの持続性とは何ですか?いくつかの永続的な方法を持っているのRedis、?どのような長所と短所?
持続性は、サービスのダウンタイムメモリデータの損失を防ぐために、ディスクに書き込まれたデータのメモリです。
Redisの持続性は、2つの方法が用意されています。RDB(デフォルト)とAOFは
Redisのクラスタを構築する:
複数のRedisコピー
ルビースクリプト言語でレイズ・グループを開始し
、高可用性と自動フェイルオーバーを達成するために見張り機構を各ノードを監視するために
:歩哨メカニズムを
ハートビートと各ノードの動作を監視する機構が正常である
監視対象ノードの問題がある場合、センチネルが通知を送信するために管理者が
マスターノードが動作しない場合、Sentinelは自動的にフェイルオーバー操作を開始します
自動フェイルオーバーを:
ときマスターノード動作していないとき、新しいマスターノードにアップグレードするには1つのノードからマスターノードの障害になります
し、他のノードからマスターノードの故障ではなく、新しいマスターノードをコピーしてみましょう。
クライアントは、マスターノードの障害を接続しようとしたときに、クラスタは、クラスタではなく、失敗したマスターマスターの使用することができ作る、新しいマスターのクライアントアドレスに返されます。

キャッシュの貫通とは何ですか?避けるためにどのように?キャッシュ雪崩とは何ですか?Ruは避けますか?
キャッシュが浸透し
、一般的なキャッシュシステムを、それが対応する値が存在しない場合、彼らは(例えばDBなど)のバックエンドシステムを見つけるために行く必要があり、キャッシュクエリにキーに従ったものです。いくつかの故意の悪質なリクエストクエリのキーが存在しない、要求の大規模な量は、それがバックエンドシステムに多くの圧力の原因となります。これは、キャッシングの浸透と呼ばれています。
避けるためにどのように?
1:空の結果がキャッシュも設定及び設定の場合、より短い、または挿入後にダーティキャッシュに対応するデータキー。
2:濾過特定のキーに存在しません。私たちは、ビットマップフィルタクエリによって大きなビットマップにすべての可能なキーを置くことができます。
雪崩キャッシュ
キャッシュサーバのリブートまたは1つの期間に集中キャッシュの多くは失敗し、失敗し、バックエンドシステムは、多くの圧力をもたらすことになります。システムがクラッシュします。
避けるためにどのように?
1:キャッシュミスした後、スレッドまたはキューデータベースの読み取り、書き込みキャッシュの数を制御するためにロックすることもできます。例えば、1つのスレッドのみのデータと書き込みキャッシュを照会することを可能にするためのキー、他のスレッドが待機します。
2:A1は、A2へのアクセスが失敗した場合、オリジナルのA1、A2のコピーがキャッシュされているキャッシュ、二次キャッシュを作成し、A1キャッシュの有効期限が短期的に設定され、A2は、長期的に設定されている
3:異なる別のキーのための有効期限を設定しますできるだけ均一なキャッシュ無効化の時点。

データベースの最適化
主キーに基づいてクエリなど1.1
単一テーブルクエリとして1.2、圧力は、Tomcatサーバークラスタにアクセスできるようになりますデータベースのオーバーヘッドを削減大幅に、方法によって解決することができる
最も効率的なシーケンステーブル名の選択①
リゾルバデータベースをで処理テーブル名の順に左から右に書かれた句、FROMテーブルが最後に処理最初であろう節から
②WHERE句接続シーケンスの
WHERE句を解析右から左に配列を使用して、データベース、この原理によれば、テーブルとの間の接続は、他のZhizuo WHERE条件で記述する必要があり、これらの条件は、レコードの最大数は、右側のWHERE句に書き込まれなければならない除外することができます。
1.3リレーショナルクエリ次に、リレーショナルクエリは、データが初期であると判定された場合、デカルト積を減少させる(数は関連)
1.4未満データベース機能最大/最小パケットハイブ
2.(続き)インデックスとビューを追加
3.追加バッファ( Redisの/)memcacheのような
3.1の非リレーショナルデータベース
高速読み取り及び書き込みは3.2、100,000人あたりのスループット速度
(履歴テーブルに格納されていないデータ(水バンク)4.定期的にダンプデータ)
高性能の使用非リレーショナル・データベース・ストレージ(Redisの/ HBaseの)、読み取りおよび書き込み速度
のサブライブラリーのサブテーブル6を(高価な/ O&M)

データベースは、データの損失を防ぐには?
限り、アーカイブログファイルが失われないようARCHIVELOGモード(アーカイブモード)では、それが効果的にデータの損失を防ぐことができます。

ドッカ容器(理解)囲碁言語に基づいて
使用すると、単一マシン上で実行することができ、複数のマイクロドッカーコンテナ、各コンテナはマイクロマイクロサービスまたはスタンドアロンのアプリケーションがあり、たとえば、あなたがドッカーTomcatを実行して、MySQLの実行することができます同じサーバまたは複数のサーバ上で実行することがあり、どちらも別のドッカー、インチ
プロジェクトが正式に発足時にプロジェクトが直接、上記ドッキングウィンドウコンテナにテスト用にリリースすることができ、我々は良い仕事ドッキングウィンドウすることができますライン上で直接画像の展開まで、ドッキングウィンドウがクラウドに展開することができ、Windows、Linux、およびその他の環境行うために必要な
高速起動を

Solrの検索エンジン
のSolrは、エンタープライズクラスの検索エンジン技術のLucence開発をベースに、とlucence原理は、インデックスを反転させます。だから、転置インデックスそれは何ですか?次はlucence転置インデックス原理を紹介します。
これは、機能中国語の単語を提供します。
schema.xmlを:に関連するドメイン構成情報
データベースからデータをインポート:
ライブラリディレクトリインデックスファイルフォルダのSolrに対応するバージョンのmysql-コネクタ-java.jar libのパッケージ
solrconfig.xmlファイルに配置された
<要請ハンドラ名= "/ dataimport"クラス= "org.apache.solr.handler.dataimport.DataImportHandler">
<LST名= "デフォルト">
<STR名= "設定">データ-config.xmlの</ STR>
</ LST>
</のRequestHandler>
現在のディレクトリ内のデータ-config.xmlファイルを作成し
、データベースのテーブルインデックスにインポートする必要があるファイルに
<?XMLバージョン=「1.0」エンコード=「UTF-8」?>
<Da​​taConfig>
<Da​​taSourceを入力= "JdbcDataSource"
ドライバー= "

ユーザー= "ルート"パスワード= "xuyiqing" />
<ドキュメント>
<エンティティ名= "ユーザー"
クエリは= "blog_userから選択*">
<フィールド列=>名前は= "ID" "U_ID" </フィールド>
<フィールド列= "ユーザ名"名前= "ユーザ名"> </分野>
<フィールド列= "u_password"名前= "パスワード"> </分野>
<フィールド列= "QQ"名前= "QQ"> </分野>
<フィールド列= "アバター"名前= "アバター"> </分野>
<フィールド列= "article_count" NAME = "回数"> </分野>
</エンティティ>
</文書>
</ dataConfig>
最后在スキーマ。XML中配置域:
<フィールド名= "ユーザ名"タイプ= "text_ik"インデックス化= "true"に保存された= "true"を/>
= "false"を= "falseを格納、索引付け、<フィールド名= "パスワード"タイプ= "text_ik" "/>
"インデックス付け= "<フィールド名=" QQ」タイプ=" text_ik true"に格納されている= "TRUE" />
<フィールド名= "アバター"タイプ=インデックス化"文字列" = "false"に保存された= "true"を/>
<= "true"を/保存されたフィールド名= "回数"タイプ= "true"をインデックス化= "フロート">

RabbitMQのメッセージキューとカフカの
利点:
様々なシステム(デカップリング)間でコールを分離するために使用することができる
同期非同期(非同期)の代わりにシステム間でコールことを確実にするために使用することができ
、システムは、そのようなスパイク活動として、高い並行性の治療であるとき毎秒2,000以上の要求は、MySQLのも、最大処理能力、それはメッセージキューの方法ではない場合、システムが死んでしまう(クリッピング)
短所:
システムの可用性の削減:導入外部システムへの依存度、より簡単にハングアップしますあなたは、システムコールが3つのBCDシステムインタフェース4人、のようなABCDシステム正しく、何も問題であるMQはzezhengを切った場合、あなたは、部分的にMQが来る追加しましたか?MQは、システム全体のクラッシュをハングアップ、あなたは何を終えたことになるしないでください。
システムの複雑性を増やし:MQが突然入って来追加、どのようにメッセージが消費を繰り返されないことを保証するのですか?メッセージの損失の場合に対処するには?メッセージ配信の順序いることを保証するためにどのように?大きな頭のバルク、多くの質問、無限の痛みの
一貫性:ダイレクトリターン上で処理するために、システムが正常に行われ、人々はあなたが成功する要求だと思います。しかし、問題はBCD、BDは2つのシステムを書いたかの3つのシステムということですライブラリは、C・ライト・ライブラリ・システムの結果は、zezhengを失敗し、成功したのですか?あなたのデータが矛盾しています。

メッセージキューミドルウェア:
適時スループット可用性
1万ミリ秒:ActiveMQの
RabbitMQの:1万最小遅延(ミリ秒)ベースのマスタ-スレーブ・アーキテクチャ実装
RocketMQ:101万ミリ
カフカ:101万(典型的には、大規模なデータを有しますミリ秒以内のリアルタイム計算データのためのシステム、収集および他のシーンを記録)が非常に高く、データのバックアップ、ダウンタイムの少ない、複数の影響はありません。

サービスフレームワークダボ
Java用のダボアリババオープンソースの高性能RPCベースの分散サービスフレームワーク、今はApache Foundationのインキュベータープロジェクトとなっています。
ダボとSpringクラウドとの間の差:
異なるレジストリ、飼育係の強い整合性のあるダボ、春クラウドユーレカ使用
ダボは、ゲートウェイ機能を果たす、音遮断器を提供しません。
サポートされているプロトコルはダボ:
ダボ://(推奨)HTTP:// REST://のRedis://
ダボWebコンテナを必要としないが
、登録センター、そこのRedis、マルチキャスト、簡単な登録センターとして飼育係をお勧めしますが、推奨されません。

Hadoopのエコシステム

一般的なデータ構造

モールプロジェクト
システム内の他のサービスへの呼び出している間、私は主に、いくつかのクエリインターフェイスを提供する商品分類およびファジークエリを照会します。

プロパティマネジメントシステム
のリース管理モジュール
主な機能は、クエリおよびファジークエリの呼び出しによって分類することができ、管理者に提示財産、(賃貸、賃貸のために、所有者が住んで)異なる状態のステータスを追跡するために管理者のための不動産情報を提供することですプロパティ情報を照会します。アラート管理者はすぐにリース契約及び不動産情報を期限切れになります。
管理者は、国有財産の使用を見る必要があり、私は国有財産のテーブルを使用するようにフィールドを追加するために使用し、情報がリース状態の統計に応じて分類することができ、
管理者は、先月に期限切れとなるリース契約を参照する必要があります私たちは、不動産賃貸期日フィールド上のサマリー情報に基づいて、クエリを実行する必要があります。

賃貸借契約管理モジュールは
、主等の契約管理、契約サスペンション、更新、延期、キャンセル、変更管理を、リースする、リアルタイムの問合せ統計で実行することが可能です。
実際には、リース契約テーブルCRUDに。

ユーレカクライアント:
まず設定ファイル内のサービスレジストリのポート番号と名前とアドレスを設定し、メイン起動クラスの上、コメント@EnableEurekaClent構成と同様のセンターを追加
装う:
まずメインの起動クラスに@EnableFeignClientsを追加し、依存関係を追加し、 、オープンスキャンふりClentロード処理、及びインターフェースをふりは、インタフェースコントローラ注入層の界面で使用されるサービス名と注釈@FeignClients URLを指定した定義されているメソッドが呼び出されると、インターフェイスは、インターフェイスごとにRequestTempleふりオブジェクトを生成しますこのオブジェクトは、必要なすべての情報がパラメータ名要求HTTPリクエストメソッドを含むカプセル化; RequestTemplateオブジェクト、次いで生成要求によって、そして、クライアントに要求を処理するために、LoadBalanceclientにリボン間のロードバランシングに関連してサービスを開始し、最後のクライアントクラスを、カプセル化されこれは、呼び出します。

作品装う
マイクロサービスアプリケーションの開発では、我々はコメント装うクライアントスキャン処理負荷のために開いた正面玄関に@EnableFeignClientsを追加します。規範の開発によると、クライアント、インタフェースの定義を装うと@FeignClientsコメントを追加します。
プログラムが起動すると、パケットのスキャンは、すべての注釈の@FeignClientsクラスをスキャンし、情報の春IOC容器に注入しました。インタフェース定義ふり方法はエージェントJDKの方法によって呼び出されたときに特定RequestTemplateを生成します。エージェントを生成する際にふり、各RequetTemplateインターフェースメソッドのオブジェクトを作成し、HTTPリクエスト・オブジェクトは、リクエストパラメータ名として、必要なすべての情報をカプセル化し、要求の方法および他の情報は、このプロセスで決定されます。
その後、requestTemplate要求によって生成され、その後、処理するクライアント要求に、クライアントのJDKネイティブのURLConnectionを本明細書に言及することができる、Apacheのは、HTTPクライアントOkhttpのものであってもよいです。最後に、クライアントは、サービスコールの間にリボンの負荷分散と一緒に立ち上げ、LoadBalanceclientクラスをカプセル化されています。


IO(JAVA BIO)、ブロッキング同期:
サーバー側でクライアント接続要求を持っているスレッドへの接続を実現するために、同期ブロッキング、サーバモデルは、この接続は不要引き起こすことが何もしません場合は、処理のためのスレッドを起動する必要がありますスレッドのオーバーヘッドは、もちろん、スレッドプールメカニズムによって改善することができます。

同期IO(JavaのNIO)を非ブロック:非ブロック同期、サーバはスレッドの実現のモードを要求し、クライアントから送信された、すなわち接続要求がマルチプレクサに登録され、マルチプレクサは、ポーリングに接続されているI処理のためのスレッドを開始する/ O要求。ユーザプロセスは、ユーザーが必要とIO操作の準備は、照会の処理を停止するかどうかを尋ねるために時間に時間を必要とします。

IO(JavaのNIO)をブロッキング非同期:
このモードでは、実際には最も重要な同期および非同期の差である入出力操作の完了後にアプリケーションを通知するようカーネルなどのコアIOオペレーションの完了を待たずに、IO操作後に起動されたアプリケーションを指し、待つかIOが完了するかどうかを尋ねるためのイニシアチブを取る必要があり、同期、そしてなぜそれがブロックされていますか?この時点で完了し、それ自体は実装をブロックしている機能を選択し、選択機能を使用するためにselectシステムコールを介して行われますのでUNPの観点から見た場合、それが監視できるという利点が(同時に複数のファイルを処理している、選択同期するために属していますその後、選択操作するので、プロセスは、それによってシステムの並行性を高め、)データを読み書きする必要があります!


(JavaのAIO(NIO.2))IO非ブロッキング非同期:
このモードでは、ユーザは処理のみIO操作を開始した後すぐに返す必要があり、そして他のIO操作が真の完了後、アプリケーションは、IO操作が完了した通知され、このとき、実際のIO操作を読み書きためだけ、のように処理されたデータを処理する必要がある実際のIOは、読み取り操作と書き込みを必要としないユーザーは、カーネルによって完成されました。

おすすめ

転載: www.cnblogs.com/wanjx/p/10953074.html