古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。这篇文章主要讲述Docker下的Spring Cloud三部曲之一:极速体验相关的知识,希望能为你提供帮助。
欢迎访问我的GitHub
关于《Docker下的Spring Cloud三部曲》系列
- 【Docker下的Spring Cloud三部曲之一(极速体验)】从本章开始,我们一起在Docker下实战Spring Cloud的开发和部署,整个实战分为以下三章进行:
- Docker下极速体验注册中心、服务提供者、服务消费者;
- 细说Spring Cloud开发;
- 实战扩容;
- 本章是三部曲的第一篇,我们用最短的时间、最简单的操做一起在Docker下体验SpringCloud的注册中心、服务提供者、服务消费者;
实战环境
- 本次实战的网络机器信息如下图:
文章图片
- 这个实战环境提供以下服务:
- eureka是注册中心;
- provider启动后注册到eureka;
- consumer启动后注册到eureka;
- 浏览器访问consumer的controller;
- consumer收到请求后,通过eureka取得provider的地址,然后发请求到provider;
- provider返回一个字符串给consumer,该字符串中有provider的IP地址;
- 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的服务 |
- 本次实战的环境信息如下:
- 操作系统:Ubuntu16;
- Docker版本:17.03.2-ce;
- JDK:1.8.0_161;
- 创建一个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.540INFO 1 --- [Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl: Got 1 instances from neighboring DS node 2018-01-26 16:56:52.540INFO 1 --- [Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl: Renew threshold is: 1 2018-01-26 16:56:52.540INFO 1 --- [Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl: Changing status to UP 2018-01-26 16:56:52.601INFO 1 --- [Thread-11] e.s.EurekaServerInitializerConfiguration : Started Eureka Server 2018-01-26 16:56:52.833INFO 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.826INFO 1 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2018-01-26 16:56:51.833INFO 1 --- [main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8080 2018-01-26 16:56:51.871INFO 1 --- [main] c.b.s.ServiceProviderApplication: Started ServiceProviderApplication in 58.522 seconds (JVM running for 62.865)
- 执行命令sudo docker logs -f springcloud_consumer_1查看服务消费者的启动情况,看到如下信息时表示服务消费者启动成功:
2018-01-26 16:56:54.097INFO 1 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient: DiscoveryClient_SERVICE-CONSUMER/d39efe3da1c0:service-consumer:8080: registering service... 2018-01-26 16:56:54.649INFO 1 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2018-01-26 16:56:54.655INFO 1 --- [main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8080 2018-01-26 16:56:54.676INFO 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收到这些信息后,返回到网页,如下图:
文章图片
欢迎关注51CTO博客:程序员欣宸
推荐阅读
- #私藏项目实操分享#愚公系列2022年05月 Python教学课程 72-DRF框架之认证和权限
- 监控概述Zabbix基础Zabbix监控服
- mq从零开始实现 mq-05-实现优雅停机
- LINUX 环境下安装配置JDK详解
- 为什么不建议给MySQL设置Null值(《死磕MySQL系列 十八》)
- k8s部署-52-k8s之Prometheus(普罗米修斯)监控,简单梳理下K8S监控流程
- 呵呵,JavaScript 真好玩(苦笑脸)
- 公司官网建站笔记(腾讯云服务器装CentOS8.2系统重置密码远程ssh登陆sftp传递文件以及新建开发者账户)
- # yyds干货盘点 # 盘点对Python列表中每个元素前面连续重复次数的数列统计