Construir el centro de registro SpringCloud-Eureka y la provisión e invocación de servicios

Es tan superficial en el papel, y sé absolutamente que tengo que hacerlo yo solo ~ Parece muy fácil, y es todo tipo de problemas por mí mismo ~ Todos, déjenme hablar lentamente ~

No diré tonterías sobre lo que es Springcloud ~

 

Eureka 

Eureka (pensé que era una abreviatura, resultó ser una palabra, traducida como: ¡Lo encontré, lo encontré! 0.0) es un producto de código abierto de Netflix que proporciona registro y descubrimiento de servicios. Proporciona una implementación completa de Service Registro y descubrimiento de servicios. También es uno de los componentes principales y más importantes del sistema SpringCloud.

La comprensión popular de esto es como un Taobao: ya seas vendedor o comprador, si quieres comerciar, tienes que registrar una cuenta conmigo.

1. Primero cree un nuevo proyecto de maven

2. Introduzca el paquete jar correspondiente en el archivo pom.

Después de aprender el tutorial del jefe, el resultado se informa directamente con la demostración del jefe, y el programa de inicio siempre indica:

Causado por: java.lang.ClassNotFoundException: com.sun.jersey.api.core.DefaultResourceConfig

Deprimido, consulte el paquete jar spring-cloud-starter-eureka-server

Descubrí que el jar de jersey introducido era 1.19.1, y luego lo investigué yo mismo y descubrí que se puede usar 1.19, así que lo introduje en el archivo pom. Según tengo entendido, 1.19.1 es definitivamente más alto que la versión 1.19 ¿Cómo puede no funcionar?

Reinicie, y luego el error desapareció, y se informó un error más tarde, y no se pudo encontrar otra clase en el paquete de servo. El mmp ~ es un problema de versión nuevamente, y luego se introduce el paquete de servo, ok ~

Finalmente, se forma el siguiente archivo de configuración pom

Copiar codigo

1 <parent> 
 2 <groupId> org.springframework.boot </groupId> 
 3 <artifactId> spring-boot-starter-parent </artifactId> 
 4 <version> 1.5.8.RELEASE </version> 
 5 </parent> 
 6     
 7 <dependencies> 
 8 <dependency> 
 9 <groupId> org.springframework.cloud </groupId> 
10 <artifactId> spring-cloud-starter </artifactId> 
11 </dependency> 
12 <dependency> 
13 <groupId> com. sun.jersey </groupId> 
14 <artifactId> jersey-bundle </artifactId> 
15 <version> 1.19 </version> 
16 </ dependencia> 
17  
18 <dependencia>
19 <groupId> com.netflix.servo </groupId> 
20 <artifactId> servo-core </artifactId> 
21 <version> 0.12.7 </version> 
22 </dependency> 
23 <dependency> 
24 <groupId> org. springframework.cloud </groupId> 
25 <artifactId> spring-cloud-starter-eureka-server </artifactId> 
26 </dependency> 
27 </dependencies> 
28 <dependencyManagement> 
29 <dependencies> 
30 <dependency> 
31 <groupId> org.springframework.cloud </groupId> 
32 <artifactId> dependencias de spring-cloud </artifactId>
33 <version> Dalston.RC1 </version> 
34 <type> pom </type> 
35 <alcance> importar </scope> 
36 </dependency> 
37 </dependencies>
38 </dependencyManagement> 
39 <repositories> 
40 <repository> 
41 <id> spring-milestones </id> 
42 <name> Spring Milestones </name> 
43 <url> https://repo.spring.io/milestone < / url> 
44 <snapshots> 
45 <enabled> false </enabled> 
46 </snapshots> 
47 </repository> 
48 </repositories>

Copiar codigo

3. Escribe el código de inicio

Copiar codigo

1 @SpringBootApplication 
2 @EnableEurekaServer 
3 Aplicación de clase pública { 
4 
5 public static void main (String [] args) { 
6 SpringApplication.run (App.class, args); 
7} 
8}

Copiar codigo

Preste atención a agregar la anotación EnableEurekaServer

4. Agregar archivo de configuración

Hay dos formatos para agregar este archivo de configuración, uno es application.properties y el otro es application.yaml. No compararemos la diferencia entre los dos formatos. Pero por la ubicación de este archivo, todavía estuve perplejo por un tiempo, y finalmente traté de encontrar la ubicación como se muestra en la figura.

 

 Y debe prestar atención a que el nombre del archivo no puede ser menor que 0.0 para una letra. Solo porque no presté atención al escribir una carta, también reporté un error. . . .

Application.properties, el contenido del archivo es el siguiente:

1 spring.application.name = spring-cloud-eureka 
2 server.port = 8000 
3 eureka.client.register-with-eureka = false 
4 eureka.client.fetch-registry = false 
5 eureka.client.serviceUrl.defaultZone = http : // localhost: $ {servidor.puerto} / eureka /

