マイクロサービスとは何ですか?
マイクロサービスは、プロジェクト当初、肥大化したスプリットオープンのすべてのモジュールにあり、相互に関連付けることはできません、あなたも同じデータベースを使用することはできません。 たとえば:プロジェクトがあり、ユーザは電源のパワーを呼び出す必要があるとき、ユーザーモジュールとパワーモジュールが、ユーザモジュールと電源モジュールが直接関連していない、単にいくつかのデータが必要対話するために、それは、別途右その二つの別々のモジュールできることサービス側ですが、ユーザーがそう、サービス側であるときに、ユーザーを呼び出すために必要なパワーは、彼らは、発信者にサービスを提供している当事者が誰であるかを気にしない、彼らは、2つの別々のサービス、この時、マイクロサービスの概念です彼が出てきました。
ミクロと分散サービスとの違い
違いと言えば、分散型かについてみましょう簡単に話が巨大なシステムは、複数のモジュールに分割され、分散型と呼ばれ(このマイクロのようなサービス)別のマシン上に展開(マシンは余裕がなかったので、実際には、インターフェースを介して、)各モジュールを交換するデータをあまり圧力を要するか、非常に良好なサーバは、通常、いくつかのことができる 分散型マイクロもサービスです。 モジュールは、現在別々のユニット、コールへのインターフェースを提供し、その後にオフに分割されているので 、彼らが何をすべきかの性質の違い? 彼らの主な違いは、に反映されている「ターゲット」、何このアーキテクチャの目標であることはあなたがするプロジェクトということです。目標は何を分散?私達はちょうどである、マシンは余裕、あるいはコスト、サービスの展開を完了するために複数のマシンを使用する必要があり、かつマイクロターゲットサービスがちょうどお互いに影響されない、各モジュールが開いて分割任せることはできない、それを見ましたまた、モジュールなどBUGを見えるようにアップグレードとして、あるいは...、あなたも理解して単語を使用することができます。彼は、単一のマシン上にあってもよいサービスのマイクロ種類、およびマイクロサービスを配布されています。
マイクロサービスと春クラウド関係(差)
マイクロサービスアーキテクチャは、ちょうど私たちのように、プロジェクトやコンセプトにだけの方法である MVCアーキテクチャと同じ、そして春クラウドは、この技術の実現があります。
春の雲素早くビルドプロジェクト
1. 新しいプロジェクトを作成し、選択しMavenを、[次へ]をクリックします
2. プロジェクトを埋めるために関連する情報は、次のステップに進みます
3. プロジェクト名とプロジェクトの場所での塗りつぶし
4. としてプロジェクトは、親プロジェクトが存在し、SRC のファイルを削除することができます
追加ユーレカサーバーコンポーネントを
1. プロジェクトを右に- >新しい- >モジュール- >春Initializr - >次の
2. プロジェクト関連の情報を入力してください
3. 選択クラウドディスカバリー
4. プロジェクト名とプロジェクトの場所での塗りつぶし
5.アプリケーションの追加クラス、@EnableEurekaServer 注釈を
注:このコメントは、ラベルクラスがあることを示し、ユーレカサーバー
6. スイッチポートを起動し、設定を変更
私はYML application.ymlました
# 服务注册中心 (单节点) server: port: 8090 eureka: instance: hostname: localhost client: fetch-registry: false # 表示是否从Eureka Server获取注册信息,默认为true.因为这是一个单点的Eureka Server,不需要同步其他的Eureka Server节点的数据,这里设置为false register-with-eureka: false # 表示是否将自己注册到Eureka Server,默认为true.由于当前应用就是Eureka Server,故而设置为false. service-url: # 设置与Eureka Server的地址,查询服务和注册服务都需要依赖这个地址.默认是http://localhost:8090/eureka/;多个地址可使用','风格. defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
7.启动项目
在浏览器中输入你设置的端口号我的是8090
localhost:8090
添加 EurekaProducer 服务生产者
1.按照同样的方式,创建一个项目,这里我们创建一个Spring Boot风格的服务,
创建时需要勾选 Spring Cloud Discover--> Eureka Discover Client 和 Spring Web 的依赖
2.在application启动类中加入注解@EnableEurekaClient,表明自己属于一个生产者。这里为了方便测试,直接使用@RestController获取返回值。
3.修改配置
server: port: 8081 spring: application: name: eureka-producer eureka: client: service-url: defaultZone: http://localhost:8090/eureka # 指定服务注册中心
4.启动应用,刷新Eureka控制台
可以看到服务已经注册到Eurek
创建 Eureka Consumer 服务消费者
1.通过 Spring Initializr,创建一个 Eureka Discovery Client 模块,同时要勾选加入Spring Web依赖。
2.修改原有配置,指定服务注册中心,这里还是使用yml文件。
# 服务注册中心 (单节点) server: port: 8082 spring: application: name: eureka-consumer eureka: client: service-url: defaultZone: http://localhost:8090/eureka # 指定服务注册中心
3.在启动类中添加@EnableDiscoveryClient表明标注类是消费者,加入restTemplate来消费相关的服务。
@SpringBootApplication @EnableDiscoveryClient public class EurekaConsumerApplication { public static void main(String[] args) { SpringApplication.run(EurekaConsumerApplication.class, args); } @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } }
4..创建controller层,消费远程服务
@RestController
public class DemoController {
@Autowired
RestTemplate restTemplate;
@RequestMapping("greet")
public String sayHello(@RequestParam String name){
return restTemplate.getForObject("http://EUREKA-PRODUCER/index?param=" + name, String.class);
}
}
5.配置完毕以后,启动服务消费者,刷新Eureka控制台,可以看到消费者已经注册。
5.打开浏览器输入localhost:{server.port}/path 进行服务调用,
这里我用 http://localhost:8082/greet?name=eureka ,可以看到请求正确返回,正确调用了服务提供者。