docker部署PiggyMetrics分布式微服务

在上一篇文章里http://www.cnblogs.com/lyhero11/p/8686058.html, 讲解了如何在windows10下安装docker社区版。

那如何利用docker落地一个分布式微服务架构的系统呢? github上有一个不错的开源项目PiggyMetrics,通过这个可以学习用docker和spring cloud做分布式微服务架构。

原项目地址:https://github.com/sqshq/PiggyMetrics

国内有个网友把里边应用的mongodb数据库示例由4个合并成1个、更适合本机学习用:https://github.com/huangmeng4520/PiggyMetrics

搭建文档:https://www.jianshu.com/p/e26570d1b297?mType=Group

按照里边步骤搭建问题都不大,但整个项目的容器启动之后,其他都没问题就mongodb一直连不上。无论是应用java代码连接,还是通过第三方数据库工具Robo 3T都连不上,而进入到该mongo容器内,用mongo命令却是可以连上的。

最后https://stackoverflow.com/questions/43781672/mongo-doesnt-run-after-installing-on-docker-centos-image-failed-to-connect-to 给了我启发,

在Mongodb启动的时候带上--bind_ip_all参数。

于是乎,修改PiggyMetrics\mongodb\init.sh文件:

#!/bin/bash
if test -z "$MONGODB_PASSWORD"; then
    echo "MONGODB_PASSWORD not defined"
    exit 1
fi

auth="-u user -p $MONGODB_PASSWORD"

# MONGODB USER CREATION
(
echo "setup mongodb auth"
create_user="if (!db.getUser(‘user‘)) { db.createUser({ user: ‘user‘, pwd: ‘$MONGODB_PASSWORD‘, roles: [ {role:‘readWrite‘, db:‘piggymetrics‘} ]}) }"
until mongo piggymetrics --eval "$create_user" || mongo piggymetrics $auth --eval "$create_user"; do sleep 5; done
killall mongod
sleep 1
killall -9 mongod
) &

# INIT DUMP EXECUTION
(
if test -n "$INIT_DUMP"; then
    echo "execute dump file"
    until mongo piggymetrics $auth $INIT_DUMP; do sleep 5; done
fi
) &

echo "start mongodb without auth"
chown -R mongodb /data/db
gosu mongodb mongod "[email protected]" --bind_ip_all

echo "restarting with auth on"
sleep 5
exec gosu mongodb mongod --auth "[email protected]" --bind_ip_all

重新build sqshq/piggymetrics-mongodb image,然后重新启动data-mongodb容器。一切正常。

最后记录一下学习这个项目过程中的笔记吧:

https://blog.csdn.net/shi1451042748/article/details/52996046

https://blog.csdn.net/nihaomanihao11/article/details/73822755

https://www.jianshu.com/p/e26570d1b297?mType=Group

https://github.com/sqshq/PiggyMetrics

开发模式:
docker-compose -f docker-compose.yml -f docker-compose.dev.yml build
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

阿里云镜像加速:
https://wk8aklru.mirror.aliyuncs.com
DaoCloud镜像加速:
http://7c698057.m.daocloud.io

查看所有容器
docker ps -a
查看所有镜像
docker images

docker rm $(docker ps -aq) 删除所有的容器

#
# 删除容器应用
#
docker ps -a --format "{{.ID}}" | foreach {
docker stop $_
docker rm $_
}

#
# 删除本地容器镜像
#
docker images --format "{{.ID}}" | foreach {
docker rmi stop $_
}

PiggyMetrics项目重要端口:
http://localhost:80 - Gateway
http://localhost:8761 - Eureka Dashboard
http://localhost:9000/hystrix - Hystrix Dashboard (paste Turbine stream link on the form)
http://localhost:8989 - Turbine stream (source for the Hystrix Dashboard)
http://localhost:15672 - RabbitMq management (default login/password: guest/guest)

 

mongodb启动脚本init.sh需用notepad++转成unix格式

init.sh中mongodb的ip绑定到了127.0.0.1,可用如下方法去除Ip绑定,在init.sh最后做如下修改:
gosu mongodb mongod "[email protected]" --bind_ip_all
exec gosu mongodb mongod --auth "[email protected]" --bind_ip_all
两个地方都加上 --bind_ip_all

原文地址:https://www.cnblogs.com/lyhero11/p/8966498.html

时间: 2024-08-30 07:30:25

docker部署PiggyMetrics分布式微服务的相关文章

基于docker 如何部署surging分布式微服务引擎

