Was sind Microservices? Eine Serie wird auf einen Blick zu sehen sein!
2. Bringen Sie Ihnen bei, wie Sie ein SpringCloud-Projekt erstellen (2) Produzenten und Verbraucher
Weiter aktualisieren, willkommen zum Liken und Folgen!
1. Einführung in die Serviceerkennung
各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件上(eureka,zookeeper,Consul),服务发现组件会存储这些信息。服务消费者会从服务发现组件查询服务提供者的网络地址,然后根据该地址调用服务提供者的接口。各个微服务与服务发现组件使用一定的机制来维持心跳,服务发现组件若发现有服务没有提供心跳,那么服务发现组件会将该服务剔除。微服务网络地址发生变更(例如实例增减或者IP端口发生变化等),会重新注册到服务发现组件上,使用这种方式,可以避免因网络变化导致服务之间的通讯停止,服务消费者也无须人工的修改网络地址。简单的说就是对于注册到Eureka中的微服务,可以通过服务发现来获得该服务的信息。
2. Codebeispiel für die Diensterkennung
Wir müssen es im Controller im Cloud-Provide-Payment-Provider-Dienst ändern, wie in der folgenden Abbildung dargestellt:
//注入服务发现的注解
@Autowired
private DiscoveryClient discoveryClient;
//获取服务信息
GetMapping("/payment/discovery")
public Object discovery(){
List<String> services = discoveryClient.getServices();
for (String s : services){
log.info("********注册到eureka中的服务中有:"+services);
}
List <ServiceInstance> instances = discoveryClient.getInstances("MCROSERVICE-PAYMENT");
for (ServiceInstance s: instances) {
log.info("当前服务的实例有"+s.getServiceId()+"\t"+s.getHost()+"\t"+s.getPort()+"\t"+s.getUri());
}
return this.discoveryClient;
}
Fügen Sie der Startup-Klasse die Annotation @EnableDiscoveryClient hinzu, wie unten gezeigt:
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class PayMentMain {
public static void main(String[] args) {
SpringApplication.run(PayMentMain.class,args);
}
}
Starten Sie dann den Dienst und greifen Sie zu, um http://localhost:8001/payment/discovery
die Dienstinformationen des aktuellen Registrierungszentrums zu erhalten, wie in der folgenden Abbildung dargestellt:
Sie können sehen, dass sowohl der Client als auch der Server über die folgenden zwei Dienste verfügen: mcroservice-order und mcroservice-paid
Wir haben die Informationen über das Protokoll an die Konsole gedruckt. Schauen Sie sich nun die von der Konsole gedruckten Informationen an, wie in der folgenden Abbildung dargestellt:
Wir können sehen, dass das aktuelle Registrierungszentrum über zwei Dienste verfügt: mcroservice-order und mcroservice-paid. Sie können die IP, den Port und die URI der Instanz auch unter dem Dienst mcroservice-zahlung sehen. Dadurch können viele Serviceinformationen abgerufen werden. Sie können selbst einen Blick darauf werfen und es entsprechend Ihren Bedürfnissen besorgen. Wie nachfolgend dargestellt:
Ist es so einfach?
Im nächsten Artikel erfahren Sie mehr über die Registrierung und Entdeckung von Consul-Diensten, achten Sie weiterhin darauf und mögen Sie sie. Wir aktualisieren weiterhin.