Dubbo

Nacos初接触以及应用示例

痞子三分冷 提交于 2020-04-14 17:39:45
【推荐阅读】微服务还能火多久?>>> 背景 nacos是阿里开源的一款服务注册和配置管理的中间件 在SpringCloud中注册中心和配置中心一直是分开的,之前用了很长时间的eureka,但是eureka有时会莫名其妙的挂掉,就算是集群部署线上总是提心吊胆,这 Nacos的特色 下面是官网给出说法: Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 应用案例 目录结构如下所示 pom.xml <?xml version="1.0" encoding="UTF-8"?> < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > <

Dubbo服务调用——Cluster组件(服务降级,容错)

一笑奈何 提交于 2020-04-14 01:28:55
【今日推荐】:为什么一到面试就懵逼!>>> 在集群调用失败时,Dubbo 提供了多种 容错方案 ,缺省为 failover 重试。 Service代理对象初始化环节,涉及到Cluster的初始化,并且调用过程也涉及到Cluster组件的集群容错,接下来将详细讲解Dubbo是如何利用Cluster进行容错处理 及Cluster的种类。 首先,我们看下代理对象初始化过程中 Cluster的组装过程。 服务引用过程与发布过程的调用链非常类似同样也是 /** * Protocol$Adaptive => ProtocolFilterWrapper => ProtocolListenerWrapper => RegistryProtocol * => * Protocol$Adaptive => ProtocolFilterWrapper => ProtocolListenerWrapper => DubboProtocol */ 服务发布 可以参考: 《Dubbo服务发布之服务暴露&心跳机制&服务注册》 我们直接来看核心代码:RegistryProtocol.refer 方法 public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException { // 将param中的registry属性,设置为Protocol

dubbo,Cluster$Adaptive类源码是什么

喜欢而已 提交于 2020-04-14 00:15:49
【今日推荐】:为什么一到面试就懵逼!>>> 源码由ExtensionLoader.createAdaptiveExtensionClassCode()方法生成 dubbo默认cluster类型为failover package com.alibaba.dubbo.rpc.cluster; import com.alibaba.dubbo.common.extension.ExtensionLoader; public class Cluster$Adaptive implements com.alibaba.dubbo.rpc.cluster.Cluster { public com.alibaba.dubbo.rpc.Invoker join(com.alibaba.dubbo.rpc.cluster.Directory arg0) throws com.alibaba.dubbo.rpc.RpcException { if (arg0 == null) throw new IllegalArgumentException("com.alibaba.dubbo.rpc.cluster.Directory argument == null"); if (arg0.getUrl() == null) throw new IllegalArgumentException("com

07 架构可扩展

主宰稳场 提交于 2020-04-13 07:07:29
随着新需求的增加,需要开发新的模块, 开闭原则(对扩展开发,对修改关闭) 低耦合性 软件架构师最大的价值不在掌握多少先进的技术,而在于具有将一个大系统切分成 N 个低耦合的子模块的能力。这些子模块包含横向的业务模块,也包含纵向的基础技术模块。这种能力一部分源自于专业的技术和经验,还有一部分源于架构师对业务场景的理解,对人性的把握,甚至对世界的认知。 利用分布式消息队列降低耦合性 事件驱动架构 消息队列的方式,无论是增加生产者,还是消费者,对于其他功能都是无感知的。 分布式消息队列 实际上 KAFKA 就是这种, 只不过架构图比这个复杂, 还有 ActiveMQ, RocketMQ 等. 伸缩性: 比较简单,只要新增加一个消息队列服务器,并通知生产者,多了一个消息队列服务器即可. 可用性:如果消费者进程处理缓慢,导致内存队列已满,会将消息写入磁盘,消息推送模块在将内存队列消息处理完以后,将磁盘内容加载到队列继续处理 分布式服务打造可复用业务平台 拆分, 将复用的业务拆分出来, 独立部署为分布式服务,新增业务只需要调用这些分布式服务,不需要依赖具体的模块代码。 web service 与 企业级分布式服务 分布式服务设计, 比如 阿里巴巴开源框架 Dubbo 平台级别 API 接口: RESTful, WebService, RPC 等 安全: 身份识别,权限控制, 带宽限制。 审计:

双剑合璧的开源项目Kitty-Cloud

[亡魂溺海] 提交于 2020-04-12 15:58:11
项目地址 https://github.com/yinjihuan/kitty-cloud 背景 做这个项目主要是想将个人的一些经验通过开源的形式进行输出,不一定能帮到所有人,有感兴趣的朋友可以关注学习下。 项目主要分为三大块: Kitty 基础框架 基础框架基于Spring Cloud & Spring Cloud Alibaba 进行封装,内置了 Cat 监控等功能,将框架的操作进行统一封装和版本管理,方便快速构建微服务架构。让业务开发人员更关注于业务本身的开发工作。 Kitty Cloud 后端 使用Kitty基础框架搭建的微服务架构,业务方向是做一个技术社区。比如发文章,评论,点赞等功能。 Kitty Cloud 前端(待开发) 前端还没开始,等后端做完后会开始做前端,应该会采用Vue实现。 后端技术栈 Kitty :Spring Cloud & Spring Cloud Alibaba 基础框架,内置了 Cat 监控,互联网公司落地 Spring Cloud 架构必备。 Spring Cloud :Spring 微服务全家桶。 Spring Cloud Alibaba :致力于提供微服务开发的一站式解决方案。 Sentinel :把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Nacos :一个更易于构建云原生应用的动态服务发现

最新咕咆+鲁班+图灵+享学+蚂蚁+硅谷+源码 Java架构师资料《Java架构师VIP课程》

做~自己de王妃 提交于 2020-04-12 15:29:46
最新的Java架构师完整资料,完整视频+源码+文档。 每一套都是一百多个G的资料,无密。 JAVA架构师全套课程 咕泡学院互联网架构师第一期 咕泡学院互联网架构师第二期 咕泡学院互联网架构师第三期 博学谷javaee在线就业2.0加薪课(价值15000) 开课吧2019廖雪峰JavaEE企业级分布式高级架构师完整版 享学课堂JAVA互联网架构师VIP 蚂蚁金服微服务互联网架构第一期-Java高端培训视频教程 蚂蚁金服微服务互联网架构第二期-Java高端培训视频教程 蚂蚁金服微服务互联网架构第三期-Java高端培训视频教程 蚂蚁金服微服务互联网架构第四期-Java高端培训视频教程 鲁班学院《Java架构师VIP2019课程一期》 黑马JavaEE 57期完整版 2018廖雪峰 JavaEE 企业级分布式高级架构师课程(一期+二期) 优效学院JAVA高级架构师全套视频第一期 开课吧百万年薪架构师一期(智能互联网之容器弹性云与Service Mesh)视频教程 大数据架构师全套课程 八斗大数据全套视频教程第九期-2019年八斗大数据 2019好程序员大数据+人工智能全套课程视频教程 2019最新八斗大数据培训第六期VIP教程全套完整版 百知教育《2019最新JAVA大数据系列课程》 潭州学院《大数据课程》2019 北京尚学堂_1903期_大数据_全套视频教程(视频、源码、课件) 尚硅谷

一、什么是接口测试?

谁说我不能喝 提交于 2020-04-12 14:23:20
什么是接口测试? 接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点,测试的重点要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 接口测试场景: 手机app 客户端软件 web网站API:微信接口、新浪微博接口等等 公司内部系统API:订单接口需要调用用户资金接口查询余额。 软件架构模型: 服务器-客户端: 1:b/s:浏览器服务器模型,通过http协议、websocket协议等进行通讯。 2:c/s:客户端服务器模型。客户端:app、桌面软件 服务器内部: 服务器之间互相调用。 接口测试分类: 1:模块之间的接口:如订单模块下单时,需要去用户资金模块查询余额 2:系统对外部系统提供的接口 3:内部子系统的服务之间的接口 登录: 1:username=lixx&pwd=123456 2:json: {username:'lixx',pwd:'123456'} 3:xml: <root> <username value='lixx'>  <pwd value='123456'> </root> 4:自定义: 定长:lixx 123456 不定长:lixx123456 tcp/ip协议: http、https、websocket、json、xml webservice(soap/wsdll)

springcloud 一 网站架构演变之路

笑着哭i 提交于 2020-04-11 17:24:22
1.网站架构演变过程 从传统架构(单点应用)→分布式架构(以项目进行拆分)→SOA架构(面向服务架构)→微服务架构 1.1传统架构: 其实就是ssh架构或者ssm架构,属于单点应用,把整个开发业务模块都会在一个项目中开发,分为mvc架构,是模型(model)-视图(view)-控制器(controller)的缩写,我是15年5月来的深圳,我记得只要会ssh和ssm,找工作,随随便便找。而现在需要会dubbo等等分布式技术的,当然,只会ssh或者ssm架构的也招,以前,可能没有什么太大的年限限制,但是现在,限制一般都是3年起步,工作年限低了,不要。 这种架构包主要分为dao,controller,service,mapper,util 一般只适合1个人或者小团队开发(小项目) 缺点:耦合度太高,一旦,某个模块不可用,会影响到整个项目的不可用。 1.2分布式架构: 分布式架构是基于传统架构演变而来的 假设有30多个人,对同一项目进行开发,可能有什么问题?(本人之前带的一个项目组,就是20来个人,负责一个项目,我们是按模块进行划分的) 1.代码冲突问题, 就算按模块拆分, 模块与模块肯定有交集,所以会存在代码冲突的问题。 1.2.1什么是分布式架构? 分布式架构实际上是传统架构演变而来的,实际上,就是按模块,把项目进行拆分成一个个子项目。如电影系统,可简单拆分为电影项目,用户项目

maven+spring mvc+mybatis+redis+dubbo+zookeeper

无人久伴 提交于 2020-04-11 16:42:34
黎孟阳 随笔 - 6, 文章 - 0, 评论 - 0, 引用 - 0 maven+spring mvc+mybatis+redis+dubbo+zookeeper 前面文章讲了创建一个maven聚合工程。接下来讲一下maven里面集成spring mvc+mybatis+dubbo+zookeeper。本章内容只讲配置,不讲原理性的东西,不理解的地方多百度就清楚了。 上章地址: http://www.cnblogs.com/MrLimy/p/8342026.html 为了方便,本章内容所依赖的jar包都放在父工程。 打开demo工程的pom.xml文件添加依赖,本章只添加spring、redis、dubbo的依赖。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hpsoft.demo</groupId> <artifactId

RocketMQ调研

三世轮回 提交于 2020-04-08 18:01:59
一、发展历程 早期淘宝内部有两套消息中间件系统:Notify和Napoli。 先有的Notify(至今12历史),后来因有序场景需求,且恰好当时Kafka开源(2011年),所以参照Kafka的设计理念自研了RocketMQ。 目前Notify和RocketMQ二者的定位如下: RocketQ 主要面向消息有序的场景,能够提供更大的消息堆积能力,拉模式,消息持久化在磁盘 Notify主要面向更加安全可靠地交易类场景,无序、推模式、消息持久化在mysql RocketMQ发展历程如下 : Metaq 1.x 开源社区维护killme2008维护,因为依赖zk挂了,导致上下游服务全网宕机,到了12年基于开源Kafka,直接用java语言翻译重写 Metaq 2.x 2012年11月上线,淘宝内部使用 RocketMQ 3.x 后来一统江湖成为整个阿里系主流MQ。基于公司内部开源共建原则, RocketMQ项目只维护核心功能,且去除了所有其他运行时依赖,核心功能最简化。每个BU的个性化需求都在RocketMQ项目之上进行深度定制。RocketMQ向其他BU提供的仅仅是Jar包,例如要定制一个Broker,那么只需要依赖rocketmq-broker这个jar包即可,可通过API进行交互,如果定制client,则依赖rocketmq-client这个jar包,对其提供的api进行再封装。