1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微服务引擎,再把业务进行剥离, 通过配置路径就能驱动加载业务模块,这样的细粒度设计,能更加灵活从业务中针对于对象加以细分,能更加灵活的拆分聚合服务.而这篇文章我们来谈谈基于docker 如何部署 surging源码下载 2.概述 容器,就是用来存放镜像的器皿,而镜像是构建成的一个轻量的.独立的.可执行

Spring Cloud分布式微服务云架构构建

大型企业分布式微服务云架构服务组件 实现模块化.微服务化.原子化.灰度发布.持续集成 commonservice eurekaNetflix 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移. commonservice configSpring 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储.Git以及Subversion. Spring Cloud BusSpring 事件.消息总线,用于在集群(例如,配置变化事件

分布式微服务b2b b2c o2o电子商务云平台

大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 技术解决方案 开发语言: java.j2ee 数据库:mysql JDK支持版本: JDK1.6.JDK1.7.JDK1.8版本 核心技术:分布式.云服务.微服务.服务编排等. 核心架构: 使用Spring Cloud分布式微服务云架构进行服务化开发,所有模块功能完全解耦,提供服务发现.注册.配置中心.消息总线.负载均衡.断路器.数据监控等. 技术列

Spring cloud--Hong hu Cloud分布式微服务云系统—Config

介绍 Spring Cloud Config 为分布式系统中的外部配置提供服务器和客户端支持.使用 Config Server,您可以在所有环境中管理应用程序的外部属性.客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同, 因此它们与 Spring 应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用.随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切.服务器存储后端

Spring cloud--鸿鹄Cloud分布式微服务云系统—Config

介绍 Spring Cloud Config 为分布式系统中的外部配置提供服务器和客户端支持.使用 Config Server,您可以在所有环境中管理应用程序的外部属性.客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同, 因此它们与 Spring 应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用.随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切.服务器存储后端

互联网分布式微服务云平台规划分析--平台整体规划

导语 近期公司孵化了一个互联网产品,随着业务发展,产品运营后用户数据量(过亿).业务数据量(过100亿)较大,技术团队配合产品.运营快速定制化开发, 还要考虑产品涉及的资金安全.消息的及时性.业务的制动化处理,我们选择鸿鹄cloud分布式云架构平台作为公司产品核心企业架构. 产品平台规划 微服务注册中心(分布式集群部署).微服务配置中心(分布式集群部署).服务网关平台(分布式集群部署). 微服务监控平台.SSO单点登录平台(分布式集群部署).微服务相关组件(分布式集群部署).后台管理平台. 定时

互联网分布式微服务云平台规划分析--系统管理平台

1.介绍 鸿鹄云架构[系统管理平台]是一个大型企业.分布式.微服务.云架构的JavaEE体系快速研发平台,基于模块化.微服务化.原子化.热部署的设计思想,使用成熟领先的无商业限制的主流开源技术构建. 采用服务化的组件开发模式,可实现复杂的业务功能.使用Maven进行项目的构建管理,采用Jenkins进行持续集成,主要定位于大型分布式企业系统或大型分布式互联网产品的架构.使用当前最流行最先进的开源技术实现服务组件化及管理,真正为企业打造分布式微服务云架构平台. ? ?2.平台基础功能 首页统计 待

(一)spring cloud互联网分布式微服务云平台规划分析--spring cloud平台整体规

导语 近期公司孵化了一个互联网产品,随着业务发展,产品运营后用户数据量(过亿).业务数据量(过100亿)较大,技术团队配合产品.运营快速定制化开发, 还要考虑产品涉及的资金安全.消息的及时性.业务的制动化处理,我们选择鸿鹄cloud分布式云架构平台作为公司产品核心企业架构. 产品平台规划 微服务注册中心(分布式集群部署).微服务配置中心(分布式集群部署).服务网关平台(分布式集群部署). 微服务监控平台.SSO单点登录平台(分布式集群部署).微服务相关组件(分布式集群部署).后台管理平台. 定时

spring cloud互联网分布式微服务云平台规划分析--spring cloud系统管理平台

1.介绍 鸿鹄云架构[系统管理平台]是一个大型企业.分布式.微服务.云架构的JavaEE体系快速研发平台,基于模块化.微服务化.原子化.热部署的设计思想,使用成熟领先的无商业限制的主流开源技术构建. 采用服务化的组件开发模式,可实现复杂的业务功能.使用Maven进行项目的构建管理,采用Jenkins进行持续集成,主要定位于大型分布式企业系统或大型分布式互联网产品的架构.使用当前最流行最先进的开源技术实现服务组件化及管理,真正为企业打造分布式微服务云架构平台. ???2.平台基础功能 首页统计 待