什么是微服务?什么是分布式?

一、什么是微服务?
      微服务是一种面向服务的架构(SOA)风格(Java开发人员最重要的技能之一),其中,应用程序被构建为多个不同的小型服务的集合而不是单个应用程序。与单个程序不同的是,微服务让你可以同时运行多个独立的应用程序,而这些独立的应用程序可以使用不同的编码或编程语言来创建。庞大而又复杂的应用程序可以由多个可自行执行的简单而又独立的程序所组成。这些较小的程序组合在一起,可以提供庞大的单程序所具备的所有功能。

       微服务是一种面向服务的架构风格,具有灵活性和低成本两个特点.
       灵活性:由于这些较小的应用程序无需使用相同的编程语言,因此,开发人员可以使用他们最熟悉的语言,这是灵活性.

       低成本:由于他们都用自己擅长的语言去开发,所以效率会高,相应的开发成本会降低.

二、什么是分布式?
所谓分布式,无非就是将一个系统拆分成多个子系统并分布到多个服务器上.

简单的说,是指将用户界面、控制台服务、数据库管理三个层次部署在不同的位置上。其中用户界面是客户端实现的功能,控制台服务是一个专门的服务器,数据管理是在一个专门的数据库服务器上实现的。

分布式常用框架:Dubbo,MQ消息队列,Zookeeper等.

关于分布式服务框架Dubbo

1.服务注册中心,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
2.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。      

3.软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器.

关于MQ消息队列(RabbitMQ、ZeroMQ、ActiveMQ等.)

      在高并发分布式环境下,由于来不及同步处理,请求往往发生堵塞,比如说,大量的insert、update之类的请求
同时到达数据库,直接导致无所的行锁和表锁,甚至最后请求会堆积过多,从而触发too many connections错误。

通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。

ACK机制-当消费者拿到消息的瞬间,队列中的消息立即删除.同时删除 前台页面,缓存库,数据库 .(ACK机制保证了性能的高效.)
————————————————
版权声明:本文为CSDN博主「青灯伴古佛丶」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41582642/article/details/81016500

 

 

上次面试时经常被问到一个问题,你为什么要用dubbo?

由于经验尚浅,实在是没说得明明白白。

我用了dubbo后,我就可以这样调接口,巴拉巴拉,说到底还是争不过面试官问:那照你这么说,我不用分布式架构也可以完成啊,你只是说了用了分布式架构后业务处理的方法,并没有弄懂里面的原因。

结果自然是。。。。。。。给了offer,没去

简要的分析一下单体架构的优缺点,再说说用了分布式架构后会遇到的问题吧。

单体架构:

   ——优点:

1、易于开发:开发的方式简单,方便运行也容易调试。

2、易于测试。

3、易于部署。

 优点显而易见~

 ——缺点:

1、项目过于臃肿,维护成本大,出现bug难定位。

2、资源无法隔离:共享一个数据库,或者一块内存。

如果一个功能模块突然访问量过大,可能影响整个系统的性能。

3、无法灵活扩展:单体系统也可以集群部署,但是不够灵活,我明明只是订单系统遇到了瓶颈,

只需要将订单模块水平扩展就行,但现在要将整个系统水平扩展。不灵活!

4、交付周期长:所有功能得一起上线,一起构建,一起部署。

任何一个环节出错,都可能影响交付。

那分布式的优点自然就和单体架构就对立了~

再谈谈分布式架构的缺点:

1、性能,分布式系统是跨进程,跨网络的,性能很收网络延迟和带宽的影响。

2、可靠性:由于高度依赖网络状况,任何一次远程调用都可以失败。

随着服务的增多,还会出现更多的潜在故障点。

3、异步:引入各种中间件,异步通信大大增加了功能实现的复杂度。

4、数据一致性:分布式系统必然会有分布式事务的出现,这时对数据的一致性,

需要在C(一致性)A(可用性)P(分区容错性)中做出选择。

5、运维成本:一个系统拆成了多个服务,每个服务都得配置,部署,监控,日志处理。

得到的同时也意味着失去,权衡与取舍 始终是架构的魅力


————————————————
版权声明:本文为CSDN博主「world6」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/world6/article/details/79114105

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值