zoukankan      html  css  js  c++  java
  • 十三、微服务学习笔记-微服务概念(做有生命的产品而不是项目)

    一、什么是微服务

    1、微服务架构是一种架构思想,架构就是为了解耦,实际的开发方式采用分布式系统开发。

    2、业务领域定义了边界,可以参考DDD (领域驱动设计),如何划分领域?

    3、系统架构需要遵循的三个标准:

    (1)提高敏捷性:及时响应业务需求,促进企业发展(CAP)

    (2)提升用户体验:提升用户体验,减少用户流失

    (3)降低成本:降低增加产品、客户或业务方案的成本

     二、微服务架构

    1、单体开发架构

    2、微服务架构

    三、微服务实践

    1、这么多服务,客户端如何访问?

    统一的入口,通过API网关

    2、这么多服务,如何通信?

    两种

      1、同步                  对内RPC,对外 REST,json序列化两次,需要先转成json字符串,在将json字符串转二进制

                     1.1 HTTP  ->跨防火墙

                     1.2 RPC  -> 传输效率高,压缩,通过序列化,反序列化技术对数据进行压缩

           2、异步

                     2.1 消息队列

    3、这么多服务,如何治理?

    服务注册与发现服务注册中心,服务IP列表

    4、这么多服务,服务挂了怎么办?

    网络是不可靠

    (1)重试机制

    (2)限流

    (3)熔断机制(保险丝,超时断开,从而保证服务器不奔溃,限制并发量)

    (4)负载均衡

    (5)降级(本地缓存,保证主核心业务)

     四、微服务的设计

     客户端发现模式使用的是zookeeper,服务端发现模式使用的是eureka

    1、聚合器微服务设计模式

    2、代理微服务设计模式(API网关)

    3、链式微服务设计模式

    4、分支微服务设计模式

    5、数据共享服务设计模式

    6、异步消息传递微服务设计模式(消息队列)

     五、新架构新起点(有道无术,术尚可求,有术无道,止于术)

    对于微服务架构,最重要的是思维的转变,技术不是问题,思想才是王道,对于做微服务开发的几点建议:

    1、应用程序的核心是业务逻辑,按照业务或客户需求组织资源(这是最难的)

    2、做有生命的产品,而不是项目

    3、全栈化

    4、后端服务贯彻Single Responsibility Principle (单一职责原则),一个类只做一种事,一个方法只做一件事

    5、VM->docker->kubernetes->lstio

    6、DevOps(自动化运维),AI DevOps(智能自动化运维)

  • 相关阅读:
    用汇编的眼光看C++(之算术符重载) 四
    用汇编的眼光看C++(之嵌入汇编) 四
    用汇编的眼光看C++(之const属性) 四
    用汇编的眼光看C++(之虚函数) 四
    用汇编的眼光看C++(之类继承) 四
    用汇编的眼光看C++(之模板类) 四
    用汇编的眼光看C++(之class构造、析构) 四
    用汇编的眼光看C++(之类静态变量、静态函数) 四
    用汇编的眼光看C++(之特殊函数) 四
    多线程基础知识
  • 原文地址:https://www.cnblogs.com/myLeisureTime/p/13570763.html
Copyright © 2011-2022 走看看