使用春クラウドネットフリックスの登録センターとしてEureakが、それは保守状態に更新、Eureka1.0を停止Eureka2.0。win7のと同じように、同じを使用することができるが、新たな問題のための公式と我々は選択肢を使用する必要があるので、修復することはできません。レジストリ現在利用可能な選択肢は、主に以下のとおりです。飼育係など領事、ナコスは、ここでは2個のメインスピーカーの前に、ナコスは、コンポーネント、後者の意志の話春の雲Alilibabaです。
登録センターとして飼育係の使用
まず、サービスをインストールして起動する飼育係
この記事では、非常に単純な、非ステップ、あなた自身の百度に焦点を当てて
第二に、飼育係にオリジナルのマイクロサービス登録
- 飼育係の使用ダボジュニアパートナーがない見知らぬ人。ユーレカを使用している場合、我々は(それがあるならば、我々は複数のプロジェクトを作成する必要があり、ユーレカクラスター)新しいSpringBoot Webプロジェクトを作成し、その後に登録されている他のマイクロのサービスを、と飼育係が、新しいプロジェクトせず、構成のみとシンプルを変更する必要がありますコーディングを登録することができます
- 競合を投影するために2つの新しいプロジェクトをコピーする前に、私たちの最初のプロジェクトの前
zookeeper-provider-8001
とzookeeper-consumer-80
変更するにはzookeeper-provider-8001
、プロジェクトのプロバイダを
- pom.xmlに依存関係を紹介
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<exclusions>
<exclusion>
<!--为什么要排除这个依赖?-->
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!--然后又引入这个依赖?-->
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.13</version>
</dependency>
小さなディテール、なぜ我々はこの依存関係を除外し、新しい依存関係を導入する必要がありますか?サン作業のこの波?
1. 主要是在zookeeper-discovery中的zookeeper版本是3.4.8
2. 而这个版本一定要和我们在服务器安装的zookeeper版本一致,不然你在注册的时候,会报错。当然,如果你在服务器本来安装的是3.4.8就不用这么麻烦了。
- application.ymlアドレスでの飼育係を設定します
server:
port: 8001
spring:
application:
# 这个应用的名称,用来注册在注册中心的名称
name: zookeeper-provider
cloud:
zookeeper:
# 如果是zookeeper集群,在这个地址后边加上就可以,用逗号分开
connect-string: 192.168.25.131:2181
- スタートアップのカテゴリに注釈を追加します。
@SpringBootApplication
@EnableDiscoveryClient //注意这个注解是SpringCloud包中的
public class ApplicationDemo {
public static void main(String[] args) {
SpringApplication.run(ApplicationDemo.class, args);
}
}
- プロジェクトを開始し、その後、飼育係の下で、サーバーのノードを表示
同じ方法、飼育係、消費者80の変更消費財
pom.xml(上部および飼育係依存として援用されます)
appliction.yml
server:
port: 80
spring:
cloud:
zookeeper:
connect-string: 192.168.25.131:2181
- ユーレカの違いは、我々はまた、飼育係で消費者に登録しなければならないということです
@SpringBootApplication
@EnableDiscoveryClient
public class ApplicationDemo {
public static void main(String[] args) {
SpringApplication.run(ApplicationDemo.class, args);
}
}
- リボンは我々が名前のサービスですので、コントローラクラスにアクセスするためだけでなく、それを修正するために使用する方法であります
@GetMapping("consumer/hello/{id}")
public String hello(@PathVariable("id") String id){
//远程调用provider中的接口
return restTemplate.getForObject("http://zookeeper-provider/provider/hello/"+id,String.class);
}
- その後、プロジェクトを開始し、アクセスするブラウザを使用して
http://localhost/consumer/hello/999
も問題ありません
登録センターとして領事の使用
領事の言語発達の分散、高可用性ソリューションである、(電流制限、ヒューズやモニタリング、サービス間のネットワーク呼び出しを担当するTCP / IP間の微小サービス、)それはサービスグリッドで、外出先での使用であり、システム、および開発は非常に使いやすいです。これは、フル機能のコントロールプレーンを提供し、主な機能は以下のとおりです。サービス検出、ヘルスチェック、キーストレージ、セキュリティサービスの通信、複数のデータセンター。
まず、領事をインストール
インストールは飼育係よりもシンプルですが、私は唯一の他の公式ホームページを参照、Windowsのインストール作業と言うことができますhttps://www.consul.io/を
あなたは非常に遅いダウンロードした場合、私はプロジェクトのコードでこのパッケージをアップロードしました。温首相は、コードのアドレスを見ることがなかったです。
- 窓を解凍ダウンロードした後、公式ウェブサイト上でインストールパッケージをダウンロードすることは.exeファイルです。使用すると、カレントディレクトリ開く(カレントディレクトリShiftキー+右マウスボタンで長押しをして、ここでオープンcommondウィンドウを選択したり、アドレスバーと入力し、Enterキーを押しにcmdと入力)して、次のコマンドを実行するCMD:
consul agent -dev
領事とエウレカは、ブラウザで直接開くグラフィカルインターフェース、スタート領事である
localhost:8500
あなたが見ることができます。
第二に、領事にオリジナルのマイクロサービス登録
同様に、我々は、2つの新しいプロジェクト領事・プロバイダ-8001および領事-消費者-80をコピーします。
そしてZookeeeperとプロバイダと消費者としては、行くことに登録しています。のみ変更されたコード掲載、他のソースを参照してください
- pom.xml
<!--只是添加了这一个依赖,其他的依赖不变,如消费者需要的ribbon等-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
- application.yml(プロバイダやサービス・プロバイダのポート番号やapplication.nameに加えて、他の人を変わらず)
server:
port: 8001
spring:
application:
# 这个应用的名称,用来注册在注册中心的名称
name: consul-provider
cloud:
consul:
host: localhost
port: 8500
discovery:
# 这个就是要注册进consul中的服务名,直接使用了上边定义的微服务名
service-name: ${spring.application.name}
- メインの起動クラスに注釈を追加(プロバイダやサービスプロバイダが必要とされています)
@SpringBootApplication
@EnableDiscoveryClient
public class ApplicationDemo {
public static void main(String[] args) {
SpringApplication.run(ApplicationDemo.class, args);
}
}
- コントローラのサービス名を変更するには、リモート呼び出しの注意
@GetMapping("consumer/hello/{id}")
public String hello(@PathVariable("id") String id){
//远程调用provider中的接口
return restTemplate.getForObject("http://consul-provider/provider/hello/"+id,String.class);
}
- 次にプロジェクト、ブラウザの入力の最初の起動
localhost:8500
我々はこの2つのマイクロレジストリサービスを持っているかどうかを確認しています。そして、再度テストします。 - 私たちが始めた後しかし、我々はサービスへの領事バックが登録されていますが、エラー。これは、領事と他のレジストリが同じではないためで、それはこのSpringBootの健康値をチェックすることです、各サービス「/健康」のインターフェースを訪問することです。私たちは各マイクロサービスにおけるヘルスチェックSpringBootの導入に依存する必要がありますので(使用前に、この小さな友人は非常に精通しています)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 小さなエピソード、でも私たちは、このパッケージを導入し、当社があり
http://localhost:8001/health
、我々はまだヘルスチェックを通過しないことを意味し、リターンまたはダウン.. 私たちは、問題のSpringBootと春のクラウドバージョンを使用しているので。私は解決策を見つけていません。しかし、我々は、以下の構成を追加し、現在の医療サービスをチェックするために領事をオフにすることができます:
spring:
application:
# 这个应用的名称,用来注册在注册中心的名称
name: consul-consumer
cloud:
consul:
host: localhost
port: 8500
discovery:
# 这个就是要注册进consul中的服务名,直接使用了上边定义的微服务名
service-name: ${spring.application.name}
# 取消Consule对当前服务的健康检查
register-health-check: false
最後に、あなたはコンソール領事でこれを見ることができます
このエラーフラグは、トップだけで罰金を無視します。その後、我々は同じブラウザを使用することができますし、前に訪問したサービスを提供します
要約:
2つの登録春クラウドにおけるセンターとそのアイデアや手順を統合は同じです。
引用依存性 - 「の変更は、application.ymlこのマイクロ登録レジストリサービスへ - 」マスターブートカテゴリに注釈を追加
- ユーレカ差はレジストリにプロバイダーと消費者の両方を見ることができる、ということです
晩春クラウドAlilibabaでは、我々は、登録センターとしてナコス(アリの自己学習)を使用します
商品コードとより多くのチュートリアル
公共のマイクロチャネル番号に注意を払うには、「SpringCloud」GETを返信してください。