Dubbo

微服务架构到底应该如何选择?

混江龙づ霸主 提交于 2020-02-15 22:35:23
原文: 微服务架构 微服务架构到底应该如何选择? 什么是微服务? 微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。 微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。 主要有一下几个特点 服务拆分粒度更细 微服务可以说是更细维度的服务化,小到一个子模块,只要该模块依赖的资源与其他模块都没有关系,那么就可以拆分为一个微服务。 服务独立部署 每个微服务都严格遵循独立打包部署的准则,互不影响。比如一台物理机上可以部署多个 Docker 实例,每个 Docker 实例可以部署一个微服务的代码。 服务独立维护 每个微服务都可以交由一个小团队甚至个人来开发、测试、发布和运维,并对整个生命周期负责。 服务治理能力要求高 因为拆分为微服务之后,服务的数量变多,因此需要有统一的服务治理平台,来对各个服务进行管理。 微服务架构下,服务调用主要依赖下面几个基本组件: 服务描述 注册中心 服务框架 服务监控 服务追踪 服务治理 开源RPC框架介绍 Dubbo

关于dubbo扩展点的一点分析

杀马特。学长 韩版系。学妹 提交于 2020-02-14 23:28:07
扩展点能力 能load class,这个class除了顶层接口class(在ExtensionLoader中对应type字段),还能load各实现类的class。 能创建instance。 能指定这个顶层接口的默认实现类的beanName。做法参见SPI注解部分。 能把创建出来的instance的字段注入。set开头的且有一个参数且是public的,注入。 能adaptive。根据url上对该接口配置的实现类,将该接口的事情交给这个实现类去做(我更多的理解成委托)。此能力采用代码生成再编译的方式。代码生成示例可以参见adaptive类代码示例。 adaptive只会生成一个adaptive实现类。生成代码的逻辑在com.alibaba.dubbo.common.extension.ExtensionLoader.createAdaptiveExtensionClassCode() 能wrapper。wrapper是指这个顶层接口的实现类的构造函数的入参是这个顶层接口类型。那么这个实现类称之为wrapper类,可以有多个,构建instance时不分多个之间的顺序。因为用来给构造函数传参的instance是这个顶层类的默认实现。比如com.alibaba.dubbo.rpc.Protocol接口,有实现类 com.alibaba.dubbo.rpc.protocol.injvm

dubbo随笔

耗尽温柔 提交于 2020-02-14 21:49:04
dubbo服务调用超时问题解决方案 https://blog.csdn.net/wanglei0622/article/details/45243027 来源: https://www.cnblogs.com/kuiyeit/p/12309460.html

资深技术面试官教你这样准备 Java 面试

那年仲夏 提交于 2020-02-14 14:14:53
  Java能力和面试能力,这是两个方面的技能,可以这样说,如果不准备,一些大神或许也能通过面试,但能力和工资有可能被低估。再仔细分析下原因,面试中问的问题,虽然在职位介绍里已经给出了范围,但针对每个点,面试官的问题是随机想的,甚至同一个面试官在两场相似的面试里,提的问题也未必一样。   也就是说,如果让面试官自由提问,那么一旦问到你不熟悉的点,你可能就答不上,如果运气不好,再外加上不知道面试引导技巧等因素,真有可能面试官的提问全落在你不熟悉的范围内,这样就非常可惜了。与其这样,还不如事先准备外带面试引导,这样或许你的能力未必行,但你可以尽可能地通过引导展示你的亮点,从而提升面试通过的可能性。在本文里,就将讲述事先准备Java亮点和面试中引导面试官提问的技巧。   根据职位介绍微调简历,这关系到能否有面试机会   虽然这点和本文的主题无关,但如果没有面试机会,那甚至无法展示引导技能,所以还是来啰嗦一下。筛选简历的人,除了会看学历专业等硬条件外,更会看相关经验的商业项目经验,这在职位介绍上一定能体现出来,比如初级开发,一般需要SSM等框架的1年经验,高级开发一般需要3年,再外带些诸如Netty,数据库调优等方面的技能。   如果看到一份简历上,没有明显的相关商业项目经验(学习项目不算),那么这份简历甚至没面试机会,这就是为什么很多初级开发简历大多石沉大海的原因

架构演变历程&dubbo基本概念

爱⌒轻易说出口 提交于 2020-02-14 12:10:55
Dubbo 一、基础知识 1、分布式基础理论 1.1)、什么是分布式系统? 《分布式系统原理与范型》定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统” 分布式系统(distributed system)是建立在网络之上的软件系统。 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需**一个治理系统**确保架构有条不紊的演进。 *单一应用架构* 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。 适用于小型网站,小型管理系统,将所有功能都部署到一个功能里,简单易用。 缺点: 1、性能扩展比较难 ​ 2、协同开发问题 ​ 3、不利于升级维护 *垂直应用架构* 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。 通过切分业务来实现各个模块独立部署,降低了维护和部署的难度,团队各司其职更易管理,性能扩展也更方便,更有针对性。 缺点: 公用模块无法重复利用,开发性的浪费 1.3)、RPC *什么叫RPC* RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式

篇六:linux安装dubbo-admin

