
架构
文章平均质量分 70
猿来这样1
编程圈子,谢厂节的博客
展开
-
实战接入腾讯云日志服务
接入腾讯日志平台原创 2022-01-09 22:12:29 · 1869 阅读 · 0 评论 -
分布式服务框架学习笔记10 RabbitMQ在Linux下的安装
RabbitMQ在CentOS、Ubuntu下的安装原创 2022-01-07 20:51:23 · 276 阅读 · 0 评论 -
ZooKeeper学习笔记一 一致性协议
本文学习内容来自:《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社分布式架构分布式的特点:对等性并发性缺乏全局时钟分布式环境的问题通信异常网络分区三态节点故障从ACID到CAP/BASEACID原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durabili...原创 2018-03-30 13:27:08 · 489 阅读 · 0 评论 -
ZooKeeper学习笔记二 Paxos的工程实践
本文学习内容来自: 《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社 https://www.cnblogs.com/leesf456/p/6005806.htmlChubbyGoogle Chubby是一个分布式锁服务,GFS和Big Table等大型系统都用它来解决分布式协作、元数据存储和Master选举等一系列与分布式锁服务相关的问题。Chubby的底层...转载 2018-04-10 17:09:55 · 431 阅读 · 0 评论 -
ZooKeeper学习笔记三 ZooKeeper与Paxos
本文学习内容来自: 《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社 Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目。ZooKeeper为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。在解决分布式数据一致性方面,ZooKe...原创 2018-04-27 15:07:05 · 1027 阅读 · 0 评论 -
ZooKeeper学习笔记四 ZooKeeper基本使用
4、clientPort:这个端口就是客户端连接Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。2、dataDir:顾名思义就是Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。文档:http://zookeeper.apache.org/doc/r3.4.6/api/index.html。下载地址:https://downloads.apache.org/zookeeper/默认情况下,创建的是持久节点。原创 2018-04-27 17:43:21 · 798 阅读 · 1 评论 -
ZooKeeper学习笔记五 ZooKeeper开源客户端ZkClient
本文学习资源来自《从Paxos到ZooKeeper分布式一致性原理与实践》ZkClientZkClient 在ZooKeeper原生API接口之上进行了封装,是一个更易用的ZooKeeper客户端。同时,ZkClient在内部实现了诸如Session超时重连、Watcher反复注册等功能,使得ZooKeeper客户端的这些繁琐的细节工作对开发人员透明。连接package zoo...原创 2018-04-28 16:01:22 · 513 阅读 · 0 评论 -
ZooKeeper学习笔记六 ZooKeeper开源客户端Curator
本文学习资源来自《从Paxos到ZooKeeper分布式一致性原理与实践》CuratorCurator是Netflix公司开源的一套ZooKeeper客户端框架,作者是Jordan Zimmerman。 和ZkClient一样,Curator解决了很多ZooKeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等,目...原创 2018-04-28 16:43:02 · 523 阅读 · 0 评论 -
ZooKeeper学习笔记七 ZooKeeper典型应用场景——发布/订阅
本文学习资源来自《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社数据发布/订阅数据发布/订阅系统,即配置中心。发布/订阅系统一般有两种设计模式,分别为推模式和拉模式。在推模式中,服务端主动将数据更新发送给所有订阅的客户端,而拉模式则是由客户端主动发起请求来获取最新数据,通常客户端都采用定时进行轮询拉取的方式。 ZooKeeper采用的是推拉相结合的方式: ...原创 2018-05-02 14:14:36 · 487 阅读 · 0 评论 -
ZooKeeper学习笔记八 ZooKeeper典型应用场景——命名服务
《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社 命名服务是分布式系统中比较常见的一类场景。命名服务是分布式系统最基本的公共服务之一。在分布式系统中,被命名的实体通常可以是集群中的机器、提供的服务地址或远程对象等——这些我们都可以统称它们为名字(Name),其中较为常见的就是一些分布式服务框架(如RPC、RMI)中的服务地址列表,通过使用命名服务,客户端应用能够根据指...原创 2018-05-02 16:00:53 · 3088 阅读 · 0 评论 -
ZooKeeper学习笔记九 ZooKeeper典型应用场景——Master选举
本文学习资源来自《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社 Master选举是一个在分布式系统中非常常见的应用场景。分布式最核心的特性就是能够将具有独立计算能力的系统单元部署在不同的机器上,构成一个完整的分布式系统。而与此同时,实际场景中往往也需要在这些分布在不同机器上的独立系统单元中选出一个所谓的“老大”,在计算机科学中,称之为Master。在分布式系统中...原创 2018-05-02 17:01:02 · 546 阅读 · 0 评论 -
ZooKeeper学习笔记十 ZooKeeper典型应用场景——分布式锁
本文学习资源来自《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要使用分布式锁了。在平时的实际项目开发中,我们往往很少会去在意分布式锁,而是依赖...原创 2018-05-04 07:55:11 · 763 阅读 · 0 评论 -
ZooKeeper学习笔记十一 ZooKeeper典型应用场景——分布式队列
本文学习资源来自《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社分布式队列,简单地讲有两大类:一种是常规的先入先出队列,另一种则是要等到队列元素集聚之后才统一安排执行的Barrier模型 (同步队列)。 FIFO:先入先出先入先出的算法思想,以其简单明了的特点,广泛应用于计算机科学的各个方面。而FIFO队列也是一种非常典型且应用广泛的按序执行的队列模型;先进入...原创 2018-05-04 11:31:47 · 747 阅读 · 0 评论 -
ZooKeeper学习笔记十二 ZooKeeper在大型分布式系统中的应用
本文学习资源来自《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社Hadoop在Hadoop中,ZooKeeper主要用于实现HA(High Availability),这部分逻辑主要集中在Hadoop Common的HA模块中,HDFS的NameNode与YARN的ResourceManager都是基于HA模块来实现自己的HA功能的。同时,在YARN中又特别提供了...原创 2018-05-04 14:28:45 · 757 阅读 · 0 评论 -
ZooKeeper学习笔记十三 分布式系统中基于ZooKeeper的服务注册中心设计
本文学习资源来自《分布式服务框架原理与实践》中国工信出版信息、电子工业出版社一、服务注册中心对于服务提供者,它需要发布服务;由于应用系统的复杂性,服务的数量、类型不断膨胀;对于服务消费者,它最关心的是如何获取到它所需要的服务。对于服务提供方和消费方来说,它们还有可能兼具这两种角色;既需要提供服务,又需要消费服务。如何有效地管理服务订阅/发布,避免硬编码地址信息是分布式服务框架需要解...原创 2018-05-04 16:05:59 · 1299 阅读 · 0 评论 -
Dubbo 学习1 快速开始
简介Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。官网:http://dubbo.io/GIT地址:ht原创 2017-11-15 15:56:51 · 447 阅读 · 0 评论 -
Dubbo 学习2 Dubbo-Admin及服务注册到Zookeeper
1. 需要先安装好zookeeper安装启动zookeeper后,输入jps,看到输出: 2. 下载编译dubbo-admin检出 https://github.com/alibaba/dubbo , 整个项目编译。有的文章讲只编译dubbo-admin就可以,但我没成功。 如果编译失败,多试几次。我试了很多次才成功了。cd dubbo-master/mvn install -Dmaven.原创 2017-12-06 13:51:53 · 643 阅读 · 0 评论 -
分布式服务框架学习笔记1 应用架构演进
传统垂直应用架构业界曾比较流行的有: LAMP架构:Linux+Apache+PHP(前后端分离)+MySQL(读写分离) MVC架构:Spring+Struts+iBatis/Hibernate+Tomcat在高并发、大流量的应用场景中,需要做集群,通常的组网方案是前端通过F5等负载均衡器做七层负载均衡(或者使用SLB等软负载),后端做对等集群部署。随着业务的不断发展,应用规模日趋庞大,传统垂原创 2017-03-02 09:25:36 · 3206 阅读 · 0 评论 -
分布式服务框架学习笔记2 常用的分布式服务框架 与 通信框架选择
传统垂直架构改造的核心就是要对应用进行服务化,服务化改造使用到的核心技术就是分布式服务框架。分布式服务框架演进应用从集中式走向分布式大规模系统架构的设计一般原则就是尽可能地拆分,以达到更好的独立扩展与伸缩、更灵活的部署、更好的隔离和容错、更高的开发效率。 具体的拆分策略大体上可以分为横向拆分和纵向拆分。纵向拆分通过对业务进行梳理,根据业务的特性把应用拆开,不同的业务模块独立部署。横向拆分将核心的、原创 2017-03-02 12:36:40 · 1724 阅读 · 0 评论 -
分布式服务框架学习笔记3 序列化、反序列化与协议栈
暂空…原创 2017-03-02 13:08:33 · 936 阅读 · 0 评论 -
分布式服务框架学习笔记4 服务路由
透明化路由很多开源的RPC 框架调用者需要配置服务提供者的地址信息,尽管可以通过读取数据库的服务地址列表等方式避免硬编码地址信息,但是消费者依然要感知服务提供者的地址信息,这违反了透明化路由原则。基于服务注册中心的订阅发布在分布式服务框架中,服务注册中心用于存储服务提供者地址信息、服务发布相关的属性信息,消费者通过主动查询和被动通知的方式获取服务提供者的地址信息,而不需要像之前那样在代码中硬编码服务原创 2017-03-02 13:49:53 · 5722 阅读 · 0 评论 -
分布式服务框架学习笔记5 消息队列
概述消息队列一般实现了服务的发布、订阅模式,是分布式系统的重要的组件,主要解决应用耦合,异步消息,流量削峰等问题,实现高性能、高可用,可伸缩和最终一致性架构。目前在生产环境,使用较多的消息队列有 - ActiveMQ - RabbitMQ:采用Erlang开发,支持完善的AMQP协议 - ZeroMQ:C开发,重点在于效率,接口极为简单 - Kaffka:Scala开发 - Me原创 2017-03-02 18:49:34 · 1245 阅读 · 0 评论 -
分布式服务框架学习笔记6 Motan试用
Motan是新浪微博2015年开源的一款RPC框架。 Git地址:https://github.com/weibocom/motan功能支持通过spring配置方式集成,无需额外编写代码即可为服务提供分布式调用能力。支持集成consul、zookeeper等配置服务组件,提供集群环境的服务发现及治理能力。支持动态自定义负载均衡、跨机房流量调整等高级服务调度能力。基于高并发、高负载场景进行优原创 2017-03-03 12:21:32 · 2869 阅读 · 0 评论 -
分布式服务框架学习笔记7.1 Thrift入门试用
Thrift是facebook开发,08年进入apache孵化器 官网地址 : https://thrift.apache.org使用过程下载配置新建Maven项目pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs原创 2017-03-09 10:40:45 · 1538 阅读 · 0 评论 -
分布式服务框架学习笔记7.2 Thrift 异步调用
服务端import org.apache.thrift.TProcessor;import org.apache.thrift.protocol.TCompactProtocol;import org.apache.thrift.server.TNonblockingServer;import org.apache.thrift.server.TServer;import org.apac原创 2017-11-28 16:11:12 · 2085 阅读 · 0 评论 -
分布式服务框架学习笔记7.3 Thrift 池
服务端import org.apache.thrift.TProcessor;import org.apache.thrift.protocol.TCompactProtocol;import org.apache.thrift.server.TNonblockingServer;import org.apache.thrift.server.TServer;import org.apach原创 2017-11-28 16:17:17 · 496 阅读 · 0 评论 -
分布式服务框架学习笔记8 ActiveMQ入门使用
测试环境windows+Eclipse 下载 http://activemq.apache.org/download-archives.html下载后 打开c:/tools/apache-activemq-5.9.0/bin/activemq.bat启动服务添加依赖 <dependency> <groupId>org.apache.activemq</groupId>原创 2017-03-10 08:35:34 · 769 阅读 · 0 评论 -
分布式服务框架学习笔记8 ActiveMQ入门2 发布/订阅模式
发布/订阅是个一对多的模式。publisherimport javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import java转载 2017-09-29 15:59:35 · 582 阅读 · 0 评论 -
分布式服务框架学习笔记9 ActiveMQ入门3 管理、生产者/消费者模式
管理界面ActiveMQ安装以后,通过浏览器访问: http://localhost:8161/admin/ 输入账号admin 密码admin 即可打开管理界面。修改密码,打开 conf/jetty.xml文件,找到<bean id="securityConstraint" class="org.eclipse.jetty.http.security.Constraint">原创 2017-03-10 10:52:09 · 691 阅读 · 0 评论 -
集群与负载均衡技术总结
本文为个人学习笔记,可能有很多描述不对,仅作参考。分发均衡策略DNS负载均衡实现方式:一个域名设定多个dns服务或者服务器进行解析,同一个域名的每个解析都指向不同的IP地址自建DNS解析服务使用场景:不同线路可以通过动态域名解析到最快的IP上。 应用层与内容的均衡还要另外考虑实现方案。LVSLinux虚拟服务器,需要申请多个IP...原创 2016-03-14 16:58:57 · 2417 阅读 · 0 评论 -
网站加速方案
一、加速思路代码优化压缩输出内容缓存输出函数缓存输出加速/缓存工具软件 1.减少连接数 HTTP1.1协议里,一个浏览器窗口会打开2个连接。不同的浏览器和版本,就此限制有所区别。减少弹出窗口,可以有效增加服务器连接数。在不是必要的地方,减少弹出窗口。 其它网站做图片友情链接的时候,不要把图片链接到本站。 2.能用Cookie的地方,不要用Session Session在服务器需要原创 2016-11-20 14:20:09 · 1243 阅读 · 0 评论 -
PaaS 平台学习(开源力量OSF)构建千万级大规模、高可靠PaaS平台的技术挑战 学习笔记
感谢许志强老师的辛苦付出。2015年1月13日 参加云通讯PaaS平台学习,特作此记录。大纲:选择Paas平台的考量(我的企业是否适合选PaaS平台,我应该选怎么样的PaaS平台)基于PaaS平台的开发、测试、部署和迁移的流程、关键技术和注意事项如何构建能支持千万级用户的大规模PaaS平台?技术挑战有哪些?有哪些经验和教训?如何实现PaaS平台的高可靠性?如何保证PaaS平台的安全原创 2015-01-13 22:07:49 · 4441 阅读 · 0 评论 -
OAuth2.0 学习笔记
Oauth2.0简介一个针对第三方的授权协议。为用户资源的授权提供了一个安全的、开放而简易的标准。术语Third-party applicationHTTP serviceResource Owner:一般指用户User Agent:可能是浏览器Authorization server:认证服务器Resource server:资源服务器三个URL: Request Token UR原创 2015-11-21 15:20:14 · 773 阅读 · 0 评论 -
Twitter的分布式自增ID算法snowflake(Java版)
项目网址: https://github.com/twitter/snowflake结构: snowflake的结构如下(每部分用-分开):0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年),然后是5位datacen转载 2017-09-27 08:17:29 · 455 阅读 · 0 评论