Dubbo

一应俱全,阿里新产P5到P8Java全栈成长宝典限时开源(2021最新)

本秂侑毒 提交于 2021-02-02 21:12:40
前言 对于大部分的程序员来说,清晰地规划自己的职业发展并不是一件容易的事情。作为一个曾经底子比较差,从底层摸爬滚打多年走过来的程序员,在这里分享一下对我帮助很大的一份宝典,希望同行们能快速掌握这些技术,直接弯道超车。 很多程序员不知道学什么?或者说不知道从何学习?今天分享的这份宝典由阿里大佬倾情力荐,Java全线成长宝典,从P5到P8一应俱全。 需要电子版来帮助自己从P5进阶到P8的朋友,点赞收藏,关注我之后直接添加小助理vx:bjmsb2020 即可百分百获取! P5:能够独立执行既定任务 1.打开程序员的大门 计算机基础+CPU/内存/硬盘+软、硬件关联+2进制、位运算 Windows基础+环境变量+PATH/CLASSPATH+常用命令 Linux基础+进程/文件命令+网络/安全命令/常用命令 虚拟机的安装与使用+VMWARE+Linux安装 2.JavaSE核心 面向对象和基本语法+封装+继承+多态+标识符合保留字+数据类型+流程控制 集合框架+COLLECTION+LIST+SET+MAP+COLLECTIONS+ARRAYS 多线程+线程进程+Tread、Runnable+线程的生命周期+线程池 IO框架+字节流+字符流+缓冲流+处理流+标准流+转换流 设计模式+工厂模式+单例模式+适配器模式+装饰器模式+代理模式+策略模式+模板方法模式+访问者模式 设计原则

java.sql.SQLException: The user specified as a definer ('userxxx'@'%') does not e...

一个人想着一个人 提交于 2021-02-02 05:53:11
java.sql.SQLException: The user specified as a definer ('userxxx'@'%') does not exist Java接口在执行查询的时候报错如下: java.sql.SQLException: The user specified as a definer ('userxxx'@'%') does not exist 错误详情: 2019-12-24 14:18:44 [ ERROR ] [DUBBO] Got unchecked and undeclared exception which called by 10.11.22.2. service: com.imodule.report.service.report.workflow.ReportService, method: queryNewSingleCase, exception: org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1449]; --- The error occurred in com/imodule

你想去阿里吗?

半城伤御伤魂 提交于 2021-02-02 04:38:08
最近一个粉丝留言说,他面试阿里挂在了 Dubbo 问题上, 我把面试真题问到了,大家可以看一下,你答得怎么样: 说一下的 Dubbo 的工作原理? Dubbo 负载均衡策略和集群容错策略都有哪些? 动态代理策略呢? 如何基于 Dubbo 进行服务治理、服务降级、失败重试以及超时重试? 如果你不熟悉 Dubbo 框架原理和实现,被问到这些肯定就凉凉了。 阿里面试必考 Dubbo ,因为 Dubbo 是由阿里开源,并且一直在推广使用的。 再加上 Dubbo 在微服务落地过程中,解决远程服务通信、负载均衡、服务治理等方面表现非常好, 京东、小米、携程、去哪儿网的很多项目也是以 Dubbo 为主,大厂之外,中小企业也开始将 Dubbo 作为必备技术栈。 现在想要进一线大厂,会用 Dubbo 框架还不够,你还要深入了解它的核心原理。 就算没准备跳槽,根据大厂考点来提升技术总是最便捷的路径。 很多人会选择读源码来学框架原理,但源码是双刃剑,既是开发者进阶路上的必修课,也是一个大坑,学错路的话既浪费时间,也起不到作用。 你学源码是这样的吗? 阅读大量官方文档和源码,结合不了实践,耗时巨大收获却不大; 学习资料版本陈旧,没有跟上最新的设计和优化,或者切入点很小,一旦代码运行到其他地方,无法举一反三; 工作中缺乏这方面的实践经验,对项目十分陌生,对整个架构视野受限,目无全牛。

聊聊dubbo的SpringExtensionFactory

孤街醉人 提交于 2021-02-02 04:06:36
序 本文主要研究一下dubbo的SpringExtensionFactory ExtensionFactory dubbo-2.7.3/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionFactory.java @SPI public interface ExtensionFactory { /** * Get extension. * * @param type object type. * @param name object name. * @return object instance. */ <T> T getExtension(Class<T> type, String name); } ExtensionFactory接口定义了getExtension方法 SpringExtensionFactory dubbo-2.7.3/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java public class SpringExtensionFactory implements ExtensionFactory

【Dubbo 源码解析】07_Dubbo 重试机制

