什么是微服务
微服务就是不同的模块部署在不同的服务器上面,通过接口去访问就是微服务
作用:利用分布式解决网站高并发带来的问题
什么是集群
多台服务器部署相同应用构成一个集群
作用:通过负载均衡设备共同对外提供服务
SpringCloud
SpringCloud为我们开发人员提供了快速构建分布式的一套工具,包括配置管理,服务发现(Eureka注册中心),服务消费(ribbon和Feign),路由(负载均衡),断路器。。。。一套完整的分布式微服务的治理框架。SpringCloud完全使用SpringBoot构建项目
服务提供者+消费者
服务提供者:就是提供服务被别人调用
消费者:调用别人暴露出来的接口
(举例生产者和消费者关系)
SpringCloud注册中心(Eureka)
注册中心的作用就是用来方便管理接口暴露出来的一个管理工具,如果所有的接口只是暴露出来,没有一个统一的管理工具,又有谁知道你暴露了哪些接口了,其他的开发人员怎么知道我们暴露了哪些接口出来呢。eureka是一个SpringCloud的服务注册和发现模块。
创建Eureka
我们使用IDEA开发工具,因为后期我们会新建很多的模块,所以我们一开始可以新建一个空的项目,然后我们新建一个模块
创建maven项目,zgq_eureka1模块,不创建spring Initializr的原因是会自动帮我们新建最新的版本,我们Hold不住那么高的版本!这里我们使用2.0的版本进行学习
1.添加依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath />
</parent>
<!-- 管理依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.M7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--eureka server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
</dependencies>
<!-- 注意:这里必须加,否则各种依赖有问题-->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
2.新建配置文件application.yml文件
#服务端口号
server:
port: 8100
#Eureka基本配置
spring:
application:
name: eureka-server
eureka:
instance:
hostname: 127.0.0.1
client:
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
#因为自己是注册中心,不需要注册自己
register-with-eureka: false
#因为自己是注册中心,不需要检索服务
fetch-registry: false
3.新建启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class Eureka1App {
public static void main(String[] args) {
SpringApplication.run(Eureka1App.class, args);
}
}
4.启动项目
浏览器输入:http://127.0.0.1:8100/
看到这样的界面说明eureka搭建成功!