分布式架构利用开源框架之五大服务组件(Ngnix,Zookeeper,Dubbo,solr,MQ)


下图是一个分布式架构的案例,用这个案例来做下面的说明,服务组件是因为部署起来是一个服务。

替代zookeeper的国产 zookeeper类似的框架_开源框架

 

  1. 第一大服务组件:Ngnix   用来做负载均衡或者反向代理
  2. 弟二大服务组件:Zookeeper   用来做注册中心服务,服务的注册与发现
  3. 第三大服务组件:Dubbo  用来做Rpc远程调用服务
  4. 第四大服务组件:solr(ElasticSearch)   用来做全文检索服务
  5. 第五大服务组件:MQ   用于消息中间件(ActiveMQ,RabbitMQ)

 

 

 

看图片我们可以分析出几个架构的层次,从左到右,依次是:物理配置,网站应用层,网站服务层,数据存储层,大数据处理层。以下框架都是通过Jar包组件的形式导入项目,他们不是以服务组件形式。

  1. SpringMVC   作为MVC访问框架,如上图:这个框架应用于上图的网站应用层。
  2. MyBatis和MyBatis plus 作为ORM数据访问的框架,如上图:这个框架应用于上图的数据存储层。
  3. Redis 分布式缓存,也是内存缓存,特别在session缓存的应用,连接可用jedis,如上图:这个服务应用于上图的数据存储层,用于数据缓存。
  4. ActiveMQ 消息队列中间件,连接可用JMS,如:Spring-jms,如上图:这个服务应用于网站服务层,可集群,主从部署。实现消息同步和异步。
  5. Disconf  分布式配置,基于Zookeeper,如上图:这个服务应用于网站服务层,可主从部署,界面化配置服务。
  6. Shiro  轻量级权限框架,如上图:这个框架大部分应用于网站应用层,对其网站进行安全和权限做控制。
  7. Nginx   HAProxy  LVS 根据需要选择不同的负载均衡方式,Ngnix可做反向代理。
  8. SSO 单点登录,如上图:用于网站应用层和服务层。
  9. Mail  邮件  如: Java Mail,如上图:用于网站服务层。
  10. Maven nexus   Maven私服,如上图:用于网站服务层,自己的服务包的管理器
  11. Dokcer  虚拟化服务,自动化部署
  12. Netty Mina 模块通讯,长短连接,如上图,这两个框架用于网站服务层,是分布式服务之间的通讯。
  13. Hession Hession2   Java序列化,架构中的数据传输底层序列化,如:Dobbo就有Hession组件
  14. MyCat  Sharding-jdbc分布式数据库中间件,如上图:这两个中间件常用于数据库分表,分库,主从数据库方式来调用数据。
  15. Hadoop Spark 大数据处理框架,如上图:这两个框架应用于大数据处理层。