£可爱£侵袭症+ 提交于 2021-02-02 00:58:26
Dubbo 重试机制 通过前面 Dubbo 服务发现&引用 的分析,我们知道,Dubbo 的重试机制是通过 com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker 来实现的: public Result doInvoke(Invocation invocation, final List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException { List <Invoker<T>> copyinvokers = invokers; checkInvokers(copyinvokers, invocation); // 默认重试 2 次 int len = getUrl().getMethodParameter(invocation.getMethodName(), Constants.RETRIES_KEY, Constants.DEFAULT_RETRIES) + 1 ; if (len <= 0 ) { len = 1 ; } // retry loop. RpcException le = null ; // last exception. List<Invoker<T>> invoked = new ArrayList

谈谈注册中心 zookeeper 和 eureka中的CP和 AP

我与影子孤独终老i 提交于 2021-02-01 11:20:14
谈谈注册中心 zookeeper 和 eureka中的CP和 AP 前言 在分布式架构中往往伴随CAP的理论。因为分布式的架构,不再使用传统的单机架构,多机为了提供可靠服务所以需要冗余数据因而会存在分区容忍性P。 冗余数据的同时会在复制数据的同时伴随着可用性A 和强一致性C的问题。是选择停止可用性达到强一致性还是保留可用性选择最终一致性。通常选择后者。 其中 zookeeper 和 eureka分别是注册中心CP AP 的两种的实践。他们都提供服务注册中心的功能。建议使用AP。不强求数据的强一致性,达成数据的最终一致性。 服务注册中心的数据也就是返回的可用服务节点(ip+端口号) 服务A开了0-9十个服务节点,服务B需要调用服务A,两次查询返回0-8,1-9 不一致的数据。产生的影响就是0 和9 节点的负载不均衡 只要注册中心在 SLA 承诺的时间内(例如 1s 内)将数据收敛到一致状态(即满足最终一致),流量将很快趋于统计学意义上的一致,所以注册中心以最终一致的模型设计在生产实践中完全可以接受。 1 eureka AP eureka 保证了可用性,实现最终一致性。 Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册或时如果发现连接失败,则会自动切换至其它节点

面试专题(分布式系统微服务)

安稳与你 提交于 2021-01-31 23:48:01
架构设计相关 0. 什么是分布式系统,什么是微服务? 集群:多机器做同一件事情; 分布式系统: 一件事情,多系统协同完成; 微服务架构:构建分布式系统的一种架构方式, 核心思路是:去中心化; http://www.cnblogs.com/liuning8023/p/4493156.html 1. RPC和RPC框架 RPC是指远程过程调用,实现远程过程调用的方式有很多中,Dubbo,Rmi,Hessian等等; RPC的核心过程包括了客户端和服务端的通讯协议,寻址,数据序列化/反序列化; 对上述过程进行了封装,不需要开发人员自己去定义通讯协议,去实现序列化的细节工作, 这样的组件称为RPC框架;常见RPC框架有 thrift,gRpc,dubbo,motan 2. 序列化方式及作用 序列化:将java对象或者其他内存中的数据,转换为一种特定格式的流,使之可以在网络中传输或者磁盘上存储; 反序列化:将流以特定的格式转为java对象或者内存中其他形式的数据;# json,jdk serializable, Hessian,Dubbo, Protobuf, 作用:压缩;持久化存储;跨网络传输; 3. 分布式系统中事务的处理 参考:https://wenku.baidu.com/view/be946bec0975f46527d3e104.html https://segmentfault

Netty在Dubbo中使用了哪些Handler

左心房为你撑大大i 提交于 2021-01-26 06:06:54
本篇以Dubbo作为服务端为例. 当配置如下信息时 <dubbo:application name= "infuq-dubbo-provider" /> <dubbo:registry protocol= "zookeeper" address= "127.0.0.1:2181" check= "false" /> <dubbo:protocol name= "dubbo" port= "20880" threads= "200" /> <dubbo:service ref = "queryUserInfoFacade" interface = "com.infuq.facade.QueryUserInfoFacade" version= "1.0.0" /> <bean id= "queryUserInfoFacade" class = "com.infuq.facade.impl.QueryUserInfoFacadeImpl" /> Spring在启动的过程中,通过 DubboNamespaceHandler 解析上面的标签. 将每个标签与之对应的 BeanDefinition 注册到BeanFactory中. Spring再根据 BeanDefinition 生成对应的Bean实例. 上面的<dubbo:service />标签最终会生成对应的 ServiceBean 实例

Kubernetes Jenkins动态创建Slave

非 Y 不嫁゛ 提交于 2021-01-25 03:16:37
[TOC] 0、前言 首先,我们考虑个问题,为何需要jenkins slave?其实在生产环境中,如果用单master,除非你单机器的配置特别高并且构建次数不多情况下,可以不考虑使用slave,但是,在构建次数上百次并且jenkins master运行在kubernetes环境中,借助kubernetes的灵活性,强烈推荐使用slave,master负责自动创建Slave Pod,然后将任务推送给Slave Pod,任务执行完毕后,Slave Pod会自动被回收/销毁。 创建slave流程图: 1、Jenkins部署 jenkins交付进kubernetes 1.准备镜像文件 $ docker pull jenkins/jenkins:2.204.1 $ docker tag a3f949e5ebfd harbor.od.com/infra/jenkins:v2.204.1 $ docker push harbor.od.com/infra/jenkins:v2.204.1 2.资源配置文件 rbac $ vi /data/k8s-yaml/jenkins_slave/rbac.yaml apiVersion: v1 kind: ServiceAccount metadata: name: jenkins namespace: infra --- kind: ClusterRole

Eureka入门一(了解概念)

ⅰ亾dé卋堺 提交于 2021-01-24 02:53:34
Eureka注册中心(8761端口) IDEA(开发工具) 1,创建项目勾选Eureka Server 2, 创建yml文件,拷贝配置,下面配置必须为false,意为,该项目不要作为客户端注册,因为本身就是为了帮别人注册而写 registerWithEureka:false fetchRegistry:fallse 3,启动类加注解:@EnableEurekaServer 代表是注册中心 4,输入ip:8761进入注册中心 创建提供者,使用Eureka注册中心 1,创建聚合项目,在创建提供者的时候,勾选Eureka client 2,写配置yml,不带false那个配置,因为提供者是客户端 3,为了暴露接口,在service层的代码类头部加@RestController,在方法头部加@RequesMapping 4,在启动项加上@@EnableDiscoveryClient 创建消费者,使用Eureka注册中心 1,创建聚合项目,勾选Thymeleaf、EurekaDis 、Feign(等于过去的dubbo) 2, 配置yml,拷贝,不带false那个配置,因为消费者也是客户端,记得设置静态模板缓存为false 3, 写页面 4, 写Service接口,给他头部加注解@FeifnClient(value="在注册中心中提供者放的名字"),在抽象方法头部加注解