下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 10 | Dubbo、Spring Cloud和Kubernetes该如何选型(上)
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

Spring Boot与Kubernetes云原生微服务实践

共94讲 · 约900分钟
4762
免费
01 | 课程介绍
免费
02 | 背景说明
免费
03 | 课程目标和主要内容
免费
04 | 课程案例需求
免费
05 | 课程补充说明
免费
06 | 为何采用微服务架构?
免费
07 | 架构设计和技术栈选型
08 | 数据和接口模型设计:账户...
09 | 数据和接口模型设计:业务...
10 | Dubbo、Spring Cloud和Ku...
11 | Dubbo、Spring Cloud和Ku...
12 | Dubbo、Spring Cloud和Ku...
13 | 技术中台到底讲什么?
14 | Staffjoy项目结构组织
15 | 谷歌为何采用单体仓库(Mo...
16 | 微服务接口参数校验为何重...
17 | 如何实现统一异常处理?
18 | DTO和DMO为什么要互转?
19 | 如何实现基于Feign的强类...
20 | 为什么框架层就要考虑分环...
21 | 异步处理为何要复制线程上...
22 | 为你的接口添加Swagger文...
23 | 主流微服务框架概览
24 | 网关和BFF是如何演化出来...
25 | 网关和BFF是如何演化出来...
26 | 网关和反向代理是什么关系...
27 | 网关需要分集群部署吗?
28 | 如何设计一个最简网关?
29 | Faraday网关代码解析(上...
30 | Faraday网关代码解析(下...
31 | 生产级网关需要考虑哪些环...
32 | 主流开源网关概览
33 | 安全认证架构演进:单块阶...
34 | 安全认证架构演进:单块阶...
35 | 安全认证架构演进:微服务...
36 | 基于JWT令牌的安全认证架...
37 | JWT的原理是什么?
38 | JWT有哪两种主要流程?
39 | Staffjoy安全认证架构和S...
40 | 用户认证代码剖析
41 | 服务调用鉴权代码剖析
42 | 如何设计用户角色鉴权?
43 | Spring Boot微服务测试该...
44 | 什么是契约驱动测试?
45 | 什么是测试金字塔?
46 | 单元测试案例分析
47 | 集成测试案例分析
48 | 组件测试案例分析
49 | Mock vs Spy
50 | 何谓生产就绪(Production...
51 | Spring Boot如何实现分环...
52 | Apollo vs SpringCloudC...
53 | CAT vs Zipkin vs Sk...
54 | CAT vs Zipkin vs Sk...
55 | 结构化日志和业务审计日志
56 | 集中异常监控和Sentry
57 | EFK & Prometheus &...
58 | 本地开发部署架构和软件需...
59 | 手工服务部署和测试(上)
60 | 手工服务部署和测试(中)
61 | 手工服务部署和测试(下)
62 | SkyWalking调用链监控实...
63 | Docker和Docker Compose...
64 | 容器镜像构建Dockerfile解...
65 | Docker Compose服务部署...
66 | 将Staffjoy部署到本地Doc...
67 | 将Staffjoy部署到本地Doc...
68 | 到底什么是云原生架构?
69 | Kubernetes背景和架构
70 | Kubernetes有哪些基本概念...
71 | Kubernetes有哪些基本概念...
72 | 理解Kubernetes节点网络和...
73 | 深入理解Service和Service...
74 | NodePort vs LoadBalanc...
75 | 本地测试Kubernetes部署文...
76 | 本地测试Kubernetes环境搭...
77 | 将Staffjoy部署到本地Kub...
78 | 将Staffjoy部署到本地Kub...
79 | 生产环境Kubernetes部署文...
80 | 阿里云Kubernetes环境创建
81 | 将Staffjoy部署到阿里云K...
82 | Kubernetes应用动态配置实...
83 | Kubernetes应用金丝雀发布...
84 | 阿里云资源释放
85 | 课程复盘
86 | 项目扩展和应用
87 | Account服务
88 | Company服务
89 | Mail、SMS和Bot服务
90 | Faraday服务
91 | WhoAmI服务
92 | WWW服务
93 | 前端应用
94 | 结束语

精选留言(11)

  • 2019-07-09
    我一直有一个疑惑,对于互联网应用,用微服务框架,k8s等可以有很好的适应度。不过目前也出现了一些在边缘计算的基于微服务架构产品,而且希望运行在类似树莓派的这样的小硬件上面。

    我的问题是微服务时候适合在资源有限的环境下运行?如果资源有限,那么如何做到微服务的治理,如视频中说的各种模块。感觉有些行不通,但是不知为什么还是有人在做,比如EdgeXFOUNDRY,apache 的开源物联网框架,基于golang的微服务架构。

    希望可以获得老师的指点,因为这个决定我后期的创业方向。
    展开

    作者回复: 你好,虽然微服务应用场景主要针对企业级互联网应用,但是微服务架构的思想其实是通用的,IoT应用可以是微服务应用的一种特殊场景,只是它的端设备资源可能比较受限,所用操作系统可能也不同于一般的操作系统,但是服务端架构可以和企业应用没有多大区别。我想理解企业微服务架构的话,可以扩展架构视野,对你做IoT架构应该会有帮助,只是需要针对性做一些调整,尤其考虑资源和性能方面。我看到github上有个叫lelylan(https://github.com/lelylan/lelylan/)的IoT框架,采用微服务架构,它是ruby/nodejs可开发,不过其思想完全可以用其它语言实现。当然,取决你的具体场景和规模,IoT项目也可以不用微服务架构。

    5
  • 2019-07-10
    Netflix已經有了zuul2 來支持reactive 但是似乎spring cloud gateway有移除zuul1和zuul2的趨勢 請問老師對此怎麼看呢

    作者回复: zuul1成熟稳定,已经经过大规模落地验证,实现和使用简单,本质就是一个servlet,虽然同步性能不是很高,但是可以通过多部署实例来解决,另外可以配合hystrix提升稳定性。zuul2异步模型,实现比较复杂,除了netflix,其它企业采用的案例还不多。具体要看企业的流量和技术团队情况,一般企业我觉得zuul1就够了。spring cloud gateway出来时间不长,大规模企业落地案例还不多,而且是全新产品,需要不断迭代才能完善稳定。

    3
  • 2019-07-12
    杨老师,有2个问题:

    1、目前公司用的dubbo来做微服务的,通信使用hessian协议,支持强类型的rpc调用(类似SOA的调用),如果未来想升级到SpringBoot+Dubbo的框架,此技术栈后期在Api网关和调用链监控方面,会不会有永久缺陷?是否有必要切换到Restfull的方式(那样变动较大),这样能与主流保持一致。



    2、目前有大量的后台定时任务(近百个),还有消息队列的消费处理,这些后台处理非常消耗cpu资源,有什么分布式的调度工具或配置管理工具不?类似:将N个定时任务分散到若干台机器上跑,但是有个工具能统一配置管理,哪些任务和队列消费,放到哪些机器上面跑。
    展开

    作者回复: 1. 服务框架一旦用起来,想要替换成另外一套,总是有不小的成本的,而且迁移很折腾。况且换成另外一套不见得带来什么业务价值。建议内部服务间调用沿用Dubbo,前端对外暴露的聚合服务(也称BFF),可以考虑采用SpringBoot Rest。这样两者可以结合用起来。

    2. 任务调度可选徐雪里的xxl-job(https://github.com/xuxueli/xxl-job),这个比较轻量,比较重量的有唯品会Saturn(https://github.com/vipshop/Saturn),还有当当的elastic-job(https://github.com/elasticjob)。你可以评估下是否符合你的需求。另外容器平台k8s/mesos等都支持后台任务和周期任务等的运行,也可以考虑。

    2
    2
  • 2019-07-11
    像是Eureka,Ribbon,Hystrix 过段时间不再维护了吧,那还推荐使用这些组件么?还是现在就用别的组件替换它们

    作者回复: Eureka的替代组件,一个是consul(https://github.com/hashicorp/consul),还有一个阿里开源的nacos(https://github.com/alibaba/nacos)。
    Hystrix的替代目前有(resilience4j)https://github.com/resilience4j/resilience4j。

    如果采用K8s平台开发微服务,内置支持服务发现和LB,不需要Eureka/Ribbon这些。

    2
  • 2019-07-09
    老师,我有三个疑问:
    1.hystrix只是一个代码级组件,并非springcloud特有,k8s中跑的springboot可以用,dubbo应用也可以用吧
    2. 像skywalking这种调用链监控工具三种微服务架构也都可以采用吧?
    基于上述两点,对三种框架在这两个点的比较会不会有失公平?
    3. 您之前课程推荐的CAT和Apollo这些组件在本次课程中不再使用了吗?是有更好的替代吗?
    谢谢!
    展开

    作者回复: 1. hystrix确实是一个通用的容错限流组件,理论上可以集成dubbo。我刚在百度上搜了一下,dubbo集成hystrix,有不少解决方案。具体还是需要实际测试,因为可能有线程和网路模型等细节问题。
    2. Skywalking应该也是具体框架无关的。
    我上面的比对,单纯是从这三个框架自身作为一个体系出发,是否考虑了这个关注点,和原生提供怎样的解决方案,是否开源,来进行比对的。

    3. CAT和Apollo之前课程重点介绍过,本课程不重复了。本课程以应用为主,拓展介绍下Skywalking(可替代CAT),同时应用部署到K8s,它原生支持ConfigMaps/Secrets(可替代Apollo)。

    2
  • 2019-09-24
    老师 springboot可以直接集成zuul吗 就像课程里集成feign一样 然后部署到k8s环境中?

    作者回复: 可以,zuul可以SpringBoot方式启动(加一个@EnableZuulProxy标注即可)

    1
  • 2019-07-11
    波波老师,heapster从k8s 1.11开始被标记为废弃了,现在是metrics-server。https://github.com/kubernetes-retired/heapster/blob/master/docs/deprecation.md。

    作者回复: 谢谢提醒!

    1
  • 2019-07-10
    Zipkin在使用mysql存储的时候,性能及其卡,而且请求量不是很多的情况下数据也很快就会满,后面也没有用ES来替换它,而是选择直接不用。从其他地方了解过来的资料,对于Zipkin评价也都不高,多以“玩具”称之,后来关注到了SkyWalking,就彻底不关注zipkin了。不知道是否有人觉得Zipkin好用?

    作者回复: Zipkin只是一个单纯的调用链监控产品,性能聚合报表能力比较欠缺,企业如果要用的话,一般需要定制扩展。Skywalking和CAT不光是调用链监控,而且是APM,有比较丰富的性能统计报表,更适合企业开箱即用。

    1
  • 2019-08-03
    现在又是微服务,又是边缘计算,是不是随着:用户增长,业务复杂化,'BS'玩不下去去了,转型玩'CS'了。。。

    作者回复: IT技术一直是不断轮回演进的,以前是CS,后来流行BS,目前BS/CS混合局面。

  • 2019-07-13
    老师您好,非常期待老师在针对SpringBoot封装,搭建微服务基础框架方面的经验分享,不知道后续课程是否会讲解相关内容,是否会给出相关代码,谢谢老师~

    作者回复: 你好,课程第3章讲解在SpringBoot基础上做轻量级封装,搭建微服务基础框架,第4章讲解开发一个轻量级的微服务网关,第5章讲解基于jwt的微服务安全认证架构,这几章都会结合staffjoy案例项目的代码讲解,有兴趣也可以直接看staffjoy项目源码:https://github.com/spring2go/staffjoy,看源码过程中如果有问题,可以再回头看课程讲解,这样更容易理解项目源码。

  • 2019-07-12
    一路跟过来的,希望老师由浅入深,尽量多分享大厂一线实战经验。既要照顾新手,也要拔高层次。如果只是扫盲就太可惜了,没有冒犯的意思。

    作者回复: 对,课程既要照顾新手,也要考虑有经验的学员,有一定的挑战。课程会尽量结合一线企业的实践,所以有几章专门有企业演进案例环节,比如第4章讲网关和BFF是如何在企业架构中演进出来的,第5章讲微服务安全认证架构是如何演进出来的,第7章有调用链监控产品的企业演进历史等。而微服务、云原生和k8s本身也是目前企业开发的前沿技术,很多企业还在摸索阶段,本课程通过案例展示可落地参考的应用架构。Anyway,谢谢你的建议