SpringCloud是微服务架构思想的一个具体实现方式,为开发人员提供了构建分布式系统的一些组件(服务注册与发现eureka、熔断器hystrix、分布式配置SpringCloud Config、网关Zuul、控制总线SpringCloud Bus等)。SpringCloud的开发是基于SpringBoot框架,可以将多个SpringBoot的应用(可以称作是微服务应用)集成起来,从而形成一个SpringCloud生态圈。
SpringCloud的组成
Spring Cloud Netflix
是对Netflix开发的一套分布式服务框架的封装,包括服务的发现和注册,负载均衡、断路器、REST客户端、请求路由等。
Spring Cloud Config
将配置信息中央化保存, 配置Spring Cloud Bus可以实现动态修改配置文件
Spring Cloud Bus
分布式消息队列,是对Kafka, MQ的封装
Spring Cloud Security
对Spring Security的封装,并能配合Netflix使用
Spring Cloud Zookeeper
对Zookeeper的封装,使之能配置其它Spring Cloud的子项目使用
Spring Cloud Eureka
Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能。
需要提前安装好JDK和maven,并在IDEA里面配置上。此处就不多说了
创建SpringCloud的注册中心服务端模块
File>>New>>Module
点击下一步到这个窗口,选择SpringCloud Discovery>>Eureka Server
这样生成的maven项目里面自带eureka的服务依赖,需要手动添加springBoot的相关依赖(pom里面有关test的依赖可以删除)
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
org.springframework.boot
spring-boot-starter-web
在启动类上添加@EnableEurekaServer注解,表示该模块为eureka的服务端
package com.example.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
此时启动的时候,注册中心端口号是8080,默认注册中心地址是localhost:8761/eureka/,启动报错如下
无法连接到默认的注册中心地址。
修改 resources资源包里面有application.properties配置文件,也可以修改为application.yml文件
在配置文件中添加该服务的端口,以及注册中心地址,注册中心地址的defaultZone一定要使用驼峰式,使用default-zone的有时无法识别。
##服务名称
spring.application.name=eureka
##端口
server.port=9001
##注册中心地址
eureka.client.service-url.defaultZone=http://localhost:9001/eureka/
再启动项目后,地址栏输入注册中心访问地址,如下,我们发现他本身向自己注册了(默认注册),可以通过配置文件不向注册中心注册自己
##是否向注册中心注册自己
eureka.client.register-with-eureka=false
修改后再次启动
到此,注册中心的服务端已经搭建好了。有木有非常简单!!因为SpringCloud官方已经封装的非常非常完全,只需要我们在pom中引入eureka服务端的依赖,在启动类加上eureka服务端的注解,在配置文件中修改一些自身属性,eureka服务端就完成了。
创建eureka客户端模块
与创建eureka服务端前面步骤类似,在选择创建类型时,选择Eureka Discovery Client
生成的项目中,自动添加了eureka客户端依赖,手动添加springBoot的相关依赖
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.boot
spring-boot-starter-web
启动类上添加@EnableEurekaClient或者@EnableDiscoveryClient,表示这个项目是作为eureka的客户端的(可以理解为就是我们业务模块的应用)
package com.example.client;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@EnableEurekaClient
@SpringBootApplication
public class ClientApplication {
public static void main(String[] args) {
SpringApplication.run(ClientApplication.class, args);
}
}
在配置文件中维护项目名称、端口、以及注册中心的地址
spring.application.name=clientApp
server.port=9002
eureka.client.service-url.defaultZone=http://localhost:9001/eureka/
启动客户端项目,刷新注册中心地址
到此erueka客户端项目也搭建好了,通eureka服务端一样,引入依赖,启动类添加注解即可。
上述是springCloude入门搭建,非常的简单,后续讲解如何使用。
在下也是在摸索阶段,有什么问题或者遗漏的地方欢迎大家及时指点