• Net Core微服务


    Net Core微服务

    http://www.cnblogs.com/qhbm/category/1235971.html

    开发工具:VS2017 .Net Core 2.1

    什么是微服务?
    单体结构:

    缺点:
    1)只能采用同一种技术,很难用不同的语言或者语言不同版本开发不同模块;
    2)系统耦合性强,一旦其中一个模块有问题,整个系统就瘫痪了;一旦升级其中一个模块,整个系统就停机了;
    3)要上线必须一起上线,互相等待,无法快速响应需求;
    4)集群只能是复制整个系统,即使只是其中一个模块压力大;

    微服务:
    不同模块放到不同的进程/服务器上,模块之间通过网络通讯进行协作。
    适用于:模块比较多,访问量比较大的互联网类系统,并不是所有项目都适合微服务

    优点:
    1)可以用不同的语言或者语言不同版本开发不同模块;
    2)系统耦合性弱,其中一个模块有问题,可以通过“降级熔断”等手段来保证系统不血崩;
    3)可以独立上线,能够迅速响应需求;
    4)可以对不同模块用不同的集群策略,哪里慢集群哪里。

    缺点:
    1)开发难度大,系统结构更复杂;
    2)运行效率低;(网络通讯没有进程通讯快)

    微服务架构要处理哪些问题?
    服务间通讯;服务治理与服务发现;网关和安全认证;限流与容错;监视等
    第一代微服务:Dubbo(Java)、Orleans(.Net)等 和语言绑定紧密;
    第二代微服务:Spring Cloud等 适合混合开发
    第二代微服务:Service Mesh(Service Fabric(微软内部使用的、开源的)、lstio、Conduit等)
    目前:第三方微服务还在快速发展中,更新迭代比较快(还不完善)

    .NetCore 微服务选型
    为什么是.net Core?虽然.Net Framework也可以实现微服务,但是.Net Core是为云而生,用来实现微服务更方便,而且.Net Core可以跨平台。(.Net Framewordk不会再有.Net5.x 下一代就是.Net Core)

    第二代微服务架构:Consul+Ocelot+.Net Core+Polly+.....;
    腾讯.net大队长张善友把腾讯内部的架构实战整理出一个开源项目NanoFabric(Github上可以搜到),NanoFabric不是一个独立的技术,它只是帮我们搭建好了,配置好了的一个脚手架,只是一个胶水项目,文档不全,仅供我们参考。

    在SpringCloud中:EurekaServer做服务治理和服务发现、Hystrix做熔断降级、Zuul做网关;
    在NanoFabric中:Consul做服务治理和服务发现、Polly做熔断降级、Ocelot做网关;

    在微服务中,服务之间的通讯有俩种主要形式:
    1)Restful,也就是传输Json格式数据。.net中就是对应的webapi技术 效率比较低,数据冗余,短连接
    2)二进制RPC:二进制传输协议,比restful用的http通讯效率更高,但是耦合性更强。技术有Thrift、gRPC等

  • 相关阅读:
    Cocos2d-x 3.0 lua规划 真正的现在Android在响应Home密钥和Back纽带
    SICP 练习 (2.9)解决摘要:宽度和区间运算的关系间隔
    编tuxedo遇到服务问题
    数据库关闭
    三维CAD塑造——基于所述基本数据结构一半欧拉操作模型
    采用proguard困惑android代码
    a中国天气网pi(json格式)
    android 内存优化
    如何获得最近的餐馆谁
    采购入库单已暂估生成凭证,当月后来又收到采购发票,结算后如何处理?
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/9252082.html
Copyright © 2020-2023  润新知