『高级篇』docker之APIGateway(17)

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

原文链接地址:『高级篇』docker之APIGateway(17)

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

使用springClud做路由转发功能

  • 新建项目
<?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);
    }
}

梳理思路

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

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大魏分享(微信公众号:david-share)

通过Swagger生成的Json创建Service&自定义开发者界面 | API Management学习第三篇

为Red Hat 3scale API Management管理的API创建API文档,了解Developer Portal和自定义,并探索3scale的其他基...

1.3K20
来自专栏FreeBuf

老式后门之美:五种复古远程控制工具

目前,高级的rootkit技术可以帮助你在渗透中拿到一个shell后进行持久性控制。此外,还有供应商故意提供了一些植入后门,但那就是截然不同的故事了。尽管各式花...

26790
来自专栏IT大咖说

基于Spring Cloud及K8S构建微服务应用

摘要 广发证券蔡波斯先生通过三个大方向来为我们分享基于Spring Cloud及K8S构建微服务应用。 ? 基于Spring Cloud构建微服务 Netfli...

1.3K80
来自专栏技巅

linux内核崩溃问题排查过程总结

57140
来自专栏aCloudDeveloper

UNIX环境高级编程笔记之文件I/O

一、总结   在写之前,先唠几句,《UNIX环境高级编程》,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是“哇”这种很吃惊的表情。其实大概...

242100
来自专栏ml

flume介绍与原理(一)

1 .背景   flume是由cloudera软件公司产出的可分布式日志收集系统,后与2009年被捐赠了apache软件基金会,为hadoop相关组件之一。尤其...

553150
来自专栏DevOps时代的专栏

手把手教你利用Jenkins持续集成iOS项目

56730
来自专栏王亚昌的专栏

iostat命令使用

天刚上线了一台server,观察了一下,发现io比较高,想到了iostat命令,观察了一下(每隔一秒打印一次),发现有一个守护进程每隔几秒就写一次IO,再top...

8620
来自专栏编程一生

J2那几个E和Web基础

15330
来自专栏沃趣科技

ASM 翻译系列第一弹:基础知识 ASM AU,Extents,Mirroring 和 Failgroups

原作者:Bane Radulovic 译者: 魏兴华 审核: 魏兴华 ASM Allocation Units 在ASM磁盘组中,最基本空间分配单位...

36170

扫码关注云+社区

领取腾讯云代金券