版权声明:欢迎转载,请注明出处,谢谢。 http://blog.csdn.net/boling_cavalry/article/details/79177930

 

目录(?)[+]

 

从本章开始,我们一起在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文件,内容如下:

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所在目录下执行以下命令,启动所有容器:

sudo docker-compose up -d
  • 时控制台显示以下信息:
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查看注册中心启动的情况,看到如下信息时表示注册中心启动成功:

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查看服务提供者的启动情况,看到如下信息时表示服务提供者启动成功:

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)
  • 1
  • 2
  • 3

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

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的注册中心以及服务的提供和消费等功能,接下来的章节我们将这些功能背后的实现逐个展开;

Docker下的Spring Cloud三部曲之一:极速体验的更多相关文章

  1. Spring Cloud 负载均衡初体验

    目录 服务搭建 1.注册中心--Eureka Server 2.服务提供方--Service Provider 3.服务消费方--Service Consumer 服务消费 Feign 与断路器 Hy ...

  2. Docker composer搭建Spring Cloud Alibaba 运行环境(二)

    " Spring Cloud Alibaba要用到的组件很多,注册中心nacos, 限流sentinel, 数据库,网关等等.由于用到的组件相对较多,部署会很繁琐,最关键的是没有资源服务器, ...

  3. .NET Core下的Spring Cloud——前言和概述

    前言 前几年一直在写类似dubbo,Srping Cloud的微服务框架辗辗转转重复了多次,也重构推翻了很多次,其中诞生了"Rabbit.Rpc","Go",& ...

  4. spring-cloud-kubernetes服务发现之在k8s环境下开发spring cloud应用

    通常情况下,我们的线上的服务在迁移到k8s环境下的时候,都是采用平滑迁移的方案.服务治理与注册中心等都是采用原先的组件.比如spring cloud应用,在k8s环境下还是用原来的一套注册中心(如eu ...

  5. 使用Docker Compose编排Spring Cloud微服务

    文章目录 微服务构建实例 简化Compose的编写 编排高可用的Eureka Server 编排高可用Spring Cloud微服务集群及动态伸缩 微服务项目名称 项目微服务中的角色 microser ...

  6. Spring Cloud Data Flow初体验,以Local模式运行

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Spring Cloud Data Flow是什么,虽然已经出现一段时间了,但想必很多人不知道,因为在项目中很少有人用.不仅 ...

  7. spring cloud consul上下线体验

    spring cloud consul中默认会将spring.application.name作为ID 同一服务起多个实例时,ID默认会变成${spring.application.name}-${s ...

  8. docker swarm部署spring cloud服务

    一.准备docker swarm的集群环境 ip 是否主节点   192.168.91.13 是   192.168.91.43 否   二.准备微服务 ①eureka服务 application.y ...

  9. docker下部署spring boot

    第 5 章 Docker + Spring Boot: 快速搭建和部署Java Web应用 0.你需要: JDK 1.8 : java -version Maven 3.0+ : mvn -v Git ...

随机推荐

  1. Ubuntu16.04上用源代码安装ICE

    ubuntu16.04上用源代码安装ICE

  2. STEAM 自动安装时提示C++ 安装不了等问题

    [情况] 今天安装游戏, 安装时自动安装 Visual C++ 2015 x64 Minimum Runtime ....不成功, 提示网络源不可使用, 或者使用以下安装源 C:\ProgramDat ...

  3. python 获取文件和文件夹大小

    1.os.path.getsize可以获取文件大小 >>> import os >>> file_name = 'E:\chengd\Cd.db' >> ...

  4. fastjson 使用记录

    参考: https://www.cnblogs.com/cdf-opensource-007/p/7106018.html import com.alibaba.fastjson.JSON; impo ...

  5. Lambda学习---方法引用和其他基本应用

    package com.zx; import java.util.*; import java.util.function.*; import java.util.stream.Collectors; ...

  6. golang高性能端口扫描

    前言 最近有个小项目的需要,使用golang写了个端口扫描工具,不得不说golang的效率确实比python快的太多了.在使用一段时间golang之后,感觉有三个方面是优于python的: 一个方面是 ...

  7. WPF DataGrid列设置为TextBox控件的相关绑定

    在wpf的DataGrid控件中,某一列的数据模板为TextBox控件的话,绑定Text="{Binding TxtSn, UpdateSourceTrigger=PropertyChang ...

  8. dokuwiki 配置 sendmail 邮件发送

    dokuwiki 发送邮件有2种方式: 一是直接使用 PHP 自带发送功能,需要配置 PHP.ini 文件, 我没试过,可参考官网 https://www.dokuwiki.org/tips:mail ...

  9. First day for introducing me

    """ This is first python3 script code for lyp in Bokeyuan __author__="lyp" ...

  10. docker 学习笔记(2)--doucker file命令

    FROM base       ---- imageRUN                  ---- 执行命令ADD   ---- 添加文件COPY         ---- 拷贝文件CMD    ...