分布式微服务系统部署docker+nacos+Springcloud+postgre+中间件

分布式微服务系统部署docker+nacos+Springcloud+postgre+中间件

1.准备工作

三台linux虚拟机(前端+后端+数据库中间件等)+docker安装包+镜像(postgre+nacos+中间件+系统微服务)+配置文件(docker-compose.yml+nacos配置+前端工程配置文件(cfg.js)),镜像都是在docker容器内使用

  1. 安装docker(在线)
    sudo yum install -y yum-utils
    sudo yum-config-manager
    –add-repo
    https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io
  2. 安装docker-compose(在线)
    sudo curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

----------也可自行搜索离线安装方法

  1. 从公司服务器拉取docker镜像(在线)
    docker login -uname docker地址 输入密码后拉取镜像
    docker pull 镜像名:tag
    docker pull wurstmeister/kafka:latest(必装)
    docker pull wurstmeister/zookeeper(必装)
    其他中间件看实际情况而定
  2. 离线传输镜像
    连接公司服务器
    docker save 镜像名: tag> filename.tar
    连接生产环境服务器
    docker load < filename.tar
  3. 进入测试环境nacos管理页面导出需要的配置文件,并导入到生产环境nacos,修改对应的ip和端口
  4. cfg.js从前端工程文件里导出,修改对应的ip和端口
  5. docker-compose.yml配置

version: ‘3.2’
services:
postgres:
image: postgres:14.1-alpine
env_file: /usr/pg.env
ports:
- 5432:5432
volumes:
- ./data:/var/lib/postgresql/data
zookeeper:
image: wurstmeister/zookeeper
container_name: ‘zookeeper’
restart: always
ports:
- “2181:2181”
networks:
kafka:
aliases:
- zookeeper
kafka:
image: wurstmeister/kafka:latest
container_name: ‘kafka’
restart: always
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.x.xxx
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
networks:
kafka:
aliases:
- ‘kafka’
ports:
- ‘9092:9092’
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- ‘zookeeper’
networks:
kafka:
driver: bridge

2.启动服务和镜像

  1. 启动postgre+kafka+zookeeper等,如有其它中间件需要在docker-compose.yml中配置
    安装docker-compose后,进入docker-compose.yml所在目录
    执行命令:
    启动:docker-compose up -d | 停止:docker-compose down
  2. 启动nacos
    docker run -d --name nacos-3 -p 8848:8848 -p 9848:9848 -e MODE=standalone --restart=always nacos/nacos-server:v2.1.2
  3. 启动微服务镜像
    后端:docker run -d --name hic-be-admin --network host docker.sunwaysaga.net/hic-be/admin:20 192.168.0.88 8500 test
    前端:docker run -d --name hic-emr -p8213:8213 -v /root/data/hic/emr:/usr/share/nginx/html/static docker.sunwaysaga.net/hic/emr:297 proxy_api=http://192.168.1.236:8313/ mreditor_server=http://192.168.x.xxx:8000/ his_api=http://192.168.x.xxx:8070/api/fszyy/his/
    /root/data/hic/emr:前端工程对应的cfg.js所在目录;
    mreditor_server=http://192.168.x.xxx:8000/:电子病历编辑器所在服务器ip:端口;(电子病历用)
    his_api=http://192.168.x.xxx:8070/api/fszyy/his/:his接口;(电子病历用)
  • 若在启动前端服务后,跳转失败,需要检查cfg.js文件和数据库中oauth_client_details表每个子系统的回调地址和主页是否正确

在这里插入图片描述
4. docker命令
查看本地docker镜像:
docker images
启动,停止docker服务:
systemctl start docker | systemctl stop docker
启动停止docker容器:
docker start hic-masterdata | docker stop hic-masterdata
更新容器内存:
docker container update --memory=2G --memory-swap=2G hic-be-hr
删除本地镜像:
docker rm -f hic-emr
查看容器最后200行运行日志:
docker logs -f --tail=200 consul

  • 如需进入docker容器中进行操作,例如取数据库中的表结构:
    docker exec -it 容器id /bin/bash
    导出数据库dump
    pg_dump -s -U sunway md > /tmp/md-ddl.sql
    exit:从docker容器中回到宿主机,把文件复制到宿主机指定路径
    docker cp 2a9ca49ae58d:/tmp/md-ddl.sql /tmp
  • 在启动微服务过程中,如果遇到kafka topic找不到,需要手动创建topics:
    先进入kafka容器,然后执行下面命令,加黑字体根据实际情况修改
    kafka-topics.sh --bootstrap-server=localhost:9092 --create --topic DrugDistribute
    kafka-topics.sh --bootstrap-server=localhost:9092 --create --topic DrugStockIncrease
    kafka-topics.sh --bootstrap-server=localhost:9092 --create --topic MethodLog
    kafka-topics.sh --bootstrap-server=localhost:9092 --create --topic RegCalled
    kafka-topics.sh --bootstrap-server=localhost:9092 --create --topic RegStateChanged
    kafka-topics.sh --bootstrap-server=localhost:9092 --create --topic TreatmentFinished

3.后期运维

硬盘扩展:
https://www.cnblogs.com/mihoutao/p/13826374.html
linux开放防火墙端口:
https://www.cnblogs.com/AllWjw/p/15761697.html
navicat定时备份任务:
https://blog.csdn.net/weixin_45816407/article/details/127208709
kettle基本使用:
https://blog.csdn.net/qq_52421831/article/details/127519448
运行内存清理:
http://www.nndssk.com/xtwt/186981nk5VXE.html

4.额外补充

  1. consul注册中心:
    启动:docker run -d --network host --name consul consul agent -server -bootstrap -ui -node=agent-1 -client=0.0.0.0 -bind 192.168.0.88 -datacenter=name
    导出consul中的配置文件:docker exec consul consul kv export > consul-kv.json
    导入consul中的配置文件:docker exec consul consul kv import “$(cat consul-kv.json)”
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值