5

代码托管于github:https://github.com/LoveIpo/spring-cloud-demo.git

一、前言

项目转型,整个项目要使用现在比较热的微服务架构。老板让我整一个spring cloud 的简单demo出来,在网上很少有比较全的demo。经过几次熬夜,终于完成了spring cloud 组件部署的demo,并且能顺利运行。深夜发文,便于分享和查阅。

二、环境准备

安装STS作为spring cloud开发工具
url: https://spring.io/tools/sts/all/

三、部署spring cloud 的各个组件

3.1 部署Eureka Server
最先启动的是eureka-server,并且你需要在整个测试过程中保持它的启动状态,因为它是注册中心,大多数服务必须依赖于它才能实现必要的功能。

  • 导入eureka-server的maven项目。

图片描述

  • 运行Eureka Server
    图片描述
  • 如果部署成功访问Eureka server的url:http://localhost:7071/

3.2 部署微服务service-A(由于没有涉及到项目,所以简单实现参数相加)

  • 导入service-A的maven项目。
  • 运行service-A
  • 如果部署成功访问service-A 的url:http://localhost:2222/add?a=111&b=113

3.3 部署微服务service-B(简单实现参数相减)

  • 导入service-B2的maven项目。
  • 运行service-B2
    图片描述
  • 如果部署成功访问service-B的url:http://localhost:7078/sub?a=111&b=113
  • 微服务B调用微服务A的url:http://localhost:7078/testServiceA?a=111&b=113
    由上面两个url可以看出端口号都是service-B的。

3.4 部署zuul(Zuul相当于是Web网站后端所有请求的前门,详细的实现可以看code)

  • 导入zuul的maven项目。
  • 运行zuul
    图片描述
  • zuul的端口号是:7073
    通过zuul访问服务A的url:http://localhost:7073/api-a/add?a=111&b=113。通过zuul访问服务B的url:http://localhost:7073/api-b/sub?a=111&b=113

3.5 部署ribbon(负载均衡)
在这个demo中只是对服务B进行负载均衡

    • 在部署ribbon之前,先把service-B3 部署上,步骤跟部署service-B2是一样的。主要是使得服务B生成两个实例,即service-B有两个不同的端口号。可以在eureka-server界面上看到效果。
    • 导入ribbon的maven项目。
    • 运行ribbon。
      图片描述
    • 运行ribbon的端口是:7072.
      在浏览器中通过ribbon访问服务B的url是:http://localhost:7072/sub?a=111&b=113
      当你刷新浏览器的时候,可以看到服务B的端口号在不停的变化,就说明ribbon 对服务B执行了负载均衡。效果如图

    图片描述

    夜深人静。。。其他组件后续更新。有疑问可以留言。


    码农界的彭于晏
    163 声望66 粉丝

    走一步,寻一步,待天明,寻尽世界!