本教程目标
想要系统地学习 Spring Cloud Netflix, 把自己的学习过程记录下来。
状态
持续更新中
微服务架构
微服务架构是一种将应用程序拆分为一组独立的、可独立部署的服务的架构模式。每个服务都运行在自己的进程中,可以独立地进行开发、测试和部署。微服务架构可以提高应用程序的可扩展性、可维护性和可复用性。
在微服务架构中,服务之间的通信通常是通过API来进行的。每个服务都有自己的API,客户端可以通过这些API来调用服务,从而实现服务之间的通信。服务之间可以通过RESTful API、gRPC、Thrift等方式来进行通信。
微服务架构中的服务通常是由小型、自治的团队来开发和管理的。每个服务都有自己的数据库,可以独立地进行扩展和升级。服务之间的依赖关系通常是通过API接口来管理的,而不是通过硬编码的方式来管理的。
微服务架构的优点包括:
- 可扩展性:由于每个服务都是独立的,因此可以根据需要对服务进行扩展,而不会影响其他服务的运行。
- 可维护性:由于每个服务都是独立的,因此可以对服务进行独立的维护和升级,而不会影响其他服务的运行。
- 可复用性:由于每个服务都是独立的,因此可以将服务复用在其他项目中,从而提高开发效率和代码质量。
- 可测试性:由于每个服务都是独立的,因此可以对服务进行独立的测试,而不会影响其他服务的运行。
微服务架构的缺点包括:
- 部署和管理复杂性:由于每个服务都是独立的,因此需要对每个服务进行单独的部署和管理,这可能会增加部署和管理的复杂性。
- 故障隔离性:由于每个服务都是独立的,因此如果一个服务出现故障,可能会导致整个应用程序出现故障,这可能会增加故障隔离性的问题。
- 数据一致性:由于每个服务都是独立的,因此需要对数据一致性进行特殊的处理,这可能会增加数据一致性的问题。
- 性能问题:由于每个服务都是独立的,因此可能需要增加网络通信的成本,这可能会导致性能问题。
SpringCloud微服务架构
Eureka 介绍
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服务器 | Eureka客户端 |
---|---|---|
server.port | 固定 | 动态 |
eureka.instance.metadata-map.app.instance-id | 固定 | 动态 |
eureka.instance.metadata-map.app.name | 固定 | 动态 |
eureka.server.enable-jmx | 固定 | false |
eureka.server.jmx-port | 固定 | false |
eureka.server.healthcheck.port | 固定 | false |
eureka.server.auto-registration.enabled | 固定 | false |
eureka.client.register-with-eureka | false | true |
eureka.client.fetch-registry | false | true |
eureka.client.healthcheck-interval-seconds | false | 30 |
eureka.client.register-on-startup | false | true |
eureka.client.renewal-interval-seconds | false | 90 |
eureka.client.region | 默认 | 默认 |
代码
1. eureka_server
项目地址
项目地址
启动步骤
- 创建Eureka Server的配置文件,通常使用的是application.properties或application.yml文件。在配置文件中,需要配置Eureka Server的端口号、注册中心的地址等信息。例如:
eureka.server.port=8761
eureka.server.registryURL=http://localhost:8761/eureka/
eureka.server.metadata-map.application.version=1.0.0
- 创建Eureka Server的类,通常使用的是EurekaServerApplication类。在类中,需要使用@SpringBootApplication注解来启用Spring Boot的自动配置,并使用main方法来启动Eureka Server。例如:
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);
}
}
- 使用IDEA或Maven等工具运行Eureka Server应用程序。在运行过程中,Eureka Server将会启动并监听指定的端口号,等待服务实例的注册和注销。
注意:在运行Eureka Server之前,需要确保Eureka Server的配置文件中的注册中心地址是正确的,并且已经启动了Eureka Server。
测试
访问路径 http://localhost:8761/