正文
5 Jenkins+Docker+SpringCloud微服务持续集成
5.1 Jenkins+Docker+SpringCloud部署方案优化
上面部署方案存在的问题:
- 一次只能选择一个微服务部署
- 只有一台生产者部署服务器
- 每个微服务只有一个实例,容错率低
优化方案:
- 在一个Jenkins工程中可以选择多个微服务同时发布
- 在一个Jenkins工程中可以选择多台生产服务器同时部署
- 每个微服务都是以集群高可用形式部署
5.2 Jenkins+Docker+SpringCloud集群部署流程说明
5.3 修改所有微服务配置
注册中心配置
#集群版
spring: application: name: EUREKA-HA --- server: port: 10086 spring: # 指定profile=eureka-server1 profiles: eureka-server1 eureka: instance: # 指定当profile=eureka-server1时,主机名是eureka-server1 hostname: 192.168.5.6 client: service-url: # 将自己注册到eureka-server1、eureka-server2这个Eureka上面去 defaultZone: http://192.168.5.6:10086/eureka,http://192.168.5.7:10086/eureka --- server: port: 10086 spring: profiles: eureka-server2 eureka: instance: hostname: 192.168.5.7 client: service-url: defaultZone: http://192.168.5.6:10086/eureka,http://192.168.5.7:10086/eureka
在启动微服务的时候,加入参数: spring.profiles.active 来读取对应的配置
修改其他微服务配置
除了Eureka注册中心以外,其他微服务配置都需要加入所有Eureka服务
# Eureka配置
eureka: client: service-url: defaultZone: http://192.168.5.6:10086/eureka,http://192.168.5.7:10086/eureka # 追加Eureka访问地址
5.4 设计Jenkins集群项目的构建参数
1)安装Extended Choice Parameter插件
Extended Choice Parameter
2)创建流水线项目
3)添加参数 字符串参数:分支名称
多选框:项目名称
tensquare_eureka_server@10086,tensquare_zuul@10020,tensquare_admin_service@9001,tensquare_gathering@9002
最后效果: