SpringCloud作用:
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,
它为基于JVM的云应用开发中涉及的配置管理、
服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
SpringCloud各个组件作用:
Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:
Spring Cloud Config
分布式配置
Spring Cloud Netflix
整合Netflix公司微服务组件
Eureka - 实现注册中心
Eureka-Server
Eureka-Client(服务提供者,服务消费者)
Ribbon(负载均衡组件)+RestTemplate(Rest接口调用)
Feign(完全通过接口的方式来访问)
Hystrix(断路器)
Zuul(API路由)
Spring Cloud0 CloudFoundry、
Spring Cloud AWS、
Spring Cloud Security、
Spring Cloud Commons、
Spring Cloud Zookeeper、
Spring Cloud CLI等项目。
服务注册
1.添加依赖:
SpringCloud依赖库版本 Finchley.RELEASE:
<dependencies>
<!-- eureka注册中心 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
2. 入口类中添加 @EnableEurekaServer:
@EnableEurekaServer
@SpringBootApplication
public class ServerApp {
public static void main(String[] args) {
SpringApplication.run(ServerApp.class, args);
}
}
3. 配置,使用yml文件:
server:
port: 8067 #内嵌应用服务器占用端口
eureka:
instance:
hostname: localhost #实例主机名
client:
register-with-eureka: false
fetch-registry: false
service-url: #服务URL Map结构
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
服务提供者
1.添加依赖:
<dependencies>
<!-- eureka注册中心 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
2. 入口类中添加 @EnableEurekaClient:
@SpringBootApplication
@EnableEurekaClient
public class ServiceProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceProviderApplication.class, args);
}
}
3. 配置,使用yml文件:
server:
port: 6705
spring:
application:
name: service-provider # 设置应用名
eureka:
client:
serviceUrl: #注册中心地址,和前面注册中心的地址一样
defaultZone: http://localhost:8067/eureka/