• 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参数。

    于是乎,修改PiggyMetricsmongodbinit.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 "$@" --bind_ip_all
    
    echo "restarting with auth on"
    sleep 5
    exec gosu mongodb mongod --auth "$@" --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 "$@" --bind_ip_all
    exec gosu mongodb mongod --auth "$@" --bind_ip_all
    两个地方都加上 --bind_ip_all

  • 相关阅读:
    分布式超级账本Hyperledger为什么选择使用kafka引擎实现共识方案
    银行卡所属公司判断 参考自https://blog.csdn.net/well2049/article/details/79429130
    golang GBK与UTF-8互转的例子
    Welcome to Swift (苹果官方Swift文档初译与注解五)---29~34页
    Welcome to Swift (苹果官方Swift文档初译与注解四)---19~28页
    Welcome to Swift (苹果官方Swift文档初译与注解三)---11~18页
    Welcome to Swift (苹果官方Swift文档初译与注解二)---6~10页
    Welcome to Swift (苹果官方Swift文档初译与注解)
    UIButton部分功能设置(一):
    Mac下配置WebDav
  • 原文地址:https://www.cnblogs.com/lyhero11/p/8966498.html
Copyright © 2020-2023  润新知