、分散理論を理解し、分散して行わ(年前)が、それはspringcloudためにあまりにも多くを求めて面接の瞬間に感じました
マイクロサービス分散アーキテクチャとしては、あまりにも速く、あまりにも多くの標準的な形式は、多くのことは気にする必要はありませんし、いくつかの本当に簡単ですが、すべての企業が同様のプログラムを持っていません
それとも誰もが、関連するプロジェクトの経験を持っています
疲れた、役に立たないと言います
何がそれをspringcloud?それを自分自身を見つけるために、
まず、どのようなことユーレカ?イェ使用、どの位置?
最初に登場したときに分散アーキテクチャでは、負荷分散とクラスタリングに関与することになり、私は今まで、クラスタなど10台のマシンがあると確信している、そして、あなたはそのIPアドレスとポート10のマシンを知っています
10台のマシンは、IPアドレスとポートがコードで書かれていることになる負荷分散の初期の形、ポーリングの使用を中に呼び出す必要があります。
しかし、一瞬のために、クラウドサービスと仮想マシンはかなり一般的であり、また、アカウントのクラスタを考慮しながら、ドッキングウィンドウのコンテナ、細かいセグメンテーション、サービスの小型化、デカップリングと複数の独立した動作をすることができ
横方向の拡大は、いくつかのサーバのクラスタがあるので、どのように中央が登録を必要とし、サービスを発見したように、各サーバは、変数で設定します。
ユーレカの意図は次のとおりです。意味の素晴らしい感覚を発見します。もちろん、springbootベースの通信プロトコルは、依然としてサーバごとに決定するために、HTTP、そのハートビート機構であることです
健康、新しいユーレカクライアントは、彼らが複数のクラスタ、その後、クラスタに追加自動的に来るというお互いを伝えるために、サーバーを要求しながら、気にしない人たちのもの。
サービス検出および登録メカニズムのこの規格、標準化された構造の形成は、それは、ユーレカです。
二、ユーレカの原則と行動
以下の写真は、コメントは私に連絡があり、盗難を示し(私は同じことを再描画します!!!)
ユーレカクラスタは、単に二つの部分のサーバユーリカ(ユーレカサーバ)クライアントとユーレカ(ユーレカクライアント)に分け。
サーバは、一般に2以上であることを特徴ユーレカは、好ましくは、物理的にクラスタ全体のディザスタリカバリの効果を達成するために、分離しました。可用性を向上させる、全体のハングの可能性を減少させます。
ユーレカクライアントは、実際には、アプリケーション、各アプリケーションは限りクライアントの名前を知っているように、すべての要求、その後、クライアントは数より多い、クライアントに書かれています、
つまり、クライアントの各アドレスは、要求クラスタを完了するには、サーバーやユーレカからのコールを選択することもできます。
選択にはあまり具体的な、なぜコード例の多くは、それを使用する(0)最初の配列リストに取るクライアントから来ましたの?
それはちょうど、サンプルコードだった、真剣にそれを取ることはありません。サービスが解決するために、サーバークラスタを必要とし、いずれかを選択し、可能であり、いくつかの最初の場合は、使用することができます
乱数が計算されます。すべての要求は、10のクライアントとして、分散型の一種として理解することができる場合は、それぞれがタスクキューを行うことがあり、その後、結果
統計バック統合、同時要求と、このことは、ビッグデータが実際のものである方法。
三、ユーレカのgetが開始しました
1、バージョン
まず、図の操作に示すように、見つかったhttps://spring.io/projects springcloudで、ユーレカの例を見つけるし、次にクイックスタート地点を見つけるために、春の公式サイトを見つけ、
以下に示すように、拡大タブユーレカサーバーの下に発見
次に、ページの一番下をクリックしてください
次のように図得られました:
次のように親、依存関係、JUnitのを削除し、私はポンポン渡されたが、改正:内容が含まれ、変更、POMを変更するには、この情報を適用します。
唯一のそれらの間のクライアントの依存度ポンポンサーバーを、投稿、コメントに注意を払います
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.7.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>com.lyh</groupId> <artifactId>lyh-eureka-server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>lyh-eureka-server</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <!-- SR2会报错,未解决 --> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- web的jar --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- eureka server的jar, 作为client也需要 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <!-- eureka client的jar --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.配置文件
创建resources并且buildpath,编写application.yml配置文件,如下:
server的yml
server:
port: 9010
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: eureka-server
client的yml
server:
port: 9020
eureka:
client:
serviceUrl:
defaultZone: http://localhost:9010/eureka/
spring:
application:
name: eureka-client
3.server和client的启动类
编写server的启动类,代码如下:
package com.lyh.lyh_eureka_server; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaServerRun { public static void main(String[] args) { SpringApplication.run(EurekaServerRun.class, args); } }
编写client的启动来,代码如下:
package com.lyh.lyh_eureka_server; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableEurekaClient public class EurekaClientRun { public static void main(String[] args) { SpringApplication.run(EurekaClientRun.class, args); } }
4.启动并访问
先启动server,然后启动client,访问server的地址:http://localhost:9010,结果如下图则为正确:
5.一些问题
client的name注册入server的时候,会自动转为大写
红字表示client的心跳维持时间在90秒以上,将会自动删除该注册,是一种server的保护机制
将server中的yml自我保护机制修改,配置文件修改如下:
server:
port: 9010
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
server:
enable-self-preservation: false
spring:
application:
name: eureka-server
修改以后,页面提示会发生变化,表示保护机制已经关闭,如下图
有空继续写!!!