个人笔记
文章平均质量分 69
itliwei
这个作者很懒,什么都没留下…
展开
-
搞懂“负载均衡”,一篇就够了
在互联网发展呢的今天,我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个的,比如 www.baidu.com 那么当用户在浏览器输入 www.baidu.com 的时候如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡在做的事情。负载均衡的分类负载均衡就是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁碟驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。那么,这种计算机技术的实现方式有多种原创 2021-04-20 07:29:18 · 979 阅读 · 0 评论 -
5分钟深入理解RabbitMQ
RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。Erlang是为电话交换机编写的语言,天然对分布式和高并发支持良好。RabbitMQ特点RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现非常优异。具体有以下特点:可靠性(Reliability)消息服务的可靠性是MQ的基础,RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认等。灵活的路由(Flexible Routing)在消息进入队列之前,通过 Exc原创 2021-04-17 02:08:31 · 297 阅读 · 0 评论 -
消息队列-基础篇
前文我们讲到了分布式事务可以通过MQ(消息队列)的半消息来实现,除此之外在分布式系统中我们大量的场景会用到MQ,比如微信朋友圈里你点赞一条信息,你的共同点赞的好友就会收到一个消息通知等。那么MQ都有哪些使用场景呢?MQ 的作用1.应用解耦如图所示,第一种 B和C 都直接依赖 A 服务,那么如果 A 中的接口修改,B和C 都要跟着做修改,耦合度高。 第二种,通过 MQ 来作为中间件收发消息,B和C只依赖收到的消息而不是具体的接口,这样即使 A 服务修改或者增加其他服务,都只要订阅MQ就行。这样一来,应用是不是原创 2021-04-16 07:55:14 · 214 阅读 · 0 评论 -
ZooKeeper 启动过程分析
单机服务器启动ZooKeeper服务器启动,大体分为五个主要步骤:配置文件解析、初始化数据管理器、初始化网络I/O管理器、数据恢复和对外服务。预启动预启动的步骤如下:1、统一由QuorumPeerMain作为启动类2、解析配置文件zoo.cfg3、创建并启动历史文件清理器DatadirCleanupManager4、判断当前是集群模式还是单机模式的启动5、再原创 2017-01-12 22:44:08 · 442 阅读 · 0 评论 -
ZooKeeper Session分析
在ZooKeeper客户端与服务端成功完成建立连接后,就建立了一个会话。ZooKeeper会话在整个运行期间的生命周期中,会在不同的会话状态之间进行切换,这些状态一般可以分为CONNECTING、CONNECTED、RECONNECTING、RECONNECTED和CLOSE等。Session 是ZooKeeper中最重要的概念之一。它包括4个基本属性:sessionID:会话ID,唯原创 2017-01-12 21:15:37 · 567 阅读 · 0 评论 -
ZooKeeper启动数据初始化分析
在ZooKeeper服务器启动期间,首先会进行数据初始化工作,用于将存储在磁盘上的数据文件加载到ZooKeeper服务器内存中。初始化流程数据初始化工作其实就是从磁盘中加载数据的过程,主要包括了从快照文件中加载快照数据的根据事务日志进行数据订正两个过程。1.初始化FileTxnSnapLogFileTxnSnapLog是ZooKeeper事务日志和快照数据访问原创 2017-01-14 10:41:02 · 2032 阅读 · 0 评论 -
ZooKeeper应用场景
随着互联网系统规模的不断扩大,大数据时代飞速到来,越来越多的分布式系统将ZooKeeper作为核心组件使用。接下来一起看一下ZooKeeper究竟可以做哪些工作。1、数据发布/订阅数据发布/订阅系统,就是将数据发布到ZooKeeper的一个或一系列节点上,供订阅者进行数据订阅,从而达到动态获取数据的目的。发布/订阅系统一般有两种设计模式,分别是推(Push)和拉(Pul原创 2017-01-08 21:50:39 · 318 阅读 · 0 评论 -
关于共享单车,说点什么
共享单车,这也许是今年夏天以来最火的一个词语了。然而,它的火不只是在概念上,也真真切切的深入到我们每个人的身边。先上几张图片吧!mobikeofo先简单说一些,我对这两款产品的看法。1、从科技角度这一点,相信不用多说,大家都有结论。ofo单车,可以说和普通自行车没有一点不同。而mobike单车,明显不同于传统的原创 2016-12-19 22:21:02 · 846 阅读 · 0 评论 -
初识ZooKeeper
ZooKeeper是一个分布式数据一致性的解决方案,可以基于它实现数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。ZooKeeper特性顺序一致性从同一个客户端发起的事务请求,最终会严格按照发起的顺序被应用到ZooKeeper中去。原子性所有事务请求的处理结果在整个集群中所有机器上的应用情况是一原创 2017-01-07 00:09:03 · 219 阅读 · 0 评论 -
从ACID到CAP/BASE
接下来会学习一下Zookeeper,在学习Zookeeper之前,还是要介绍一些分布式事务的基础理论知识。事务的ACID,我们在介绍MySql的时候,已经介绍到了。所以在此就不做介绍了。 然而,随着分布式计算的发展,事务在分布式计算领域中也的到了广泛的应用。在单机数据库中,很容易实现一套满足ACID特性的事务处理,但在分布式数据库中进行事务处理就具有非常大的挑战。因为分布式环境存在原创 2017-01-06 22:15:03 · 268 阅读 · 0 评论 -
性能优化一点总结
个人管理方面1、形成体系化的思想。当做一件事(开发一个系统、解决一个问题)的时候,可以按照一定的体系去下手,这个体系可以理解为思维意识。少了很多无从下手、从零开始的过程,从而提升效率。这一点事需要个人长久的总结和丰富的经验!2、开阔自己的视野。从不同方面去寻找自己解决问题的思路,增加自己的选择空间,会让你权衡更全面,分析更透彻,从而理解更深入,解决问题也更到位。做技原创 2016-12-27 22:41:43 · 334 阅读 · 0 评论 -
Dubbo注册中心介绍
Dubbo的注册中心有好多种,包括Multicast、Zookeeper、Redis和Simple等。Dubbo官方推荐使用Zookeeper注册中心,我所使用过的也只是Zookeeper注册中心。首先介绍一下Zookeeper: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为原创 2016-12-25 22:30:37 · 2452 阅读 · 0 评论 -
Dubbo协议介绍
关于Dubbo使用的demo我在这就不多介绍了,因为很简单,网上资源也很多。在这里我简单介绍一下Dubbo的配置中使用到的最常用的协议。在介绍协议之前,首先要介绍一下Dubbo的线程模型事件处理线程说明如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识,则直接在IO线程上处理更快,因为减少了线程池调度。但如果事件处理逻辑较慢,或者需要原创 2016-12-25 11:18:32 · 452 阅读 · 0 评论 -
Dubbo介绍
一、系统架构演变首先说一下系统应用的发展演化过程。也是我整个工作过程中经历的过程。1.单机应用特点:当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。比如,一个公司的所有系统都整合在一起,比如后台管理系统,OA系统、CRM系统全部放在一起,而根据不同的用户权限展示不同的系统功能。2.垂直拆分特点:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小原创 2016-12-24 17:29:23 · 249 阅读 · 0 评论 -
mongodb性能优化
一.范式化与反范式化范式的优点:1)范式化的数据库更新起来更加快;2)范式化之后,只有很少的重复数据,只需要修改更少的数据;3)范式化的表更小,可以在内存中执行;4)很少的冗余数据,在查询的时候需要更少的distinct或者group by语句。范式的缺点:1)范式化的表,在查询的时候经常需要很多的关联,因为单独一个表内不存在冗余和重复数据。这导致,稍微复杂一些的查询原创 2016-12-24 12:52:24 · 338 阅读 · 0 评论 -
基于mongodb的地理检索实现
使用mongoDB不是很多,记得以前做“家长助手”的时候,使用过一点。只是在去年做“派单系统”的时候,又再一次使用mongoDB。在这里先简单介绍一下派单系统,派单系统在云足疗(O2O,上门足疗)里一个专门负责订单派送,提高订单完成效率的一个系统。主要是当一个来了之后,会根据订单的服务项目、服务时间和服务地点,快速找到最合适最优秀的技师,返回给用户。由于上门足疗特殊行业的要求,不能给订单指定技师直原创 2016-12-22 21:40:36 · 2614 阅读 · 0 评论