想要系统地学习 Spring Cloud Netflix, 把自己的学习过程记录下来。
持续更新中
微服务架构是一种将应用程序拆分为一组独立的、可独立部署的服务的架构模式。每个服务都运行在自己的进程中,可以独立地进行开发、测试和部署。微服务架构可以提高应用程序的可扩展性、可维护性和可复用性。
在微服务架构中,服务之间的通信通常是通过API来进行的。每个服务都有自己的API,客户端可以通过这些API来调用服务,从而实现服务之间的通信。服务之间可以通过RESTful API、gRPC、Thrift等方式来进行通信。
微服务架构中的服务通常是由小型、自治的团队来开发和管理的。每个服务都有自己的数据库,可以独立地进行扩展和升级。服务之间的依赖关系通常是通过API接口来管理的,而不是通过硬编码的方式来管理的。
微服务架构的优点包括:
微服务架构的缺点包括:

Spring Cloud Netflix Eureka是一个Netflix公司开发的服务注册和发现工具。
在微服务架构中,服务之间需要互相调用和通信,而Eureka可以提供服务注册和发现的功能,使得服务之间可以互相调用和通信。
Eureka是一个基于REST的服务注册和发现工具,它可以注册和发现Spring Boot应用程序。Eureka服务器存储所有注册的应用程序的元数据,并提供一个简单的REST API来获取这些元数据。服务注册到Eureka时,它们会提供一些元数据,如服务名称、IP地址、端口号、服务健康状况等。服务发现使用这些元数据来找到其他服务,并可以执行一些操作,如心跳检测、服务下线、服务健康检查等。
Eureka提供了许多配置选项,可以根据具体需求进行配置。例如,可以配置Eureka服务器是否启用JMX监控,Eureka客户端是否在启动时向Eureka服务器注册,Eureka客户端是否从Eureka服务器获取服务实例列表等。
Spring Cloud Netflix Eureka是一个轻量级、易于使用的服务注册和发现工具,可以简化微服务架构的开发和部署。
| 属性名 | Eureka服务器 | Eureka客户端 | 作用 |
|---|---|---|---|
| server.port | 固定 | 动态 | Eureka服务器监听的端口号,通常为8761。 |
| eureka.instance.metadata-map.app.instance-id | 固定 | 动态 | Eureka客户端发送到Eureka服务器的实例ID,通常为@spring.application.name。 |
| eureka.instance.metadata-map.app.name | 固定 | 动态 | Eureka客户端发送到Eureka服务器的实例名,通常为@spring.application.name。 |
| eureka.server.enable-jmx | 固定 | false | 是否启用JMX监控,通常为false。 |
| eureka.server.jmx-port | 固定 | false | JMX监控的端口号,通常为0。 |
| eureka.server.healthcheck.port | 固定 | false | 健康检查的端口号,通常为0。 |
| eureka.server.auto-registration.enabled | 固定 | false | 是否自动注册服务到Eureka服务器,通常为false。 |
| eureka.client.register-with-eureka | false | true | 是否注册服务到Eureka服务器,通常为false。 |
| eureka.client.fetch-registry | false | true | 是否从Eureka服务器获取服务实例列表,通常为false。 |
| eureka.client.healthcheck-interval-seconds | false | 30 | 健康检查的间隔时间(秒),通常为30。 |
| eureka.client.register-on-startup | false | true | 是否在服务启动时向Eureka服务器注册,通常为true。 |
| eureka.client.renewal-interval-seconds | false | 90 | 心跳检测的间隔时间(秒),通常为90。 |
| eureka.client.region | 默认 | 默认 | 服务所在的区域,通常为空。 |
eureka.server.port=8761
eureka.server.registryURL=http://localhost:8761/eureka/
eureka.server.metadata-map.application.version=1.0.0
package com.example.eureka.server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
注意:在运行Eureka Server之前,需要确保Eureka Server的配置文件中的注册中心地址是正确的,并且已经启动了Eureka Server。
访问路径 http://localhost:8761/

https://gitee.com/bseaworkspace/pando_springcloud/tree/master/eureka_client
在pom.xml文件中添加Eureka客户端的依赖:
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
在application.properties或application.yml文件中配置Eureka Server的地址:
properties
server.port=8762
spring.application.name=eureka_client
spring.cloud.eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
spring.cloud.eureka.client.registerWithEureka=true
spring.cloud.eureka.client.fetchRegistry=true
在主类上添加@EnableEurekaClient注解,启动Eureka Client:
@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
}
在服务实例中添加@Component注解:
@Component
public class MyService {
@Override
public String toString() {
return "MyService{}";
}
}
访问路径 http://localhost:8761/
