分布式和微服务理解

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

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

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

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

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

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

关于分布式服务框架Dubbo

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

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

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

  在高并发分布式环境下,由于来不及同步处理,请求往往发生堵塞,比如说,大量的insert、update之类的请求

同时到达数据库,直接导致无所的行锁和表锁,甚至最后请求会堆积过多,从而触发too many connections错误。

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

ACK机制-当消费者拿到消息的瞬间,队列中的消息立即删除.同时删除 前台页面,缓存库,数据库 .(ACK机制保证了性能的高效.)

你可能感兴趣的:(分布式)