『高级篇』docker之服务发现、部署更新和扩容(七)

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『高级篇』docker之服务发现、部署更新和扩容(七)

服务发现

所有的表现形式都是ip+端口的形式。

  • 传统服务

服务比较少的话,可以通过下面的方式。如果服务很多的话,基本运维人员都崩溃死了。

  • 微服务

服务太多的话,需要一种服务发现的机制。

  1. 客户端的发现
  2. 服务端的发现

部署更新和扩容

  • 传统服务

适合小项目,服务少,服务器少。

  1. 新服务的部署,代码写好,内网测试通过,上线,跟运维交涉那台服务器比较空闲,资源比较吃紧的情况,需要等待服务器到来在进行部署。服务器有了告诉运维将那个应用拷贝到我们的服务器上,可能通过ftp或者是自动化的方式,如果是web方法会需要拷贝一个tomcat分配一个端口号。查询服务器那些端口被用了,找一个没有被占用的,跟你的域名做域名解析,修改nginx,反向代理指向刚才的tomcat上。
  2. 更新直接ftp或者自动化更新下旧代码,直接用新代码更新就可以了。
  3. 任何应用都是2个实例,让服务高可用,所以更新代码的时候需要更新2次。下线一台,更新代码,上线。如果自动化做的不太好的话,基本人工成本很高
  4. 扩容跟部署一样都比较麻烦。
  • 微服务

服务数据居多,更新上线频繁。微服务如何解决这些问题呢
什么是服务排版,服务的发现,服务部署,服务更新,扩容,简化。

流行的服务编排工具

可以解决微服务遇到本节问题的解决

  • Mesos
  • docker swarm
  • k8s

PS:抛出微服务的解决方案了,之后继续学习吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java可以通过Docker Java API来实现远程控制Docker Swarm和Docker Compose部署服务。 对于Docker Swarm,可以使用Docker Java API提供的SwarmCmdExecFactory类来创建一个SwarmClient对象,进而实现对Swarm集群的控制。例如,以下代码展示了如何使用Docker Java API创建一个SwarmClient对象,并获取Swarm集群的节点列表: ``` SwarmCmdExecFactory swarmCmdExecFactory = new SwarmCmdExecFactory() DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder().build() DockerClient dockerClient = DockerClientBuilder.getInstance(config) .withDockerCmdExecFactory(swarmCmdExecFactory) .build() List<Node> nodes = dockerClient.listNodesCmd().exec() ``` 对于Docker Compose,可以使用Docker Java API提供的ComposeCmdExecFactory类来创建一个ComposeClient对象,进而实现对Docker Compose服务的控制。例如,以下代码展示了如何使用Docker Java API创建一个ComposeClient对象,并启动一个Compose服务: ``` ComposeCmdExecFactory composeCmdExecFactory = new ComposeCmdExecFactory() DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder().build() DockerClient dockerClient = DockerClientBuilder.getInstance(config) .withDockerCmdExecFactory(composeCmdExecFactory) .build() File composeFile = new File("docker-compose.yml") Up up = dockerClient.composeUpCmd() .withProjectName("myproject") .withFile(composeFile) .execute() ``` 需要注意的是,在使用Docker Java API远程控制Docker Swarm和Docker Compose之前,需要确保已经正确配置了Docker Swarm集群和Docker Compose服务,并且Java应用程序所在的机器上已经安装了Docker Engine。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值