架构
分布式/微服务/高可用/dubbox/springcloud/RPC
caodongfang126
这个作者很懒,什么都没留下…
展开
-
Eureka 注册中心
服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是微服务架构中最基础的设施之一。 在微服务架构流行之前,注册中心就已经开始出现在分布式架构的系统中。Dubbo 是一个在国内比较流行的分布式框架,被大量的中小型互联网公司所采用,它提供了比较完善的服务治理功能,而服务治理的实现主要依靠的就是注册中心。 ...转载 2020-03-08 00:57:35 · 203 阅读 · 0 评论 -
用zookeeper实现简单的发布订阅功能
发布方Provider的代码package com.zhuyun.release.subscribe;import org.apache.zookeeper.CreateMode;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org.apache.zookeep...转载 2020-03-08 00:57:55 · 392 阅读 · 0 评论 -
微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
前言服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。CAP理论...转载 2020-03-08 00:58:05 · 2609 阅读 · 0 评论 -
Nacos,Eureka与ZooKeeper的比较
著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。3.1 Zookeeper保证CP当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用。也就是说...转载 2020-03-07 17:19:42 · 7370 阅读 · 5 评论 -
12306”的架构到底有多牛逼
12306 抢票,极限并发带来的思考虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用 12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306 服务”承受着这个世界上任何秒杀系统都无法超越的 QPS,上百万的并发再正常不过了!笔者专门研究了一下“12306”的服务端...转载 2020-03-07 12:15:50 · 260 阅读 · 0 评论 -
高性能服务端优化之路
业务场景达达是全国领先的最后三公里物流配送平台。达达的业务模式与滴滴以及Uber很相似,以众包的方式利用社会闲散人力资源,解决O2O最后三公里即时性配送难题。达达业务主要包含两部分:商家发单,配送员接单配送,如下图所示。达达的业务规模增长极大,在1年左右的时间从零增长到每天近百万单,给后端带来极大的访问压力。压力主要分为两类:读压力、写压力。读压力来源于配送员在APP中抢单,高频刷新...转载 2020-03-07 12:05:47 · 161 阅读 · 0 评论 -
比较spring cloud和dubbo,各自的优缺点是什么
dubbo由于是二进制的传输,占用带宽会更少springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决springcloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级dubbo的注册中心可以选择zk,redis等多种,spri...转载 2019-01-14 19:06:38 · 464 阅读 · 0 评论 -
JAVA后端常用框架SSM,redis,dubbo等
JAVA后端常用框架SSM,redis,dubbo等一、SpringMVChttp://blog.csdn.net/evankaka/article/details/45501811spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请转载 2017-12-13 14:17:03 · 1251 阅读 · 0 评论 -
Dubbo中使用高效的Java序列化(Kryo和FST)
Dubbo中使用高效的Java序列化(Kryo和FST)序列化漫谈dubbo RPC是dubbo体系中最核心的一种高性能、高吞吐量的远程调用方式,我喜欢称之为多路复用的TCP长连接调用,简单的说:长连接:避免了每次调用新建TCP连接,提高了调用的响应速度多路复用:单个TCP连接可交替传输多个请求和响应的消息,降低了连接的等待闲置时间,从而减少了同样并发数下的网络转载 2017-12-04 17:46:17 · 323 阅读 · 0 评论 -
dubbo总结(2)——dubbo的使用场景
dubbo总结(2)——dubbo的使用场景关于dubbo的使用场景,这个要从系统的演变开始将起,既然dubbo的使用很多是在电商系统中,那么就从电商系统的演变开始讲起。 一个简单的电商网站说起,它可能包含如下的几个模块和功能,如首页、detail页、list页、下单页、支付页以及后台管理等页面和功能。单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加转载 2017-11-24 18:55:44 · 559 阅读 · 0 评论 -
Dubbox 环境搭建
Dubbox 环境搭建第一章:Dubbox简介 Dubbox是一个开源的RPC(Remote ProcedureCall Protocol)远程调用框架,是由dangdang对阿里的Dubbo的升级,可以被视为Dubbo的增强版,基本架构没有变动,升级spring2.x到spring3.x,支持restful风格的调用调试方式,丰富了序列化的方式,提高了序列化的性能。 Du转载 2017-11-22 17:14:45 · 295 阅读 · 0 评论 -
服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型概述前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺点以及使用场景,最终结合本身项目的实际情况选择了使用dubbox作为rpc基础服务框架。下面就简单介绍一下RPC框架技术选型的过程。RPC简述该系列文章将讲述以下RPC框架的helloword实例以及其实现原理转载 2017-11-22 16:38:05 · 385 阅读 · 0 评论 -
CentOS7 上安装 Zookeeper-3.4.10 服务
CentOS7 上安装 Zookeeper-3.4.10 服务在 CentOS7 上安装 zookeeper-3.4.10 服务 1、创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/services/zookeeper 2、进入到 /usr/local/services/zookeeper 目录中原创 2017-12-11 11:08:49 · 519 阅读 · 0 评论 -
高级开发工程师面试必备十项技能
每一位程序员都有一个成长的过程。再成长了几年之后,相信每位程序员都有一颗成为一个高级工程师的梦想。那么在我们面试的时候,高级开发工程师必须要会哪些技能呢?笔者以个人亲身的工作经历,和大家分析以下高级开发工程师的必备技能。必备技能一:内存回收。内存回收机制是一个基础的理论知识。在常用的高级语言中,JAVA和.NET 都有垃圾自动回收机制。而C/C++内存回收需要手动写代码进行回收。无论你用...原创 2019-08-22 13:51:53 · 1510 阅读 · 1 评论 -
游戏服务器特征
一、游戏服务器特征游戏服务器,是一个会长期运行程序,并且它还要服务于多个不定时,不定点的网络请求。所以这类服务的特点是要特别关注稳定性和性能。这类程序如果需要多个协作来提高承载能力,则还要关注部署和扩容的便利性;同时,还需要考虑如何实现某种程度容灾需求。由于多进程协同工作,也带来了开发的复杂度,这也是需要关注的问题。功能约束,是架构设计决定性因素。基于游戏业务的功能特征,对服务器端系统来说...转载 2019-08-16 11:48:24 · 731 阅读 · 0 评论 -
微服务统一登陆认证怎么做?
微服务统一登陆认证怎么做?微服务统一登陆认证怎么做?JWT ?无状态登录原理1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然...转载 2019-05-13 14:18:20 · 8257 阅读 · 0 评论 -
验证码校验的玩法,从单台、集群到分布式
验证码的校验原理其实很简单:客户端请求验证码; 服务端生成校验码(code_key-code_value),code_key是一次验证码请求和校验的标识(也有称会话id),会返回给客户端;code_value表示正确的验证码(通常以字符串表示);如果是图片这类的验证码,则需要将图片输出到客户端。 用户输入验证码(input_code_value); 客户端会将code_key和输入的验证...转载 2019-04-24 17:56:40 · 1929 阅读 · 1 评论 -
分布式系统session一致性的问题v
session的概念什么是session?服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放...转载 2019-04-23 08:58:21 · 118 阅读 · 0 评论 -
分布式锁的实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致...转载 2019-04-23 08:42:16 · 110 阅读 · 0 评论 -
如何保障微服务架构下的数据一致性?
写在前面随着微服务架构的推广,越来越多的公司采用微服务架构来构建自己的业务平台。就像前边的文章说的,微服务架构为业务开发带来了诸多好处的同时,例如单一职责、独立开发部署、功能复用和系统容错等等,也带来一些问题。例如上手难度变大,运维变得更复杂,模块之间的依赖关系更复杂,数据一致性难以保证,等等。但是办法总是比问题多,本篇文章就来介绍一下我们是如何保障微服务架构的数据一致性的。微服务架构...转载 2019-04-22 17:53:46 · 267 阅读 · 0 评论 -
微服务--分布式事务的实现方法及替代方案
概念澄清事务补偿机制: 在事务链中的任何一个正向事务操作, 都必须存在一个完全符合回滚规则的可逆事务.CAP理论: CAP(Consistency, Availability, Partition Tolerance), 阐述了一个分布式系统的三个主要方面, 只能同时择其二进行实现. 常见的有CP系统, AP系统.幂等性: 简单的说, 业务操作支持重试, 不会产生不利影响. 常见的实现...转载 2019-04-22 17:51:15 · 176 阅读 · 0 评论 -
微服务架构下处理分布式事务
根据微服务架构的鼻祖 Martin Fowler 的忠告,微服务架构中应当尽量避免分布式事务。然而,在某些领域,分布式事务如同宿命中的对手无法避免。在工程领域,分布式事务的讨论主要聚焦于强一致性和最终一致性的解决方案。典型方案包括:两阶段提交(2PC, Two-phase Commit)方案。 eBay 事件队列方案。 TCC 补偿模式。 缓存数据最终一致性。一致性理论分布...转载 2019-04-22 17:49:37 · 134 阅读 · 0 评论 -
分布式系统解析之分布式系统常用优化思路
分布式系统优化的思路方向一: 尽可能减少跨机间的网络传输量,尽量优化传输耗时.原因是1G带宽下传输1M耗时20微妙, 而锁操作一次25ns,两者有1000倍的差距,在分布式环境下,网络传输会成为性能瓶颈. 在处理分布式事务时更明显.优化方法有:方法一:通过同步复制, 将跨机操作转为本机操作,即将跨机的数据拷贝到 机器本地去处理.把跨机器的join操作,通过将小表复制到大表所在机器,将...原创 2019-08-23 11:38:28 · 1477 阅读 · 0 评论 -
Nacos的数据持久化
数据持久化在之前的教程中,我们对于Nacos服务端自身并没有做过什么特殊的配置,一切均以默认的单机模式运行,完成了上述所有功能的学习。但是,Nacos的单机运行模式仅适用于学习与测试环境,对于有高可用要求的生产环境显然是不合适的。那么,我们是否可以直接启动多个单机模式的Nacos,然后客户端指定多个Nacos节点就可以实现高可用吗?答案是否定的。在搭建Nacos集群之前,我们需要先修改Na...原创 2019-08-22 08:56:19 · 4548 阅读 · 0 评论