分布式服务那点事儿
剖析分布式服务特性和遇到的问题以及如何解决
dynamo2120
平凡坚持到底就是伟大
展开
-
探究Google Proto Buf 序列化工具为什么高效
为什么Proto Buf高效序列化和反序列化大家接触的比较多的是java自带的序列化工具,例如我们要对象数据进行持久化到硬盘或者通过网络传输到对端主机上,所以我们需要通过某种序列化工具将数据转化成一种特定数据结构,并且对端或者从磁盘读取时能够按照这种结构解析形成对象。 序列化:对象—>特定结构的二进制串 反序列化:二进制串–>对象。序列化工具有:Hessian(主要还是java,...原创 2019-11-22 23:27:23 · 527 阅读 · 0 评论 -
服务网格模式(Server Mesh)
服务网格模式(Server Mesh)服务网格模式可以看作是边车模式的集群方式,当多个边车相互连接在一起就形成了一个一个的服务网格,网格其实就是相互关联的服务Server Mesh(去中心化):在网络协议栈中,为了避免应用程序加入一些流量控制、拥塞的逻辑,从而将一些保证数据可靠到达对端的基本逻辑封装到一个组件中也就是TCP协议,然而应用程序只关心业务逻辑,已经需要发送什么格式数据到对方就可以...原创 2019-11-22 22:55:33 · 4318 阅读 · 0 评论 -
分布式服务之边车模式
边车模式边车:就是在原来二轮摩托车旁边增加一个座位成了三轮摩托车,增加的一部分称为边车边车模式:对现有的服务增加额外的功能,这些功能并不影响业务逻辑,例如增加日志,限流、熔断、服务的注册和服务发现有专门服务来实现。 像程序中的控制和业务逻辑分离(Controller 和 Service 层分离) 这样大大降低了服务之间的耦合度并提升了扩展性和降低业务的复杂性这也符合单一职责原则,服务就是负载...原创 2019-11-22 22:31:37 · 4133 阅读 · 0 评论 -
服务弹力设计总结
服务弹力设计总结一、服务冗余1、负载均衡器+健康检查 Nginx或HAProxy2、RPC框架 实现服务自动发现和注册 zookeeper3、自动化实现服务伸缩二、服务解耦1、分层(应用层、服务层、数据服务层)2、服务拆分(纵向拆分,将大应用拆成多个小应用 横向拆分:将应用层公共逻辑业务抽象出一个公共的服务独立部署向外提供服务)3、数据分片,每个服务独立用一个数据库,如...原创 2019-11-22 22:27:37 · 239 阅读 · 0 评论 -
大型网站技术架构之安全性
大型网站技术架构之安全性网站攻击方式XSS(Cross Site Script) 跨站脚本攻击 一般在PC浏览器端反射性:例如有张图片或者连接,当用户一点击就会执行攻击的脚本,向攻击者服务器发送cookie或密码信息,或者执行一个用户非自愿的一个请求到服务端持久性:将攻击的脚本信息通过页面的表单保存到了数据库中,当其他人访问到该条记录时就会在其他人浏览器上执行有害脚本,弹出框或盗取co...原创 2019-11-22 22:19:41 · 215 阅读 · 0 评论 -
大型网站技术架构之可扩展性
大型网站技术架构之可扩展性可扩展性首要步骤:1、将整个系统按照纵向划分多个层次(应用层、服务层、数据服务层),横向分割成多个模块2、保证模块之间是高内聚、低耦合的,将耦合降到最低实现可扩展性的方式(降低耦合)1、使用消息队列来保证分布式服务之间进行通讯,这种通讯方式将服务之间依赖降低到最小,消费端只管消费消息并不关心消息产生者是谁,同样消息产生者只管往消息队列放数据不关心消费方有哪些。这...原创 2019-11-22 22:18:03 · 378 阅读 · 0 评论 -
大型网站之伸缩性
大型网站技术架构之伸缩性什么是伸缩性当面临大量并发,大流量时,为了能够提高系统的处理能力,通过增加机器来提升系统性能,能够方便并且性能提升会根据增加机器数量呈线性增长,这个称为网站的伸缩性负载均衡算法随机轮询随机加权最少连接数(通过zk同步服务连接数量)应用层的伸缩通过负载均衡器将请求分发到应用层的服务,常用的负载均衡器为Nginx 反向代理,Ngnix会通过心跳方式(定时发...原创 2019-11-22 22:16:43 · 127 阅读 · 0 评论 -
大型网站之高可用
标题大型网站技术架构之高可用服务部署:一般上线之前会合并代码到develop分支上,然后通过打包平台进行编译打包,然后将包通过scp传到服务器上,ssh 服务器ip 然后执行命令重启服务,重启之前,先从ngnix切除到这台服务器的请求(通过命令修改配置删掉对应服务器ip,然后reload nginx),等待1、2秒 等到应用服务处理完正在处理的数据,最后重启服务器,然后检查其端口是否启用,是否...原创 2019-11-22 22:14:58 · 144 阅读 · 0 评论 -
大型网站之高性能
标题大型网站技术架构之高性能标题标题性能指标:用户角度:使用app或网站响应的快慢开发角度: 吞吐量、响应时间、并发数以及系统资源利用情况吞吐量:每秒处理的请求数,称为TPS或QPS响应时间:从请求发送开始计时到获取结果所花费的时间,例如从缓存中获取数据所消耗的时间并发数:有多少用户同时请求数据并发数和吞吐量以及响应时间都是有关联的,当并发数增多时相应的吞吐量也会增大,但是响应时间会...原创 2019-11-22 22:13:58 · 107 阅读 · 0 评论