Spring Boot 与 Kubernetes 云原生微服务实践
杨波
前携程 / 拍拍贷技术总监,微服务技术专家
28227 人已学习
新⼈⾸单¥98
课程目录
已完结/共 94 讲
第一章:课程介绍和案例需求 (5讲)
第十章:项⽬复盘、应用和扩展环节 (2讲)
第十一章:附录 Staffjoy 项目源代码解析 (8讲)
时长 14:53
时长 10:29
时长 10:52
时长 05:09
时长 15:06
时长 16:17
Spring Boot 与 Kubernetes 云原生微服务实践
登录|注册
留言
16
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 61 | 手工服务部署和测试(下)
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 背景说明
03 | 课程目标和主要内容
04 | 课程案例需求
05 | 课程补充说明
06 | 为何采用微服务架构?
07 | 架构设计和技术栈选型
08 | 数据和接口模型设计:账户服务
09 | 数据和接口模型设计:业务服务
10 | Dubbo、Spring Cloud和Kubernetes该如何选型(上)
11 | Dubbo、Spring Cloud和Kubernetes该如何选型(中)
12 | Dubbo、Spring Cloud和Kubernetes该如何选型(下)
13 | 技术中台到底讲什么?
14 | Staffjoy项目结构组织
15 | 谷歌为何采用单体仓库(Mono-Repo)?
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安全认证架构和SSO
40 | 用户认证代码剖析
41 | 服务调用鉴权代码剖析
42 | 如何设计用户角色鉴权?
43 | Spring Boot微服务测试该如何分类?
44 | 什么是契约驱动测试?
45 | 什么是测试金字塔?
46 | 单元测试案例分析
47 | 集成测试案例分析
48 | 组件测试案例分析
49 | Mock vs Spy
50 | 何谓生产就绪(Production Ready)?
51 | Spring Boot如何实现分环境配置
52 | Apollo vs SpringCloudConfig vs K8s ConfigMap
53 | CAT vs Zipkin vs Skywalking(上)
54 | CAT vs Zipkin vs Skywalking(下)
55 | 结构化日志和业务审计日志
56 | 集中异常监控和Sentry
57 | EFK & Prometheus & Skywalking + Kubernetes 集成架构
58 | 本地开发部署架构和软件需求
59 | 手工服务部署和测试(上)
60 | 手工服务部署和测试(中)
61 | 手工服务部署和测试(下)
62 | SkyWalking调用链监控实验
63 | Docker和Docker Compose简介
64 | 容器镜像构建Dockerfile解析
65 | Docker Compose服务部署文件剖析
66 | 将Staffjoy部署到本地Docker Compose环境(上)
67 | 将Staffjoy部署到本地Docker Compose环境(下)
68 | 到底什么是云原生架构?
69 | Kubernetes背景和架构
70 | Kubernetes有哪些基本概念(上)
71 | Kubernetes有哪些基本概念(下)
72 | 理解Kubernetes节点网络和Pod网络
73 | 深入理解Service和ServiceDiscovery
74 | NodePort vs LoadBalancer vs Ingress
75 | 本地测试Kubernetes部署文件剖析
76 | 本地测试Kubernetes环境搭建
77 | 将Staffjoy部署到本地Kubernetes环境(上)
78 | 将Staffjoy部署到本地Kubernetes环境(下)
79 | 生产环境Kubernetes部署文件剖析
80 | 阿里云Kubernetes环境创建
81 | 将Staffjoy部署到阿里云Kubernetes环境
82 | Kubernetes应用动态配置实验
83 | Kubernetes应用金丝雀发布实验
84 | 阿里云资源释放
85 | 课程复盘
86 | 项目扩展和应用
87 | Account服务
88 | Company服务
89 | Mail、SMS和Bot服务
90 | Faraday服务
91 | WhoAmI服务
92 | WWW服务
93 | 前端应用
94 | 结课测试&结束语
登录 后留言

全部留言(16)

  • 最新
  • 精选
ZOU志伟
运行app单页应用是报这个错: Error: Cannot resolve module 'npm-zepto',怎么破?

