杭州.net培训
达内杭州.net培训中心

13732203138

热门课程

微服务架构的优点和不足之处分析

  • 时间:2018-06-22 14:11
  • 发布:杭州.NET培训
  • 来源:疑难解答

什么是微服务?

单体结构:

缺点:

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等

上一篇:net编程开发培训什么是json编程
下一篇:net编程开发语言都有多少种形式变化
选择城市和中心
贵州省

广西省

海南省