下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 94 | 结束语
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 | 结束语
本节摘要

学完这门课程,你有那些收获和建议?
欢迎通过下面的链接给我们反馈:
https://jinshuju.net/f/GQWIc2

展开

精选留言(14)

  • 2019-10-12
    波波老师,您好,听完您的课程受益匪浅,有个问题想请教下,staffjoy项目,服务提供者是通过发布一个api jar包给客户端使用,假设某个客户端现在因为业务需要让服务提供者发布了一个新的版本给它使用,而其他客户端不关心这个变化版本继续使用旧的api jar版本,若其他客户端也需要升级的时候确发现已经横跨了多个api jar版本,也不清楚服务提供方到底改动了什么,请问这种通过api jar强依赖的方式会不会对客户端造成什么影响?

    另:期待feign 强类型接口泛型如何做
    展开

    作者回复: 你好,问题1是关于服务版本治理的,一般的建议是服务升级最多不超过2~3个版本同时并存,能够让客户端平滑迁移,同时要求客户端限期迁移(比如3月或半年过渡期),注意要监控哪些客户端分别在使用哪些版本,通过监控数据再推进客户端升级。如果服务版本过多,迁移周期没有明确限制,监控手段缺失,那么服务升级就会比较麻烦。

    关于第2个问题,feign强类型范型接口,我正在开发一个简化项目叫smile,预计本月开发完,会放在github.com/spring2go上,请注意关注。

    2
    3
  • 2019-09-18
    谢谢老师,通过这个课程对云原生有了一个大概的了解。师父领进门,后续还要继续修行。

    作者回复: 嗯,后续参与项目实践很重要。云原生是目前的技术前沿,k8s/cloud native后面会逐渐成为主流,把技术人员领进门,为新技术做好准备,也是我开这门课初衷。

    后续还会推出《K8s微服务实践》课程,更多k8s内容+全新微服务案例+监控体系+CI/CD,欢迎关注。

    2
  • 2019-12-05
    不容易,能看到这一节的同学们都辛苦了,波波老师也辛苦了,通过学习staffjoy项目,我深刻的感受到了,以前在工作中掌握的知识还只是皮毛,要想真正的成为一名合格的开发人员/架构师,还有很多前沿的技术需要掌握。另外在日常的开发过程中,如果不想沦为每天简单的重复CRUD,就要从项目的整体架构出发,站在上层业务角度来看,系统架构,部署架构,然后才是具体的如何把数据流串起来的CRUD操作。

    学习了staffjoy之后,只是给同学们进阶之路开了一个头而已,后续还有很多衍生出来的知识领域需要大家一起深入学习,比如service mesh,系统架构设计时如何解耦微服务,如何使用缓存、消息队列来应付高并发,如何防止bot等具体的细分领域,不过不用担心,只要大家一起坚持住,不久就会从当前的CRUD重复劳动者晋升为有独立思考能力的架构师,成为项目里,乃至公司都不可或缺的人才。

    大家一起加油
    展开
  • 2019-11-28
    感谢波波老师!整个课程学下来,收货很多,也还有些细节需要回头再琢磨一下。
    看到留言,麻烦老师抽空回复一下我在92讲|WWW服务中的留言,非常感谢!!!期待老师的新课程!

    作者回复: 留言已回复,谢谢支持!新课程正在开发中。

  • 2019-11-06
    期待《K8S微服务实践》课程

    作者回复: 正在开发中,敬请期待!

  • 2019-10-17
    通过波波老师的课程,基本上了解k8s,docker,网关等这些在整个技术架构里面的关系和定位,通过自己按照自己一步步的在阿里云上面实践,基本理解了k8s的基本发布流程。

    作者回复: 不错,先对架构和技术栈有一个总体了解,后续通过实践应用进一步加深理解。请继续关注波波后续的微服务/k8s高级课程。

  • 2019-10-08
    波波老师您好 ,请问微服务编排有什么好的技术实现方案

    作者回复: 你好,服务编排我实战经验也不多,一个可以参考的项目是Netflix的Conductor(https://github.com/Netflix/conductor),核心是微服务编排引擎+消息队列。

  • 2019-09-29
    我下载下来代码启动报如下错误(感觉staffjoy\config\application.yml 文件没加载上) 不知道什么原因 希望老师指导一下
    java.lang.IllegalArgumentException: Illegal character in path at index 1: ${SENTRY_DSN}
        at java.net.URI.create(URI.java:852)
        at io.sentry.dsn.Dsn.<init>(Dsn.java:41)
        at io.sentry.SentryClientFactory.resolveDsn(SentryClientFactory.java:73)
        at io.sentry.SentryClientFactory.sentryClient(SentryClientFactory.java:42)
        at io.sentry.Sentry.init(Sentry.java:81)
        at io.sentry.Sentry.init(Sentry.java:66)
        at xyz.staffjoy.common.config.StaffjoyConfig.sentryClient(StaffjoyConfig.java:50)
        at xyz.staffjoy.common.config.StaffjoyConfig$$EnhancerBySpringCGLIB$$dea57b5d.CGLIB$sentryClient$4(<generated>)
        at xyz.staffjoy.common.config.StaffjoyConfig$$EnhancerBySpringCGLIB$$dea57b5d$$FastClassBySpringCGLIB$$ee619584.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
        at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
        at xyz.staffjoy.common.config.StaffjoyConfig$$EnhancerBySpringCGLIB$$dea57b5d.sentryClient(<generated>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622)


    Caused by: java.net.URISyntaxException: Illegal character in path at index 1: ${SENTRY_DSN}
        at java.net.URI$Parser.fail(URI.java:2848)
        at java.net.URI$Parser.checkChars(URI.java:3021)
        at java.net.URI$Parser.parseHierarchical(URI.java:3105)
        at java.net.URI$Parser.parse(URI.java:3063)
        at java.net.URI.<init>(URI.java:588)
        at java.net.URI.create(URI.java:850)
        ... 67 common frames omitted
    展开

    作者回复: 我这边没有问题,这个外部集中配置是spring的标准机制,不确定你的问题怎么造成的,你看看能否显式通过spring.config.location环境变量设置一下config文件夹的位置,参考官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

    如果还不行,一个笨办法,把每个项目里头的application.yml中的相关参数替换下(参考config/application.yml中的相关参数值)。

  • 2019-09-28
    作为一个见习架构师,受益匪浅,感谢波波老师,目前正在将一个spring cloud实现的微服务架构切换到k8s

    作者回复: 谢谢支持!波波后续将推出微服务和k8s相关进阶内容,敬请关注!

  • 2019-09-20
    谢谢波波老师,讲得非常好,期待后续课程!

    作者回复: 谢谢支持!敬请关注后续课程!

  • 2019-09-19
    期待老师新的课程,受益匪浅

    作者回复: 谢谢支持!加油!

  • 2019-09-19
    感谢波波老师。

    作者回复: 感谢支持!加油!

  • 2019-09-11
    这个项目的所有服务都是支持多实例的吗?

    作者回复: 你好,staffjoy应用的所有微服务和前端单页都是无状态,可以任意水平扩展。

  • 2019-09-09
    感谢波波老师,受益匪浅!!!

    作者回复: 谢谢支持!加油!