zoukankan      html  css  js  c++  java
  • 微服务是什么

    1.微服务原理图

    图片来自于网络,如有侵权,请联系博主,立即删除

    图片从右向左来看:
    (1)为服务最主要的目的就是实现,如果说软件a使用了购物车程序作为后台,同时软件b也使用了购物车作为后台,那么如果软件a和b都是同一家公司开发的,那么他们就不需要写相同的代码,为软件a和b同时都写一个后台,它可以将后台的服务拆分,分别为了很多,如:认证,购物车,用户,商品,支付等等,需要什么功能就直接去取相关的实现程序调用即可。
    (2)BFF此时,每次访问该页面都需要发送 3 个请求。同时为了保障app,第三方和Web 端的不同需求,需要为不同的平台写不同的 API 接口,而每当值发生一些变化时,需要 Android,iOS,Web 做出修改。与此同时,当我们需要对一个字符串进行处理,如限定 140 个字符的时候,我们需要在每一个客户端(Android,iOS,Web)分别实现一遍,这样的代价显然相当大。
    于是,我们就需要 BFF 作为中间件。在这个中间件上我们将做一些业务逻辑处理
    而当我们有了 BFF 这一层时,我们就不需要考虑系统后端的迁移。后端发生的变化都可以在 BFF 层做一些响应的修改即可,无需修改app,同时也修改web端。
    (3)网关:对于一些跨横切面的关注点(cross cutting concerns),例如路由,安全认证,日志监控分析,限流等等,通常可由独立的网关(Gateway)层负责,下面是用一个网关将所有的切面关注点全部处理的例子。值得注意的是,单节点的 API网关为每个客户端提供不同的API,而不是提供一种万能风格的API。(就如同最上面的图示一样)

    也可以是多个网官API,有的网关API处理安全,限流等等,其他网关API处理超时,缓存等等。


    2.微服务与SOA
    3.微服务与分布式
    一个是分散压力,一个是分散能力。

  • 相关阅读:
    设计模式之动态代理
    设计模式之单例模式
    WinDbg调试高内存的.Net进程Dump
    ping 和 远程桌面 与防火墙的关系
    log4net性能小探
    html页面缓存问题
    casperjs在拆分文件后的中文乱码问题的解决
    casperjs userAgent的一些问题
    浅谈并查集
    当你感到学习困难的时候,你在走上坡路!
  • 原文地址:https://www.cnblogs.com/Gbeniot/p/10394025.html
Copyright © 2011-2022 走看看