『高级篇』docker之APIGateway(17)
2019-02-02 16:43:16
李明
  • 访问次数: 377
  • 注册日期: 2018-07-09
  • 最后登录: 2019-10-30

原创文章,欢迎转载。转载请注明:转载自 IT人故事会 ,谢谢!原文链接地址: 『高级篇』docker之APIGateway(17)

这次说最后一个模块APIGateway,他的功能就是将我们客户端的请求统一的转发到用户和课程的EdgeService上面,ApiGetway我们使用springClud来实现。源码: https://github.com/limingios/msA-docker


v2-49d3fac55ad18f9b106d93267d6a6b89_hd.p

使用springClud做路由转发功能

  • 新建项目

v2-336b9204337997de51ca55e5e89906af_hd.p

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.idig8</groupId>
    <artifactId>api-gateway-zuul</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
            <version>1.3.5.RELEASE</version>
        </dependency>
    </dependencies>
</project>server.port=8080
zuul.routes.course.path=/course/**
zuul.routes.course.url=http://127.0.0.1:8081/course/zuul.routes.user.path=/user/**
zuul.routes.user.url=http://127.0.0.1:8082/user/package com.idig8.zuul;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;/**
 * Created by liming
 */@SpringBootApplication
@EnableZuulProxy
public class ServiceApplication {
    public static void main(String args[]) {
        SpringApplication.run(ServiceApplication.class, args);
    }
}


v2-b81951322e681dd2d3c1e0e86a91403c_hd.p

梳理思路

所有的业务开发完毕,zuul 就是可以帮助我们做路由和转发的工作。所有的请求帮你做中转。虽然业务非常简单,但是框架都能实现。业务也不是这次学习微服务的重点。在整个开发过程中主要想让各位老铁体会到微服务,不同的RPC的通信方式,没有使用过dubbo和thrift的可以了解下如何的使用。还搞了夸语言的业务通信,用python写了一个message消息服务,用java做客户端调用python,这里面的java模块我们使用的springboot,来进入一个切入点,能感受到开发和配置模式的统一,最后我们使用zuul作为服务网关,完成了服务路由,可以注意到所有服务的开发都是使用了相对简单的模型和功能,并没有大而全的角色存在,因为这次主要就是说的针对不太了解微服务的老铁,只为你们打开一个微服务的大门。

PS:就像跟陌生人交朋友,不可能上来直接详细的自我介绍,一般都是先聊点其他的,或者从大家都感兴趣的一个话题作为切入点,一点点增加彼此的了解,其实学习也是一样的,一个新的功能一定会有新的功能和特性,我们必须从一个点入手,先用起来后,在一点点的了解,就像这个zuul,只用到他的服务路由,下次咱们就通过这些微服务为基础进行docker话,让老铁知道一个非docker的项目如何运行在一个docker上面。需要关心的点是什么上面。然后我们在本地吧这些服务都运行起来。最后我们把他交给服务编排框架,看它是怎么调度管理容器的。


v2-7f75c93f587eca2c35da2664ce67e513_hd.p