# spring-cloud
最简单的spring-cloud 使用
Netflix的部分组件及功能特性如下:
Eureka(服务注册与发现框架):一个基于REST风格的服务组件,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移
Ribbon(客户端负载均衡器):提供客户端负载均衡算法,将Netflix的中间层服务连接起来
Feign(声明式HTTP客户端):可以创建声明式、模板化的HTTP客户端,进行微服务调用
![输入图片说明](https://gitee.com/uploads/images/2018/0322/093703_21734fd4_922434.png "屏幕截图.png")
service1和service2 代码是一样的,只有配置文件中 server.port 端口不一样,
client-a 是 采用 Ribbon 进行服务调用 。
client-b 是采用 Feign 进行服务调用。
我用的是spring-boot 2.0版本 ,所以pom 文件中需要注意一下。
在 service 中 pom 文件 需要添加如下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
在client-b 中 pom 文件 需要添加如下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
在client-a 中pom 文件 需要添加如下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
项目启动方式,如下图:
必须以spring-boot:run 启动。
![项目启动说明](https://gitee.com/uploads/images/2018/0322/094614_412b6a43_922434.png "屏幕截图.png")
先启动discovery ,然后在浏览器访问 http://localhost:8081/ 就可以看到服务注册中心了
之后再启动 service 就可以在注册中心看到服务提供者了,并且可以直接在浏览器访问暴露的服务了。
服务消费者有两种 : Feign 和 Ribbon
Feign(服务消费者)client-b
特点:
1,在application 中需要添加注释,启动Feign
![输入图片说明](https://gitee.com/uploads/images/2018/0322/095722_464fed49_922434.png "屏幕截图.png")
2,需要添加一个接口 ,接口中的方法必须要和 service 中的一样,
![输入图片说明](https://gitee.com/uploads/images/2018/0322/095925_4b0bcd9f_922434.png "屏幕截图.png")
Ribbon (服务消费者) client-a
特点:
1,需要在 application 中添加 RestTemplate
![输入图片说明](https://gitee.com/uploads/images/2018/0322/100204_49898220_922434.png "屏幕截图.png")
2,在调用的时候 需要通过 RestTemplate 来调用。
![输入图片说明](https://gitee.com/uploads/images/2018/0322/100314_3f0c177a_922434.png "屏幕截图.png")
源码地址 :https://gitee.com/ms-zhang/spring-cloud.git
最简单的spring-cloud 使用
Netflix的部分组件及功能特性如下:
Eureka(服务注册与发现框架):一个基于REST风格的服务组件,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移
Ribbon(客户端负载均衡器):提供客户端负载均衡算法,将Netflix的中间层服务连接起来
Feign(声明式HTTP客户端):可以创建声明式、模板化的HTTP客户端,进行微服务调用
![输入图片说明](https://gitee.com/uploads/images/2018/0322/093703_21734fd4_922434.png "屏幕截图.png")
service1和service2 代码是一样的,只有配置文件中 server.port 端口不一样,
client-a 是 采用 Ribbon 进行服务调用 。
client-b 是采用 Feign 进行服务调用。
我用的是spring-boot 2.0版本 ,所以pom 文件中需要注意一下。
在 service 中 pom 文件 需要添加如下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
在client-b 中 pom 文件 需要添加如下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
在client-a 中pom 文件 需要添加如下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
项目启动方式,如下图:
必须以spring-boot:run 启动。
![项目启动说明](https://gitee.com/uploads/images/2018/0322/094614_412b6a43_922434.png "屏幕截图.png")
先启动discovery ,然后在浏览器访问 http://localhost:8081/ 就可以看到服务注册中心了
之后再启动 service 就可以在注册中心看到服务提供者了,并且可以直接在浏览器访问暴露的服务了。
服务消费者有两种 : Feign 和 Ribbon
Feign(服务消费者)client-b
特点:
1,在application 中需要添加注释,启动Feign
![输入图片说明](https://gitee.com/uploads/images/2018/0322/095722_464fed49_922434.png "屏幕截图.png")
2,需要添加一个接口 ,接口中的方法必须要和 service 中的一样,
![输入图片说明](https://gitee.com/uploads/images/2018/0322/095925_4b0bcd9f_922434.png "屏幕截图.png")
Ribbon (服务消费者) client-a
特点:
1,需要在 application 中添加 RestTemplate
![输入图片说明](https://gitee.com/uploads/images/2018/0322/100204_49898220_922434.png "屏幕截图.png")
2,在调用的时候 需要通过 RestTemplate 来调用。
![输入图片说明](https://gitee.com/uploads/images/2018/0322/100314_3f0c177a_922434.png "屏幕截图.png")
源码地址 :https://gitee.com/ms-zhang/spring-cloud.git