前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker下的Spring Cloud三部曲之一:极速体验

Docker下的Spring Cloud三部曲之一:极速体验

作者头像
程序员欣宸
发布2022-05-06 13:37:13
2430
发布2022-05-06 13:37:13
举报
文章被收录于专栏:实战docker

从本章开始,我们一起在Docker下实战Spring Cloud的开发和部署,整个实战分为以下三章进行:

  1. Docker下极速体验注册中心、服务提供者、服务消费者;
  2. 细说Spring Cloud开发;
  3. 实战扩容;

本章是三部曲的第一篇,我们用最短的时间、最简单的操做一起在Docker下体验SpringCloud的注册中心、服务提供者、服务消费者;

原文地址:http://blog.csdn.net/boling_cavalry/article/details/79177930

实战环境

本次实战的网络机器信息如下图:

这里写图片描述
这里写图片描述

实战内容

这个实战环境提供以下服务:

  1. eureka是注册中心;
  2. provider启动后注册到eureka;
  3. consumer启动后注册到eureka;
  4. 浏览器访问consumer的controller;
  5. consumer收到请求后,通过eureka取得provider的地址,然后发请求到provider;
  6. provider返回一个字符串给consumer,该字符串中有provider的IP地址;
  7. consumer把这个字符串返回给浏览器;

容器信息

环境中的eureka、provider、consumer都是docker容器,它们的名字和IP如下表所示:

容器名

ip

功能

springcloud_eureka_1

172.17.0.2

注册中心

springcloud_provider_1

172.17.0.3

提供服务

springcloud_consumer_1

172.17.0.4

提供浏览器访问的http接口,对应的响应会调用provider的服务

软件信息

本次实战的环境信息如下:

  1. 操作系统:Ubuntu16;
  2. Docker版本:17.03.2-ce;
  3. JDK:1.8.0_161;

docker-compose配置

创建一个docker-compose.yml文件,内容如下:

代码语言:javascript
复制
eureka:
  image: bolingcavalry/eureka-server:0.0.1-SNAPSHOT
  ports:
    - "8081:8080"
  tty: true
provider:
  image: bolingcavalry/service-provider:0.0.1-SNAPSHOT
  links:
    - eureka:eurekahost
  tty: true
consumer:
  image: bolingcavalry/service-consumer:0.0.1-SNAPSHOT
  links:
    - eureka:eurekahost
  ports:
    - "8083:8080"
  tty: true

启动容器

在docker-compose.yml所在目录下执行以下命令,启动所有容器:

代码语言:javascript
复制
sudo docker-compose up -d

启动时控制台显示以下信息:

代码语言:javascript
复制
ubuntu@VM-129-56-ubuntu:~/work/springcloud$ clear
Creating springcloud_eureka_1   ... done
Creating springcloud_eureka_1   ... 
Creating springcloud_consumer_1 ... done
Creating springcloud_provider_1 ... done

执行命令sudo docker logs -f springcloud_eureka_1查看注册中心启动的情况,看到如下信息时表示注册中心启动成功:

代码语言:javascript
复制
2018-01-26 16:56:52.540  INFO 1 --- [      Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl    : Got 1 instances from neighboring DS node
2018-01-26 16:56:52.540  INFO 1 --- [      Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl    : Renew threshold is: 1
2018-01-26 16:56:52.540  INFO 1 --- [      Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl    : Changing status to UP
2018-01-26 16:56:52.601  INFO 1 --- [      Thread-11] e.s.EurekaServerInitializerConfiguration : Started Eureka Server
2018-01-26 16:56:52.833  INFO 1 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

执行命令sudo docker logs -f springcloud_provider_1查看服务提供者的启动情况,看到如下信息时表示服务提供者启动成功:

代码语言:javascript
复制
2018-01-26 16:56:51.826  INFO 1 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2018-01-26 16:56:51.833  INFO 1 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8080
2018-01-26 16:56:51.871  INFO 1 --- [           main] c.b.s.ServiceProviderApplication         : Started ServiceProviderApplication in 58.522 seconds (JVM running for 62.865)

执行命令sudo docker logs -f springcloud_consumer_1查看服务消费者的启动情况,看到如下信息时表示服务消费者启动成功:

代码语言:javascript
复制
2018-01-26 16:56:54.097  INFO 1 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_SERVICE-CONSUMER/d39efe3da1c0:service-consumer:8080: registering service...
2018-01-26 16:56:54.649  INFO 1 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2018-01-26 16:56:54.655  INFO 1 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8080
2018-01-26 16:56:54.676  INFO 1 --- [           main] c.b.s.ServiceConsumerApplication         : Started ServiceConsumerApplication in 61.268 seconds (JVM running for 65.699)

验证

访问http://localhost:8081/可以查看注册中心的首页,如下图所示,红框中表示服务提供者和消费者都连上了注册中心:

这里写图片描述
这里写图片描述

访问http://www.bolingcavalry.com:8083/user/aaa/bbb可以调用到服务消费者server的网页,此时服务消费者会调用服务提供者的服务,服务提供者的响应是用户的名称和id信息,以及自己的IP地址,consumer收到这些信息后,返回到网页,如下图:

这里写图片描述
这里写图片描述

至此,我们已在Docker下快速体验了SpringCloud的注册中心以及服务的提供和消费等功能,接下来的章节我们将这些功能背后的实现逐个展开;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实战环境
  • 实战内容
  • 容器信息
  • 软件信息
  • docker-compose配置
  • 启动容器
  • 验证
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档