zoukankan      html  css  js  c++  java
  • 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等

  • 相关阅读:
    Django搭建环境_初始化
    Python3 获取以及解析json格式
    python遍历目录树删除指定后缀的文件
    redis基础
    Centos7 更换阿里yum源
    Python3 实现带cookie登陆网站--自动
    Python3 requests实现cookie登陆--手动
    Flask中使用Editormd上传图片
    Flask中数据库的多对多关系
    Flask中博客类的Post实现
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/9252082.html
Copyright © 2011-2022 走看看