登録と発見サービスSpringCloud01--
マイクロサービスの登録と発見
私たちはマイクロサービス、多くの場合、サービスプロバイダ、サービスコンシューマとサービス登録センターがあります。私たちが学ぶ前に、飼育係は、登録されたセンターです。公式SpringCloudで、登録センターとしてZKを使用することは推奨されません。しかし、私たちはユーレカを使用する傾向があります
サービスプロバイダは、サービスの消費者は、レジストリは、三角形でした
1.サービスプロバイダは、サービスセンターに登録されます
サービスを見つけるために、レジストリを通じて2.サービスの消費者
3.サービスコールを探します
4.サービスコンシューマとサービス登録センターは、ハートビート接続を維持するために、サービスプロバイダーのアドレスが変更されると、レジストリは、顧客サービスを通知します
第二に、レジストリユーレカ
SpringCloudは、レジストリのサポートをご用意しておりますユーレカ、ZKなど、正式ユーレカをお勧めします
科普:什么是Eureka?
Eureka是Netfix开源的服务发现组件,本身是一个基于Rest的服务。包含Server和Client两部分。SpringCloud将其集成在子项目Spring Cloud Netflix中,从而实现微服务的注册和发现。
2.1。ライティングユーレカサーバー
2.1.1新しい春スターター、導入ユーレカ・サーバを作成します。
2.1.2。application.ymlを作成するには、クラスを開始@EnableEurekaServer
server:
port: 1111 #服务端口
eureka:
client:
register-with-eureka: false #是否将自己注册到Eureka服务中,自己本来就是服务无需注册
fetch-registry: false #是否从Eureka中获取注册信息
service-url: # Eureka客户端与Eureka服务端交互地址
defaultZone: http://localhost:${server.port}/eureka/
2.1.3。サービスを書き、新しい春スターター、輸入ユーレカを作成します。
2.1.4。application.ymlを作成し、クラス@EnableDiscoveryClientを開始し、上記の発見を登録するには、登録センターに行きます
server:
port: 8081
spring:
application:
name: microservice-item
eureka:
client:
register-with-eureka: true
fetch-registry: true #是否从eureka中获取注册信息,默认true
service-url:
defaultZone: http://localhost:1111/eureka/
2.1.5。執筆サービス(キーコード)
@Service
public class ItemService {
@Autowired
private RestTemplate restTemplate;
@Autowired
private DiscoveryClient discoveryClient;
/**
* 商品微服务进行查询
* @param id
* @return
*/
public Item queryItemById(Long id) {
List<ServiceInstance> instances = discoveryClient.getInstances("MICROSERVICE-ITEM");
ServiceInstance serviceInstance = instances.get(0);
String url="http://"+serviceInstance.getHost()+":"+serviceInstance.getPort()+"/item/"+id;
return restTemplate.getForObject(url, Item.class);
}
}
2.2書き込み。Eruka、クライアント
2.2.1。eruka-クライアントを作成し、発見コンポーネントを追加erukaのWebパッケージ
2.2.2。設定ファイルapplication.ymlを書きます
#服务端口
server:
port: 8888
#应用名称及验证账号
spring:
application:
name: server-text
#注册中心
eureka:
# server:
# enable-self-preservation: false #关闭保护机制
# eviction-interval-timer-in-ms: 2000 #剔除失效服务间隔,单位毫秒
client:
register-with-eureka: true
fetch-registry: true
#设置服务注册中心的URL
service-url:
defaultZone: http://root:root@eureka-7901:7901/eureka/
instance:
hostname: server-text
2.2.3。起動クラスのノートを追加します
@EnableEurekaClient
通常見つかったクラスタの開始を開始した後2.2.4。