作者回复: 你好,Staffjoy的前端构建是要求Linux或者Mac环境的,Windows环境暂不支持。如果是Windows环境,有几个办法可以尝试: 1. 安装Linux虚拟机(比如用Vagrant),在虚拟机里头构建。 2. 有学员给出了一个在windows构建的修复方案(https://github.com/spring2go/staffjoy/issues/6),可以尝试下 3. 跳过构建,直接用波波已经打好的镜像(https://hub.docker.com/u/boboweike),构建实际就是生成静态的html/js文件,然后放在nginx目录下,打成镜像,这步骤理解即可,没必要完全动手操作。 另外,如果在Linux或者Mac环境,也要求网络良好,github可以正常访问,因为Staffjoy的前端构建需要到github上下载sass编译库。

2019-11-08
3
3
Nero
波波老师,我注册时候发邮件报下面的错误,目前没找到版本解决,能否帮忙看下。 com.aliyuncs.exceptions.ClientException: InvalidUser.NotFound : The specified user does not found. RequestId : E65185BE-15D8-4CAF-BE4D-81A20E9FE8F5 at com.aliyuncs.DefaultAcsClient.parseAcsResponse(DefaultAcsClient.java:151) at com.aliyuncs.DefaultAcsClient.getAcsResponse(DefaultAcsClient.java:96) at xyz.staffjoy.mail.service.MailSendService.sendMailAsync(MailSendService.java:67) at xyz.staffjoy.mail.service.MailSendService$$FastClassBySpringCGLIB$$94ad016b.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

作者回复: 你好,我尝试了一下发给我163的邮箱,用默认的FROM = "staffjoy@dm.staffjoy.xyz",是可以收到的。 Staffjoy发邮件用的是阿里云DirectMail服务,可能这个发信地址是和我的阿里云账户绑定的,如果你要改设自己的DirectMail的发信邮箱,有点麻烦,参考:https://help.aliyun.com/document_detail/29426.html?spm=a2c4g.11186623.6.557.54485748dBWkAp 如果发不了邮件的话,有一个小技巧可以绕过,如果注册邮件发不成功,代码会抛和log一个异常(邮件发送失败都会发异常日志),这个异常里头有激活邮件连接,把这个链接贴到浏览器就可以激活了。其它邮件信息都可以通过异常日志看。 另外,非生产环境,邮件只能发给指定邮箱后缀的用户,这个在mail-api的MailConstant中可以改代码常量STAFFJOY_EMAIL_SUFFIX,默认发给STAFFJOY_EMAIL_SUFFIX = "@jskillcloud.com"

2019-09-08
3
2
nzb
跳转到http://app.staffjoy-v2.local/报如下错误: ERROR o.a.c.c.C.[.[.[.[dispatcherServlet].log - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://localhost:9001/": Connect to localhost:9001 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused); nested exception is org.apache.http.conn.HttpHostConnectException: Connect to localhost:9001 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)

作者回复: 错误提示:faraday网关转发到app单页应用(http://localhost:9001)时请求失败。请先确保app单页应用已经正常启动,可以用浏览器访问http://localhost:9001进行校验。

2020-02-02
1
草裡菌
首先,在 Windows 系统下,前端的app项目无法 npm install,但是看到两个前端目录里已经存在dist,遂用nginx配了俩server指向这两个dist文件夹,也算勉强用起来了。 还有,发现dev环境下必须使用 @jskillcloud.com 邮箱后缀才能成功发出去邮件。 最后,个人觉得这门课程的顺序,应该先进入这个手把手部署运行部分,再分步骤讲解各个微服务的内容。

作者回复: 谢谢你的建议,后面的课程会考虑你的建议。 “发现dev环境必须使用@jskillcloud.com”,这个是代码中设置的,可以自己调整代码(search一下就可以找到)。 另外,课程建议Mac/Linux环境,如果是windows,建议安装Linux虚拟机环境。

2021-01-08
Geek_da9deb
开发环境部署后,在创建账号时,Mail服务打印如下日志: Intercepted sending due to non-production environment 为什么老师可以收到邮件呢?

作者回复: 请看mail-svc项目中的MailSendServer.java里头有一段代码注释: // In dev and uat - only send emails to @jskillcloud.com 在dev和uat环境,邮件只能发送到@jskillcloud.com这个后缀的邮箱,这个后缀可以配置,在MailConstant.java中,你可以按需修改下。

2020-06-04
猩猩
老师,我在登录成功后,页面显示为空白,faraday网关错误信息如下: ERROR x.s.f.c.GlobalErrorController.log - {"message":"Global error handling","errorMessage":"Premature end of Content-Length delimited message body (expected: 3055591; received: 2573835","env":"dev","service":"faraday-service"} org.springframework.web.client.RestClientException: Error while extracting response for type [class [B] and content type [application/javascript;charset=UTF-8]; nested exception is org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 3055591; received: 2573835

作者回复: 从错误看,像是单页应用没有正常启动。我本地校验下,再回复你。

2020-06-02
哈哈,这个项目感觉挺实用的,还没跑起来,先看完,然后再跑一下,之前下载项目多次失败,移动的网络真的差100M下个软件要半天,甚至死活下载不了😁

作者回复: 学完课程,能把案例代码搞懂,然后能把案例独立跑通过,这门课程基本目标就达到了。

2020-03-21
吃胖了再减肥再吃再健身之谜之不...
bobo老师 frontend\app 服务引用 "npm-zepto": "^1.1.7", 无法通过编译,我用 "zepto": "^1.2.0" 代替后,登陆成功跳转 http://app.staffjoy-v2.local/ 无法显示界面

作者回复: 通过浏览器(建议chrome)检查下,页面加载为何失败,是否有错误提示。frontend单页应用的编译目前仅支持Linux/Mac环境, 如果是Win环境,建议在虚拟机(如VirtualBox/Docker)环境中编译。

2019-10-09
Pany
03-10-2019 04:55:03.305 [http-nio-8086-exec-4] ERROR x.s.web.controller.ResetController.log - {"message":"Failed password reset","errorMessage":"status 404 reading AccountClient#requestPasswordReset(String,PasswordResetRequest)","env":"dev","service":"www-service"} feign.FeignException: status 404 reading AccountClient#requestPasswordReset(String,PasswordResetRequest) 通过feign调用就会报错。。

作者回复: 错误提示Account-Svc没有正常启动,看Account-Svc控制台日志,看哪一步出错了。

2019-10-03
2
亚林
用自己的阿里云邮件推送调用成功啦

作者回复: 不错!碰到问题,自己思考动手解决,这样的学习效果最好。

2019-09-23
收起评论