springcloud
简介
SpringCloud是一系列框架的有序集合。它利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。SpringCloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
反正SpringCloud是一个用来做微服务的框架,主要是基于SpringBoot来完成的,相关的微服务框架还有比较出名的Dubbo和DubboX。关于微服务是用来做什么的,有什么好处自行百度。
SpringCloud是Spring全家桶中的一员,所以SpringCloud对于Spring的其他组件都有着很好的支持。
SpringCloud主要采用的Eureka,Dubbo主要采用的是zookeeper。
一.注册中心 eureka
1.导入所需依赖
2.添加配置文件
3.启动类添加注解
1.倒入所需jar
<!-- 配置parent标签 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 规定版本 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!-- cloud 版本号-->
<spring-cloud.version>Dalston.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- eureka 坐标-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<!-- cloud 部署-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>spring-boot-eureka</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.添加配置文件 application.yml
spring:
application:
name: eureka-server
server:
port: 8081 tomcat端口号
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:8081/eureka #注册中心的端口号
3.启动类添加eureka注解
@EnableEurekaServer
@SpringBootApplication
public class SpringbootEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootEurekaApplication.class, args);
}
}
二.服务 提供注册 server
1.导入所需jar
2.添加配置文件
3.写demo
4.启动类添加注册服务注解
1.导入所需jar(同上)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 规定版本 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!-- cloud 版本号-->
<spring-cloud.version>Dalston.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- eureka 坐标-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<!-- cloud 部署-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>spring-boot-eureka</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.添加配置文件
server:
port: 8082
spring:
application:
name: name-Server # 注册中心内显示的名称--服务名称!
eureka:
client:
service-url:
defaultZone: http://localhost:8081/eureka/ # 路径与注册中心的端口号一致
3.写demo
@RestController
public class GoodController {
@RequestMapping("getGoodList")
public List getGoodList(){
List list = new ArrayList();
list.add("LwJIa");
list.add("女");
list.add(26);
return list;
}
}
4.启动类添加注册服务注解
@EnableEurekaClient
@SpringBootApplication
public class SpringbootServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootServerApplication.class, args);
}
}
三.服务读取配置 client
1.导入所需jar
2.添加配置文件
3.写demo
4.启动
1.pom
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 规定版本 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!-- cloud 版本号-->
<spring-cloud.version>Dalston.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- eureka 坐标-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<!-- cloud 部署-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>spring-boot-eureka</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.添加配置文件
server:
port: 8083
spring:
application:
name: name-client # 注册中心内显示的名称
eureka:
client:
service-url:
defaultZone: http://localhost:8081/eureka/ # 路径与注册中心的端口号一致
3.写demo
@RestController
public class UserController {
//创建rest 工具类
@Autowired
private RestTemplate restTemplate;
//调用端 调用中心已经注册的服务
@RequestMapping("toUser")
public String toUser(){
System.out.println("调用服务");
String resut = restTemplate.getForObject("http://name-SERVER/getGoodList",String.class);
return "ok"+resut;
}
}
4.启动类读取配置
@EnableDiscoveryClient//调用者注解
@EnableEurekaClient//注册服务
@SpringBootApplication
public class SpringbootClientApplication {
//声明调用工具类
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(SpringbootClientApplication.class, args);
}
}