下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 60 | 手工服务部署和测试(中)
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

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

共94讲 · 约900分钟
4742
免费
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 | 结束语

精选留言(10)

  • 2019-12-01
    老师,可以分享下git prompt配置吗?看着很酷炫。

    作者回复: 没有特别的git配置,只是用了https://github.com/ohmyzsh/ohmyzsh,缺省配置。

    1
  • 2019-08-23
    springboot是怎么读取到根目录下的config/application.yml文件的呢?

    作者回复: 这个springboot支持的外部集中配置机制,可以参考下面文档24.3节:
    https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

    1
    1
  • 2019-11-20
    老师 这个课程有没有交流群呀? 为什么我启动mail的时候就不行呢?获取不到配置文件的属性。
    ERROR io.sentry.SentryClientFactory.resolveDsn - Error creating valid DSN from: '${SENTRY_DSN}'.
    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)
    展开

    作者回复: 配置文件(https://github.com/spring2go/staffjoy/blob/master/config/application.yml.example)需要修改文件名,修改方式在项目(https://github.com/spring2go/staffjoy)readme的[如何运行]部分有说明。

    如果还有问题,你直接把application.yml.example里头sentry-dns的值复制到mail服务对应配置文件里头去,其它配置如有需要也可以这样直接复制。

    交流群可以加我微信(bulldog2015),说明来自极客时间。

  • 2019-09-06
    本地IDE启动bot-svc时,总是报这个错,这个是什么原因?

    Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
    06-09-2019 08:30:46.906 [restartedMain] ERROR o.s.boot.SpringApplication.reportFailure - Application run failed
    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'alertController': Unsatisfied dependency expressed through field 'alertService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'alertService': Unsatisfied dependency expressed through field 'companyClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xyz.staffjoy.company.client.CompanyClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: RequestParam.value() was empty on parameter 1
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596)
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1378)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:575)
    展开

    作者回复: 很奇怪,网上找了一下可能和编译设置或者feign版本有关,可以尝试在ide里头加-parameters编译参数:

    https://stackoverflow.com/questions/44313482/feign-client-with-spring-boot-requestparam-value-was-empty-on-parameter-0

    或者把本地缓存的maven cache全清理掉重新加载。

  • 2019-09-02
    在启动单页应用时候 环境Windows 在运行npm install 没问题,在运行npm start 命令后显示,失败
    ERROR in ./src/components/NotificationManager/index.js
    D:\learn_code\staffjoy\frontend\myaccount\src\components\NotificationManager\index.js
       6:1 error Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style
      13:5 error Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style
      29:45 error Expected linebreaks to be 'LF' but found 'CRLF' l
    ✖ 60 problems (60 errors, 0 warnings)
            [0] ./~/favicons-webpack-plugin/lib/favicons.js?{"outputFilePrefix":"assets/icons/","icons":{"android":true,"appleIcon":true,"appleStartup":true,"coast":false,"favicons":true,"firefox":true,"opengraph":true,"twitter":true,"yandex":false,"windows":true},"background":"#fff","persistentCache":true,"appName":"Staffjoy | App"}!./staffjoy-favicon.png 5.92 kB {0} [built]
    Child html-webpack-plugin for "index.html":
        chunk {0} index.html 542 kB [rendered]
            [0] ./~/html-webpack-plugin/lib/loader.js!./index.template.ejs 1.66 kB {0} [built]
            [1] ./~/lodash/lodash.js 540 kB {0} [built]
            [2] (webpack)/buildin/module.js 251 bytes {0} [built]
    webpack: Failed to compile.
    展开

    作者回复: 你好,staffjoy的两个单页应用要求linux或mac环境编译,windows环境暂不支持。所以,如果你是windows环境,staffjoy ide部署这个环节暂时做不了,不过后面的docker compose和k8s部署可以不受影响,只要你的win操作系统能正常能装docker/k8s即可。

    不过如果你有兴趣,在windows可以尝试自己hack一下,有学员说编译成功的(但不能保证)。上面的错误一个是eslint造成,webpack.config.js里头配置的eslint要求unix格式,你可以把eslint相关配置都去掉,另外前端引用的npm-zepto需要替换一下,参考这里:https://github.com/spring2go/staffjoy/issues/6

  • 2019-09-02
    老师,myaccount使用npm start构建时报错
    ERROR in ENOENT: no such file or directory, scandir 'C:\Users\shi1123\Documents\GitHub\staffjoy\frontend\myaccount\node_modules\node-sass\vendor'
     @ ./src/main.scss 4:14-111 13:2-17:4 14:20-117

    ERROR in ENOENT: no such file or directory, scandir 'C:\Users\shi1123\Documents\GitHub\staffjoy\frontend\myaccount\node_modules\node-sass\vendor'
     @ ./src/components/LoadingScreen/loading-screen.scss 4:14-133 13:2-17:4 14:20-139

    ERROR in ENOENT: no such file or directory, scandir 'C:\Users\shi1123\Documents\GitHub\staffjoy\frontend\myaccount\node_modules\node-sass\vendor'
     @ ./src/components/StaffjoyButton/staffjoy-button.scss 4:14-134 13:2-17:4 14:20-140

    ERROR in ENOENT: no such file or directory, scandir 'C:\Users\shi1123\Documents\GitHub\staffjoy\frontend\myaccount\node_modules\node-sass\vendor'
     @ ./src/components/SingleAttributeField/single-attribute-field.scss 4:14-141 13:2-17:4 14:20-147


    能帮忙看看是什么原因吗?
    展开

    作者回复: 你这个看上去是npm install没执行?另外,staffjoy的两个单页应用要求linux或mac环境编译,windows环境暂不支持。所以,如果你是windows环境,staffjoy ide部署这个环节暂时做不了,不过后面的docker compose和k8s部署可以不受影响,只要你的win操作系统能正常能装docker/k8s即可。

    6
  • 2019-08-24
    老师 或者我能不能把farada网关改成别的端口 比如8090 这样对前端有什么影响 比如前端需要改什么

    作者回复: staffjoy是要求用域名+标准80端口去访问faraday网关的。

    在某些版本的mac os中,非root用户可能是无法使用小于1024的常用端口的。如果开发中需要用到80端口, 就要设置端口转发。这样可以把faraday配置的80端口改掉(如8090),然后还是可以用域名+80去转发访问。

    参考这个:
    https://blog.csdn.net/good007boy/article/details/92029335

  • 2019-08-24
    老师 别的都启动正常, 除了 faraday 报错 我port 是80 我查了下说是 Ports below 1024 can be opened only by root. 我的问题是用intellij 如果设置root运行呀

    23-08-2019 12:00:11.434 [restartedMain] ERROR o.apache.catalina.util.LifecycleBase.log - Failed to start component [Connector[HTTP/1.1-80]]
    org.apache.catalina.LifecycleException: Protocol handler start failed
        at org.apache.catalina.connector.Connector.startInternal(Connector.java:1004)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.addConnector(StandardService.java:226)
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:259)
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:311)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:164)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
    Caused by: java.net.SocketException: Permission denied
    Description:

    The Tomcat connector configured to listen on port 80 failed to start. The port may already be in use or the connector may be misconfigured.
    展开

    作者回复:
    在某些版本的mac os中,非root用户可能是无法使用小于1024的常用端口的。如果开发中需要用到80端口, 就要设置端口转发。这个需要把faraday配置的80端口改掉。参考这个:
    https://blog.csdn.net/good007boy/article/details/92029335


  • 2019-08-23
    杨波老师,我本地是win10 64位企业操作系统,app这个前端应用npm install 失败,zepto的引入有问题。
    以下是部分log:
    25080 verbose pkgid npm-zepto@1.1.7
    25081 verbose cwd E:\DEV\Project\JAVA\staffjoy\frontend\app
    25082 verbose Windows_NT 10.0.17763
    25083 verbose argv "C:\\DevTool\\nodejs\\node.exe" "C:\\DevTool\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
    25084 verbose node v10.15.3
    25085 verbose npm v6.4.1
    25086 error code ELIFECYCLE
    25087 error errno 1
    25088 error npm-zepto@1.1.7 install: `script/build`
    25088 error Exit status 1
    25089 error Failed at the npm-zepto@1.1.7 install script.
    25089 error This is probably not a problem with npm. There is likely additional logging output above.
    25090 verbose exit [ 1, true ]
    展开

    作者回复: 你好,我确认了一下,目前staffjoy的前端reactjs应用是依赖于linux环境的,暂不支持win环境构建。

    如果在win环境下,建议安装vagrant+linux,在虚拟机里头构建。或者采用docker构建,前端项目里头有Dockerfile,课程后面也会演示docker构建镜像。

  • 2019-08-20
    这里应该加个 shell 来一键启动,要不然好麻烦

    作者回复: 嗯,可以加一个shell简化启动,课程的目的是演示纯手工启动繁琐,对比后续用docker compose或k8s一键部署的方便性。