懵懂的女人 提交于 2020-02-13 15:50:07
导语:dubbo-admin.war包的作用,管理zookeeper注册的dubbo服务,可以对服务进行开启、关闭操作 一、确认安装jdk   安装详情参考 http://www.cnblogs.com/xylgp/p/6214882.html 二、安装Tomcat   1、上传tomcat的tar.gz文件到根目录下   2、安装 ## 操作起始在linux根目录“/root”下 cp -rf apache-tomcat-7.0.61.tar.gz /usr/local cd /usr/local tar -xzvf apache-tomcat-7.0.61.tar.gz cd apache-tomcat-7.0.61/bin ./bin/startup.sh   3、在网页中访问“http://ip:8080” 三、安装dubbo-admin    1、上传 dubbo-admin的安装包至根目录   2、基础安装 yum install -y unzip rm -rf /usr/local/apache-tomcat-7.0.61/webapps/ROOT/* unzip dubbo-admin-2.5.4-SNAPSHOT.war -d /usr/local/apache-tomcat-7.0.61/webapps/ROOT/   3、配置 hosts vi /etc

RPC服务框架dubbo(五):dubbo-admin和dubbo-monitor的安装

混江龙づ霸主 提交于 2020-02-13 15:49:12
一、安装dubbo-admin 去这里 http://download.csdn.net/download/u013081610/10044744 下载dubbo-admin.war 部署dubbo-admin管理端,将dubbo-admin-2.5.6.war放置到准备好的tomcat目录 修改WEB-INF下dubbo.properties 主要是修改zookeeper的地址 dubbo.registry.address=zookeeper://127.0.0.1:2181 注意,这里还可以连接多个zookeeper,用逗号分隔例如: dubbo.registry.address=zookeeper://127.0.0.1:2181,192.168.0.4:2181 运行tomcat 输入地址:http://127.0.1:8080/dubbo-admin-2.5.6 默认登录账户和密码均为:root 服务页面 都这里,dubbox的后台管理端就配置成功了 二、安装dubbo-monitor 去这里 http://download.csdn.net/download/u013081610/10044756 下载dubbo-monitor 工具是zip压缩文档,解压后找到dubbo.properties文件,修改里面的参数符合自己的, 在去bin目录里start即可

Dubbo--入门程序

我只是一个虾纸丫 提交于 2020-02-13 15:31:51
需求 某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址; 我们现在 需要创建两个服务模块进行测试 模块 功能 订单服务web模块 创建订单等 用户服务service模块 查询用户地址等 测试预期结果: 订单服务web模块在A服务器,用户服务模块在B服务器,A可以远程调用B的功能。 创建Maven 工程 (dubbo_test) 引入依赖: < dependencies > <!-- dubbo --> < dependency > < groupId > com.alibaba </ groupId > < artifactId > dubbo </ artifactId > < version > 2.6.2 </ version > </ dependency > <!-- 客户端 --> < dependency > < groupId > org.apache.curator </ groupId > < artifactId > curator-framework </ artifactId > < version > 2.12.0 </ version > </ dependency > </ dependencies > 创建子模块:(myinterface) 实体类:UserAddress public class UserAddress

java详细面试题

时间秒杀一切 提交于 2020-02-13 06:00:23
struts和springMVC区别? stringbuffer和stringbuilder区别? mybatis原理? soa原理? dubbo的原理? solr怎么搭建,倒序索引? MQ消息队列? SQL语句? maven以及本地仓库? final关键字? 为什么使用ssm而不用ssh? struts2和springmvc区别? 开发工具,jvm,gc,设计模式,平时开发工程是你自己搭建吗? 项目中用到的技术dubbo,zookeeper,solr等? 这三年工作中你统计过自己的代码量大概有多少? redis是多例的还是单例的,在多线程时怎么使用? hashmap线程冲突怎么解决? 介绍一下spring,mybatis。aop用的是静态代理还是动态代理? 介绍电商项目,开发周期多长?技术人员有多少?任务怎么分配什么时候上线?项目模块? 说说你负责的模块的具体代码? 数据库表熟悉吗?有哪些字段? 为什么不使用HttpApi进行项目通信而使用dubbo? TCP和UDP的区别? http,https,ftp,sftp分别使用哪个协议? 给你一个mysql数据库,不使用硬件也不使用软件如何优化? SQL语句的执行顺序? 给你两个表写出笛卡尔积的结果? redis的list数据类型是双向队列,完全可替代MQ,为何还要使用MQ,dubbo的底层原理和实现?

dubbo学习笔记

喜夏-厌秋 提交于 2020-02-12 15:50:40
Dubbo的启动方式 依赖容器(Tomcat) 使用main方法 使用内置的main方法 Dubbo控制台和监控台配置 配置控制台 查看maven的版本信息 执行源码的编译和打包操作 最后编译结果为如下,表示成功了。 部署dubbo管控台 1、在打包后的application.properties文件中修改对应配置信息 2、部署dubbo控制台 通过localhost:7001 访问控制台 (默认账号和密码相同) 配置监控台 1、找到这个目录下面对应文件 2、解压这个.gz文件,进行相应的配置 3、启动监控台(通过start.bat/start.sh启动) 4、解决操作的过程的数据不能够显示到监控台的问题? 在每一个服务的配置文件中添加一句配置 服务检查 表示启动的时候不做检查依赖,主要用于服务的循环依赖的实例 check设置为false,check默认为true 多协议支持 dubbo (默认) ,长连接协议 【操作过程中数据量比较小的传输】,不适用视频,大文件等传输操作。 hessian 短连接协议(传输数据量比较大情况,在项目开发中会针对不同流量来进行协议的设定) 1、引入依赖 <dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>4.0.7</version>