Tenga en cuenta que la tercera línea es verdadera por defecto, es decir, si no agrega este falso, se informará un error al inicio, ¡porque querrá registrarse a sí mismo! ! ! La cuarta línea también es cierta de forma predeterminada, lo que significa si quiere que la información se registre en el centro de servicio. 

5. Inicie el registro

Ingrese localhost: 8000 en el navegador para verificar si el registro se inicia normalmente, aparece la siguiente captura de pantalla, indicando que está bien

 

Con el centro de registro, vamos a contratar un proveedor de servicios y un consumidor de servicios.

 

proveedores de servicio

1. Crea un nuevo proyecto de maven

2. Introduzca el mismo paquete jar que el servicio de registro en el archivo pom.

3. Escriba application.properties

El contenido es el siguiente:

1 spring.application.name = spring-cloud-producer 
2 server.port = 9000 
3 eureka.client.serviceUrl.defaultZone = http: // localhost: 8000 / eureka /

La primera línea es para nombrar su propio servicio, la segunda línea es para configurar su propio puerto de acceso y la tercera línea es para configurar en qué registro desea registrarse. Debido a que configuramos el registro eureka para que sea el puerto local 8000, entonces escribimos esta dirección

4. Escribe el código de inicio

Copiar codigo

1 @SpringBootApplication 
2 @EnableDiscoveryClient 
3 Public class App 
4 { 
5 public static void main (String [] args) 
6 { 
7 SpringApplication.run (App.class, args); 
8} 
9}

Copiar codigo

Preste atención a agregar la anotación EnableDiscoveryClient

5. Escriba el código de clase del controlador de servicio

Copiar codigo

1 @RestController 
2 clase pública HelloController { 
3      
4 @RequestMapping ("/ hola") 
5 cadena pública hola (@RequestParam nombre de cadena) { 
6 return "hola" + nombre + ", ¡encantado de conocerte!"; 
7} 
8}

Copiar codigo

 Aquí el proveedor de servicios está completo, inicie el programa, no se reporta ningún error, actualice la página del centro de registro, verá el servicio actualmente registrado en la Aplicación.

 

Llamador de servicio

1. Crea un nuevo proyecto de maven

2. También introduzca el mismo contenido que antes en el archivo pom.

3. Escriba application.properties

1 spring.application.name = spring-cloud-consumer 
2 server.port = 9001 
3 eureka.client.serviceUrl.defaultZone = http: // localhost: 8000 / eureka /

La primera línea también nombra el servicio actual, la segunda línea establece el puerto y la tercera línea establece la URL del registro.

4. Escribe el código de inicio

Copiar codigo

1 @SpringBootApplication 
 2 @EnableDiscoveryClient 
 3 @EnableFeignClients 
 4 Aplicación de clase pública 
 5 { 
 6 principal vacía estática pública (String [] args) 
 7 { 
 8 SpringApplication.run (App.class, args); 
 9} 
10}

Copiar codigo

Tenga en cuenta que esta clase de inicio tiene una anotación EnableFeignClients más que el proveedor de servicios. La función de esta anotación es habilitar la simulación para llamadas remotas.

5. Escribe la implementación de la llamada fingida

1 @FeignClient (name = "spring-cloud-producer") 
2 interfaz pública HelloRemote { 
3 @RequestMapping (value = "/ hello") 
4 public String hello (@RequestParam (value = "name") String name); 
5}

Tenga en cuenta que esta es una interfaz. El nombre del parámetro de anotación anterior es para especificar el nombre del proveedor de servicios al que está llamando actualmente. También tenga en cuenta que el nombre del parámetro en el método es coherente con el parámetro en el proveedor de servicios

6. Escriba la clase de controlador de llamadas de servicio

Copiar codigo

1 @RestController 
 2 ConsumerController de clase pública { 
 3 
 4 @Autowired 
 5 HelloRemote HelloRemote; 
 6      
 7 @RequestMapping ("/ hello / {name}") 
 8 public String hello (@PathVariable ("nombre") String name) { 
 9 return HelloRemote.hello (nombre); 
10} 
11 
12}

Copiar codigo

Introduzca la interfaz HelloRemote en la clase actual, llamando al método local hello y luego llamando a los métodos en la interfaz HelloRemote

Inicie el programa y no se informa de ningún error.

 

Actualice el registro en este momento, debería ver que se han registrado 2 servicios

 

Verificación de prueba

 Abra el navegador e ingrese: http: // localhost: 9001 / hello / JJ

Como se muestra en la figura anterior, el resultado se devuelve normalmente, lo que indica que toda la llamada de servicio y el proveedor están bien. ! !

Supongo que te gusta

Origin blog.csdn.net/suixinsuoyu12519/article/details/111692628
Recomendado
Clasificación