- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
《Redis开发实战》应用灰度发布
应用灰度发布一个完整的线上应用,总是需要的不断进行开发版本的升级迭代,为了保证应用的新旧版本的应用可以平滑的过渡,往往会进行项目的预发布,当新版本的应用稳定后,再进行最终的项目发布处理,设计架构如图所示,而这种发布模式在实际的开发中称为灰度发布。在灰度发布的处理逻辑中,所有要发布的应用要基于Nginx实现代理,随后根据一定的程序处理逻辑来选择代理转发的服务处理节点,但是由于Nginx本身不具备动态逻辑的支持,所以可以基于OpenResty组件实现。OpenResty组件提供了一个全功能的Web应用服务器,其内部打包了标准的Nginx核心,同时支持大量的第三方模块以及Lua脚本引擎,这样就可以在每次用户请求时依据一定的用户自定义逻辑规则来实现代理服务的转发。
灰度发布案例主机列表在本节中将通过一个完整的应用设计为读者实现一个灰度应用发布案例的完整操作,本次案例开发所涉及到的服务主机信息如表所示No.主机名称IP地址服务端口服务信息1redis-server286379Redis缓存2openresty-server3080Nginx代理服务、Lua脚本程序3endpoint-server318181WEB服务接口,为节约服务配置,在一台主机中绑定两个服务节点,并通过版本号标注8282
message子模块project(:message){
dependencies{//根据需要进行依赖配置
implementation(org.springframework.boot:spring-boot-starter-web:3.0.0)
testImplementation(org.springframework.boot:spring-boot-starter-test:3.0.0)
compileOnly(jectlombok:lombok:1.18.24)//lombok组件
annotationProcessorjectlombok:lombok:1.18.24//注解处理支持
}
}
Profile配置application-dev.ymlserver:
port:8181#项目运行端口
message:#自定义配置项
version:v1.0#应用版本application-test.ymlserver:
port:8282#项目运行端口
message:#自定义配置项
version:v2.0#应用版本application.ymlspring:
profiles:#profile配置
active:dev#profile名称
MessageAction控制器类packagecom.yootk.action;
@RestController//REST响应
@RequestMapping(/message/)//父路径
publicclassMessageAction{
@Value(${files.active})//application.yml配置
privateStringprofile;//Profile名称
@Value(${server.port})//application.yml配置
privateintport;//监听端口
@Value((${message.version}))//application.yml配置
privateStringversion;//应用版本
@RequestMapping(/version)
publicObjectversion(){
MapString,Objectresult=newHashMap();//保存响应结果
result.put(profile,file);
result.put(port,this.port);
result.put(version,this.version);
returnresult;
}
}
创建应用启动类packagecom.yootk;
@SpringBootApplication
publicclassStartMessageApplication{
publicstaticvoidmain(String[]args){
SpringApplicati
文档评论(0)