版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013219624/article/details/85064946
1.准备
为方便测试,建了多项目工程,方便开发,目录结构如下
springcloud-demo
api # 公共模块
eureka-7001 # eureka注册中心
provider-8001 # 服务提供者provider
consumer-9001 # 服务消费者consumer
2.springcloud-demo引入依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.9.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
注:主要就是Springboot(1.5.9.RELEASE)和Springcloud(Dalston.SR1) 如果版本不兼容可能会出现错误
3.api
没什么可说的 就是一些公共的类 后面会对他改造 所以取名是api 不是common
4.eureka-7001
# 依赖引入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
# EurekaApplication添加@EnableEurekaServer,开启服务中心
# application.yml配置
server:
port: 7001
eureka:
instance:
# eureka服务端的实例名称
hostname: localhost
client:
# false表示不向注册中心注册自己
register-with-eureka: false
# false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
注:启动后可以直接访问注册中心
5.provider-8001
# 依赖引入
<!-- actuator监控信息完善 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 将微服务provider侧注册进eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
# ProviderApplication添加@EnableEurekaClient,服务提供者也就是要到注册中心 注册自己的服务
# application.yml配置
server:
port: 8001
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
instance:
instance-id: provider-8001
# 访问路径可以显示IP地址
prefer-ip-address: true
info:
app.name: provider-8001
company.name: www.boomsecret.com
build.artifactId: $project.artifactId$
build.version: $project.version$
注:$xx$ 是自定义符号
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<delimiters>
<delimiter>$</delimiter>
</delimiters>
</configuration>
</plugin>
</plugins>
6.consumer-9001
# 依赖引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
# RestTemplate配置 可以调用provider服务
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
return new RestTemplate(factory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(5000);
factory.setConnectTimeout(15000);
return factory;
}
}
7.总结
其实这个例子就是简单的eureka注册中心搭建 和服务提供者的简单实现 接下来会更深入的讲解
源码:https://gitee.com/jsjack_wang/springcloud-demo master分支