• Geek_548191
    2019-11-28
    波波老师,看了你写的关于kubernetes的几篇文章,包括pods网络,service网络,还有NodePort,LoadBalance,Ingress,有几点疑惑:
    1.当k8s外部访问www.staffjoy-uat.local或者myacconapp.staffjoy-uat.local服务的时候,首先经过阿里云的LB,然后到达Faraday网关的30001端口,然后faraday-svc进行host->service-endpoint的路由映射,那么httpclient请求的时候,是如何将service-endpoint和clusterIp联系在一起的呢?kube DNS在这里起作用了吗?知道了clusterIp,最后httpclient再通过faraday-svc的80端口转发到clusterIp的某个pod的80端口,是这样吗?
    2.如果company服务调用account服务,那么通过FeignClient,知道了serviceName和service-endpoint,它们和clusterIp又是怎么联系在一起的呢?这个问题其实和第一个类似。
    2.阿里云的LB做负载均衡,是根据节点负载情况告诉faraday-svc应该要转发到某一个特定的节点的pods上吗?
    展开

    作者回复: 你好,简单回复一下你的问题:

    1. 假设请求已经到达faraday-svc,faraday-svc也是住在k8s集群的node中,每个node里头都有kube-dns和kube-proxy,kube-dns实现服务名到clusterIp的映射,kube-proxy则实现clusterIp到具体目标服务podIp的映射,也就是说faraday-svc通过本节点kube-dns找到目标服务的clusterIp,然后通过本节点kube-proxy转发到目标服务Pod上。

    2. 一样,FeignClient通过节点上的kube-dns发现目标服务clusterIp,然后通过节点上的kube-proxy转发到目标服务Pod上。

    3. 阿里云LB应该不清楚k8s集群内的负载和pod情况,它只是根据路由配置将流量转发到节点的NodePort上,之后由节点上的kube-proxy负责转发到pod。

    建议再细看我的k8s网络三部曲文章,里头解释比较清楚,如还有疑问可以加我微信(bulldog2015,说明来自极客时间的用户)。

    
    
  • 水浒山鬼
    2019-11-26
    bobo老师您好:
        请问,由多个开发团队开发的不同的微服务之间有依赖。比如,团队B开发的B服务,依赖于团队A开发的A服务。
    1. 这种情况下,B通常应该采用什么方法调用A服务?
    2. 课程中介绍的Feign强类型调用,本质上是通过HTTP访问服务吧?
    3. B服务在实现时,在代码层面,能不能先通过网关,获取到A服务的访问地址,再按A服务的调用规则去调用?
    谢谢老师~
    展开

    作者回复: 你好,你的问题不是很清楚,我尽量回答:
    1. 一般服务A会提供调用地址(具体实现要看企业内部服务发现的做法,常见nginx+域名),B通过A的服务地址去调用,如果A提供封装好的强类型客户端,那么B就可以直接用强类型客户端调用,如果A只是提供一个http/json服务,那么B可以用http client去调,然后自己解析json。
    2. Feign底层是http调用。
    3. A服务可以躲在网关(企业内部网关,比如nginx)后面,然后B通过网关再调用A,这种方式有不少企业采用。

    
    
  • 黑山老妖
    2019-11-07
    老师,为何聚合服务www不采用前后分离的模式?是否有什么需要顾忌的地方?

    作者回复: 主要两点考虑:
    1. 原版staffjoy的www就是mvc方式;
    2. www站点还是一个营销站点,SEO很重要,如果www采用单页SPA,就要解决SEO的问题,增加复杂性。

    
    
  • Dowen Liu
    2019-10-09
    web-app module 里 staffjoy.css 是 staffjoy.scss 生成的,那么 main.css 是哪里生成的呢?手工写的吗?

    作者回复: main.css大部分拷贝自谷歌的MDL(Material Design Lite)
    https://getmdl.io/

    
    
  • 和光同尘
    2019-09-09
    波波老师,您好,请问您的注册激活流程图是用什么工具画的呀

    作者回复: 我画图一般都是直接ppt画,win的话就用powerpoint,mac用keynote。

    
    
  • 和光同尘
    2019-09-09
    波波老师,您好,想请问下SAAS多租户架构客户定制化这块的一些实现思路,例如我们有的租户表单字段是6个,另一个租户表单存在不关心其他租户的字段,他的表单字段可能是5个,有的租户校验的规则流程又不一样,我们的代码是部署在租户的私有云环境,像这类定制化需求有什么好的实现思路和资料查阅呢?您pom.xml里面的libsaas是指什么呀,有关于它的讲解吗?非常感谢

    作者回复: 如果各个租户的客制化需求确实比较多,难以通用化(通用化的成本反而比客制化高),那还不如每个租户定制独立隔离部署,目前采用k8s+容器方式,自动化部署一套租户应用很快的,架构上也不难做到。当然,原则是尽量通用和重用,最终看成本、可维护性和可规模化能力。libsaas是将sass(一种css扩展语言)编译成普通css的一个库。

     1
    
我们在线,来聊聊吧