SpringCloud 简介
什么是springcloud

SpringCloud官方文档: http://projects.spring.io/spring-cloud/
SpringBoot 和 SpringCloud 的关系

SpringCloud主要框架

SpringCloud 好 Dubbo 对比

我们接下来先介绍 发现组件 Eureka
Eureka 介绍:


接下来我们在我们代码里面加入 tensquare_eureka 模块
在创建 tensquare_eureka 模块之后 先不要着急 首先在父模块的 pom 里面加入 springcloud 的版本依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
接下来 在tensquare_eureka pom 模块中加入 Eureka 的依赖模块
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
接下来 在 配置文件里面加入:
server:
port: 6868 #服务端口
eureka:
client:
registerWithEureka: false #是否将自己注册到Eureka 服务中,本身就是所有无需注册
fetchRegistry: false #是否从Eureka 中获取注册信息
serviceUrl: # Eureka 客户端与Eureka 服务端进行交互的地址
defaultZone: http://127.0.0.1:${server.port}/eureka/
spring:
application:
name: tensquare-eureka
最后创建 启动类 这里面有个坑需要大家注意 :
大家创建启动类的名字 如果后缀不是以 Application 结尾的话 会报错:
Caused by: org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
这里大家需要注意 作者调试了很久 以为会是jar 包冲突 以为配置缺少什么 最后发现改了下启动类的名称加上了Application 就没有问题了。
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
结果: 运行程序
在地址栏输入 http://127.0.0.1:6868/ 可以看到如下的服务列表


服务注册
我们现在就可以将我们之前写好的微服务注册到Eureka中 这样微服务之前就可以相互调用了
1) 在想要注册到Eureka上的微服务模块 pom 加入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2)在 微服务模块配置文件中加入配置
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:6868/eureka
instance:
prefer-ip-address: true
3)修改每个微服务模块的的启动类 添加注解
@EnableEurekaClient
4)观察 Eureka 服务器端 微服务注册情况

保护模式:

网友评论