对分布式应用的简单总结

  今天准备要写一篇博客的,记录每天的学习情况。如果每天光看书或者视频学习,很难坚持下去,而且看过就会忘了。写博客,是对自己看过东西的二次思考和整理,能够增加记忆。还有就是如果以后面试,再回过头来看自己写的东西,对于面试也是有帮助的。学习,是一个很抽象的东西,每天很难看出自己到底学了些啥,很难让自己有成就感,所以也难以坚持下去,最好就是写博客记录下来。当自己看到类似的文章或者问题时,或许又会有新的想法。从现在开始,每天坚持一篇博客。便于找到自己的不足,及时补救。
  今天看了分布式和nio相关的视频,下面谈谈自己对这两种东西的理解。
  分布式应用,听起来很高大上,其实自己平时一直都在用。说到分布式,不得不说说单机应用,以前的开发模式是,一个应用,所有的功能都在一台服务器上,最多数据库单独部署在另外的服务器上,这样的项目只适用于用户量很小的业务场景,一旦业务扩展,服务器很难扛住。现在所说的分布式应用,其实就是将整个项目分模块来部署在不同的服务器上,通过注册中心来进行调用。这样的好处是各个模块可以并行开发,更有利于后期的扩展和维护,降低了服务器的负担。如何实现呢。有rpc、resful两种借口,rpc接口是将数据序列化成二进制之后,通过http或tcp进行通信,而resful则通过json字符串来进行数据交互,通过http来进行通信,速度稍微比rpc慢。两者应用的场景不太一样,rpc是基于注册中心的,一般是内部系统之间的调用。如果是对外提供服务,比如给客服端,给其他的公司,这样选择resful接口更加合适。rpc实现分布式应用,需要dubbo,一个rpc框架,并且提供后台管理功能。
 注册中心一般选择zk,实现服务的注册。zk一般选择三台及以上,保证服务的高可用。zk内部会选举出一个leader,来提供注册服务。这样我们的rpc生产者就可以注册上了,消费者可以从注册中心获得消费者。一般服务会布置双边,保证高可用。分布式还会用到mq作为消息中间件,可以实现服务之间的解藕,解决并发问题。mq有点对点的和发布订阅的,点对点是队列。还有redis,作为缓存。redis是内存数据库,属于nosql数据库,存储效率比关系型数据库更快。它一般会用来缓存前端用户的请求,提高用户的访问速度,减少对数据库的查询次数。也用在分布式事务上,这个具体还不太清楚。
 对于外部的http请求,一般用nginx来实现负载均衡,将请求分发到对应的服务器上。nginx同时可以将请求转发到服务器的对于端口上。
   今天还看了nio,rpc的网络通信就是基于nio实现的。通讯效率比传统的io快,能够使用高并发。内部主要是基于缓存来实现,轮询来处理请求。后面准备将nio的原理图补充上来。
                                         2018年1月27日
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值