Java 微服务实用指南(一)( 五 )
所以总结来说 , 现在不再是简单地 scp 一个.jar 文件 , 而是:
- 将 jar 文件打包成 Docker 镜像
- 将该 docker 镜像传输到一个私有的 docker 注册表
- 在目标平台上拉取该镜像 , 然后运行它
- 或者 , 将 Docker 镜像直接 scp 到你的生产系统 , 然后运行它
那么问题来了:如何管理集群 , 也就是运行 Docker 容器、执行健康检查、发布更新、扩展 , 等等等等?
答案可能有两个:Docker Swarm 和 Kubernetes 。
由于篇幅所限 , 本指南不可能详细介绍它们 , 但实质上:它们最终都是基于你编写 YAML 文件来管理你的集群(参见本文“不是问题:YAML 缩进的故事”) 。 如果你想知道在实践中大概怎么做 , 可以简单在网上搜一搜 。
那么 , Java 微服务的部署过程现在看起来可能是这样的:
- 安装和管理 Docker Swarm/Kubernetes
- 执行上面所述的 Docker 步骤
- 编写和执行 YAML , 直到所有的东西都工作正常
在实践中 , 你会找到三种不同的方法:
- 做一点点额外的工作(如果你正在使用 Spring 之类的框架), 你可以把你所有的微服务包装成一个运行器类 , 使用一个 Wrapper.java 类来启动所有的微服务 , 当然 , 前提是你的机器上有足够的内存来运行所有的微服务 。
- 你可以尝试在本地也安装一套 Docker Swarm 或 Kubernetes 。
- 不再在本地进行集成测试 , 而是搭建一套专用的开发 / 测试环境 。 很多团队实际上都是这么做的 , 以避免承受在本地部署微服务之痛 。
可见 , DevOps 方面的复杂度被大大低估了 。 可以了解一下微服务测试类库 , 能在这方面对你有所帮助 。
- 人民币|天猫国际新增“服务大类”,知舟集团提醒入驻这些类目的要注意
- 现状|程序员现状揭秘:平均年薪20.36万,Java人才需求量最大
- 出海|出海日报丨短视频生产服务商小影科技完成近4亿元 C 轮融资;华为成为俄罗斯在线出售智能手机的第一品牌
- 成为佛山移动服务体验官 表白留言赢取百元话费
- 正确|新昌消防丨听说,这才是微信新表情的正确打开方式
- 优化|微软亚洲研究院发布开源平台“群策 MARO” 用于多智能体资源调度优化
- 手机|原来微信一键就能拼接长图,朋友圈可发送几十张照片,涨知识了
- 试试|手机内存不够用,咋办?试试关闭微信这两步操作,轻松腾出几个G
- 微信群|社区团购的前世今生
- 纳闷|英媒纳闷:安道尔这个国家微信用户高达2000万,可只有8.5万人!