微服务下 Spring Boot 应用多环境发布

说明

解决微服务在多套环境发布的问题,解决开发环境和预发环境切换的问题,支持 N 套开发环境水平扩展。

Spring Boot Dockerfile 通用模板

FROM registry.cn-hangzhou.aliyuncs.com/micro-java/openjdk:8-jre-alpine
MAINTAINER 545544032@qq.com
ENV TZ="Asia/Shanghai" JVM_PARAMS=" " SPRING_PARAMS=" "
ADD target/*.jar /server.jar
EXPOSE 8080
CMD java $JVM_PARAMS -Djava.security.egd=file:/dev/./urandom -jar /server.jar $SPRING_PARAMS

Note:registry.cn-hangzhou.aliyuncs.com/micro-java/openjdk:8-jre-alpine 基于镜像 openjdk:8-jre-alpine,额外安装了工具 curl,用于 docker service 的 health check

开发/测试环境 docker stack 通用模板

version: '3.4'
services:
    "{{ service_name }}":
         image: "{{ registry_url }}/{{ image_name }}:{{ image_version }}"
         environment:
           JVM_PARAMS: "{{ jvm_heap }}"            # 例如: -Xmx800m -Xms800m
           SPRING_PARAMS: " {{ spring_params }}"
         networks:
           - overlay-network
         volumes:
           - type: bind
             source: "/data/spring-boot/{{ service-name }}/application.properties"
             target: /application.properties
         stop_grace_period: 30s 
         deploy:
           replicas: 2
           resources:
             limits:
               memory: "{{ memory_limit }}"              # 例如 : 1024MB
           update_config:
             parallelism: 1            
             delay: 0s                 
             failure_action: rollback  
             max_failure_ratio: 0      
             order: stop-first
           restart_policy:
             condition: on-failure
             max_attempts: 3
         healthcheck:
           test: "curl 127.0.0.1:8080 || exit 1"
           interval: 3s
           timeout: 5s
           retries: 3
           start_period: 1m

networks:
  overlay-network:
    driver: overlay
    attachable: true

Note:此为 Ansible 中的动态模板,需要先根据环境变量渲染成具体的服务发布时用的 stack.yml 文件


待续。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,160评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,158评论 6 342
  • 清明时节 风过无痕 我 丟了你
    乖啦乖乖啦阅读 1,571评论 0 0
  • 你往北,我向南 你居西,我逐东 我站在门外,你依靠窗前 你凝视着云朵,我仰望着蓝天
    咚个冬阅读 1,526评论 1 2

友情链接更多精彩内容