Docker Swarm mode 微服务部署及调用

本文介绍了如何使用Spring Boot开发微服务应用,并在Docker Swarm模式下进行部署。详细讲解了服务提供者test-a和消费者test-b的代码配置,以及Dockerfile的编写。在部署完成后,通过服务名称调用验证了服务调用的成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker Swarm mode 微服务部署及调用

使用spring boot 开发两个应用,分别命名为test-a、test-b, test-a 为服务提供者、test-b 为服务消费者,test-b 在swarm mode 集群中通过服务 test-a 部署时指定的服务名称调用服务。


服务提供者 test-a 代码如下:
@RestController
public classTestAContoller(){

    @GetMapping("/info")
    public String getAInfo(){
        return "A 的服务信息"; //返回A服务的服务信息
    }
}
@SpringBootApplication
public class WebApplication(){
    public static void main(String[] args){
        SpringApplication.run(AWebApplication.class,args);
    }
}

application.properties

server.port=80
spring.application.name=testAService

服务消费者 test-b 代码如下:
@RestController
public class TestBContoller(){

    @Bean
    RestTemplate restTemplate();

    @GetMapping("/a/info")
    public String getAInfo(){
        String message = restTemplate.getForObject("http://testAService/info",String.class);
        return "A : " + message; //返回A服务的服务信息
    }
}
@SpringBootApplication
public class WebApplication(){
    public static void main(String[] args){
        SpringApplication.run(WebApplication.class,args);
    }
}

application.properties

server.port=80
spring.application.name=testBService

Swarm mode 服务部署

运行 docker 服务创建命令分别部署test-a 、test-b:

docker service create   \
      --replicas 2 \
      --name testAService \
      test-a:1.0

docker service create   \
      --replicas 2 \
      --publish 8080:80
      --name testBService \
      test-a:1.0

服务部署之后即可通过 http://localhost:8080/a/info 验证服务是否调用成功!!!


Dockerfile 文件

test-a: docker build -t test-a:1.0 .

FROM java:8-jre-alpine

ADD test-a.jar app.jar
RUN sh -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

test-b: docker build -t test-b:1.0 .

FROM java:8-jre-alpine

ADD test-b.jar app.jar
RUN sh -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值