Dubbo

JAVA互联网架构师专题/分布式/高并发/微服务【第三期】

妖精的绣舞 提交于 2020-08-06 16:16:26
JAVA互联网架构师专题/分布式/高并发/微服务【第三期】 下载地址: 百度云盘 全新打造60W年薪架构师课程,4年磨一剑,10次课程升级改版 课程内容涉及Java互联网一线大厂技术、源码框架 性能调优 (Tomcat Nginx JVM) 分布式框架(并发编程 Zookeeper Netty dubbo Redis) 微服务框架( Spring Cloud Docker虚拟化 微服务架构 ) 章节目录 J AVA架构课开班典礼 【录播】致新加入同学的学习计划-诸葛(34分钟) 【回放】IOC容器设计理念与核心注解的使用(6月5日 20:10-22:00) 源码框架专题 【回放】Spring Ioc容器源码解析(上)(6月12日 20:10-22:00) 【回放】Spring Ioc容器源码解析(下)(6月14日 20:10-22:00) 【回放】Spring Ioc容器解决循坏依赖(6月16日 20:10-22:00) 【回放】Spring AOP 源码深度解析(一)(6月19日 20:10-22:00) 【回放】Spring AOP 源码深度解析(二)(6月21日 20:10-22:00) 【回放】Spring事务管理源码深度解析(6月23日 20:10-22:00) 【回放】Spring 5新特性剖析(6月26日 20:10-22:00) 源码框架专题 【回放

接口防重复提交的技术解决方案

本小妞迷上赌 提交于 2020-08-06 14:20:55
【本文完善中...】 无论是http接口,还是rpc接口,防重复提交(接口防重)都是绕不过的话题。 重复提交与幂等,既有区别,又有联系。幂等的意思是,对资源的一次请求与多次请求,作用是相同的。HTTP的POST方法是非幂等的。如果程序处理不好,重复提交会导致非幂等,引起系统数据故障。防重复提交,要通过技术手段来实现。保证幂等性既要通过技术手段来实现,又要有对业务数据的验证。 常见的B/S场景的重复提交,用户手抖或因为网络问题,服务端在极短时间内收到同样的http请求。 rpc接口的重复提交,一种是不恰当的程序调用,即程序漏洞导致重复提交。在一种,比如拿dubbo来说,因为网络传输问题,会导致重试调用。 防重提交的方案,常见的是加锁。java单体应用可以用语言本身的synchronized锁机制。分布式系统,一般是借助redis或zk等分布式锁。 来源: oschina 链接: https://my.oschina.net/u/4336916/blog/4338328

3 月,跳不动了?

拈花ヽ惹草 提交于 2020-08-06 13:39:12
不少单位已经开始复工了,跳槽季已经开始。虽说大多数互联网企业,像腾讯、字节跳动等,都已经开通远程面试环节,而且薪资有走高的趋势。但据目前看,面试难度大了许多,甚至有朋友面试后怀疑:自己真的落伍了? 比如,面试高级开发岗位时,面试官不仅考察基础能力,更会重点考察高并发、分布式等架构相关的技术背后的思考逻辑,比如:微服务,负载均衡,Redis,RPC等。(今年 Java 面试到底聚焦在知识点?文末扫码获取) 但这些技术包含了 N 多优化、N 多细节,对于一些 coding 的朋友,由于接触不到一线实战架构设计,想必并不是很了解。 刚好,趁着这段时间,整理了一套 “ 微服务+分布式 ” 的视频干货,讲解很透彻。今天分享给大家。这份资料 尤其适合 以下人群: 1.没有用过微服务技术,只会用传统的 SSM 框架 2.用过 Spring Cloud、Dubbo等技术,但是只限于使用,遇到问题基本无法解决 3.从来没有系统学习微服务、分布式架构,觉得架构设计是遥不可及的 4.对于微服务、分布式技术有所了解,但尚没有设计高可用高并发的实践经历 学完这份视频你将获得哪些收获? 理解当下最火热的微服务架构原理及其开源框架; 触及一线大厂所配备的微服务核心技术内幕知识; 对照自己掌握知识点进行查漏补缺,帮助扫除知识盲区、重构知识体系。 视频围绕“ 如何设计高可用高并发的微服务架构? ”的主题

终于跑通分布式事务框架tcc-transaction的示例项目

做~自己de王妃 提交于 2020-08-06 13:02:09
1、背景 前段时间在看项目代码的时候,发现有些接口的流程比较长,在各个服务里面都有通过数据库事务保证数据的一致性,但是在上游的controller层并没有对一致性做保证。 网上查了下,还没找到基于Go开源的比较成熟的分布式事务框架。 于是,准备看看之前隔壁部门大佬写的tcc-transaction,这是一个基于tcc思想实现的分布式事务框架。 tcc分别代码Try,Confirm和Cancel。 Try: 尝试执行业务 完成所有业务检查(一致性) 预留必须业务资源(准隔离性) Confirm: 确认执行业务 真正执行业务 不作任何业务检查 只使用Try阶段预留的业务资源 Confirm操作满足幂等性 Cancel: 取消执行业务 释放Try阶段预留的业务资源 Cancel操作满足幂等性 要了解其实现原理,第一步就是跑通项目自带的示例,即tcc-transaction-tutorial-sample部分的代码。 今天主要介绍在跑通tcc-transaction-tutorial-sample过程中遇到的各种坑。 2、依赖环境 Java Maven Git MySQL Redis Zookeeper Intellij IDEA 源码地址:https://github.com/changmingxie/tcc-transaction 我自己Fork了一份(配置改动已提交):https:/

你问我答:微服务治理应该如何去做?

爷,独闯天下 提交于 2020-08-06 10:33:36
【你问我答】是 BoCloud 博云最新上线的互动类栏目,每周我们将收集和整理有关容器、微服务、DevOps、多云管理等方面的 企业 IT 建设问题,由博云产品团队进行详细解答。如果你有任何感兴趣的相关问题,欢迎留言提问。 以下是本周 “ 微服务 ” 相关问题精选: 网友1:微服务治理应该如何去做? 微服务化应该是从企业的单个系统考虑,还是从整体IT架构去考虑?微服务治理应该如何去做? 博云产品团队:微服务的治理分很多方面,简单的来谈至少三个层面: 微服务底层管理,微服务之所以需要治理,是因为其逻辑复杂,运维困难,所以需要提供注册中心,配置中心,网关,监控等多种组件做为帮助,所以这个层面是对这些组件的治理。 微服务外层治理,主要关注于用户的使用,这就涉及到 DevOps ,需要对服务的全生命周期做治理,从想法到实现,再到更新升级。当然这里很重要的一块就是用户权限等问题,部门角色也不可忽略的。 3.从微服务的业务层治理,算是微服务的上层治理,这一层主要关注于服务的业务实现,跟踪业务的调用链,发现调用过程中的逻辑问题,效率问题,冗余问题等等。 网友2:微服务框架,容器云,ServiceMesh、传统API Gateway产品都提供注册发现,它们各适合什么场景?如何选型? 服务化架构中,服务注册和发现是重要的组件,微服务框架中有注册发现,比如Eureka, consul等

dubboadmin安装

时光总嘲笑我的痴心妄想 提交于 2020-08-06 10:26:07
环境 centos 7.1 jdk 1.8 wget https://github.com/apache/dubbo-admin/archive/0.2.0.tar.gz tar zxvf 0.2.0.tar.gz cd dubbo-admin-0.2.0 ./mvnw clean package java -jar dubbo-admin-distribution/target/dubbo-admin-0.2.0.jar --server.port=8081 来源: oschina 链接: https://my.oschina.net/u/4385595/blog/4429018

涂鸦智能 dubbo-go 亿级流量的实践与探索

房东的猫 提交于 2020-08-06 09:55:10
作者 | 潘天颖,Github ID @pantianying,开源爱好者,就职于涂鸦智能 dubbo 是一个基于 Java 开发的高性能的轻量级 RPC 框架,dubbo 提供了丰富的服务治理功能和优秀的扩展能力。而 dubbo-go 在 java 与 golang 之间提供统一的服务化能力与标准,是涂鸦智能目前最需要解决的主要问题。本文分为实践和快速接入两部分,分享在涂鸦智能的 dubbo-go 实战经验,意在帮助用户快速接入 dubbo-go RPC 框架,希望能让大家少走些弯路。另外,文中的测试代码基于 dubbo-go版本 v1.4.0。 dubbo-go 网关实践 dubbo-go 在涂鸦智能的使用情况如上图,接下来会为大家详细介绍落地细节,希望这些在生产环境中总结的经验能够帮助到大家。 1. 背景 在涂鸦智能,dubbo-go 来源: oschina 链接: https://my.oschina.net/u/4259287/blog/4313350

学习要走心,跳槽需慎重,1000道BATJava面试题你都会吗?等你来挑战 ​

一曲冷凌霜 提交于 2020-08-06 09:43:30
面试题 不会做的不要着急!!! MyBatis 面试题 什么是 Mybatis? Mybaits 的优点: MyBatis 框架的缺点: MyBatis 框架适用场合: MyBatis 与 Hibernate 有哪些不同? #{}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗? Mybatis 是如何进行分页的?分页插件的原理是什么? Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式? 如何执行批量插入? 如何获取自动生成的(主)键值? 在 mapper 中如何传递多个参数? Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql? Xml 映射文件中,除了常见的 select|insert|updae|delete标签之外,还有哪些标签? 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里? 一对一、一对多的关联查询 ? MyBatis 实现一对一有几种方式?具体怎么操作的? MyBatis 实现一对多有几种方式,怎么操作的? Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?

微服务为什么选Spring Cloud?

≯℡__Kan透↙ 提交于 2020-08-06 08:52:48
现如今微服务架构十分流行,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性。同时,支持微服务的技术栈也是多种多样的,本系列文章主要介绍这些技术中的翘楚——Spring Cloud。这是序篇,主要讲述我们为什么选择Spring Cloud和它的技术概览。 1、为什么微服务架构需要Spring Cloud 简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB、KV,去掉重量级ESB),并且强调DevOps和快速演化。这就要求我们必须采用与一站式时代、泛SOA时代不同的技术栈,而Spring Cloud就是其中的佼佼者。 DevOps是英文Development和Operations的合体,他要求开发、测试、运维进行一体化的合作,进行更小、更频繁、更自动化的应用发布,以及围绕应用架构来构建基础设施的架构。这就要求应用充分的内聚,也方便运维和管理。这个理念与微服务理念不谋而合。 接下来我们从服务化架构演进的角度来看看为什么Spring Cloud更适应微服务架构。点击 这里 查看Spring系列教程集合。 1.1 从使用nginx说起 最初的服务化解决方案是给提供相同服务提供一个统一的域名,然后服务调用者向这个域名发送HTTP请求,由Nginx负责请求的分发和跳转。 这种架构存在很多问题: Nginx作为中间层

如何大大提升微服务的高可用性?

家住魔仙堡 提交于 2020-08-06 05:48:24
0、前言 微服务架构现在是个热门话题,微服务的高可用性自然也是企业非常关注的。眼下互联网的架构秘籍三板斧“高可用可扩展,缓存提速,消峰减流去并发”,在微服务架构体系中有着不一样的诠释。 在微服务中消息队列不仅用来消峰,还可以通过消息队列来解决微服务之间的多耦合,把同步调用转化为异步调用,减少调用链路,提升系统稳定性。 单体应用拆分为独立的多个无形中增加了系统的响应时间,可以通过本地缓存、分布式缓存相结合的方式来弥补性能的损耗。 以前通过内部接口调用的方法变成RPC调用多个服务,服务与服务之间还有依赖关系,每个服务接口响应时间也都不一样,简单的设置单个接口的超时时间已解决不了问题,可通过服务定级,哪些服务不能出问题,哪些服务允许有异常,采用降级、熔断的方式来解决问题,以达到系统的高可用。 以上这三种方式如能合理运用,微服务的高可用性大大提升,所以说缓存、队列、熔断降级成了微服务架构中的新三板斧。 以下是相关技术应用中的一些难点解答,供大家参考。 1、微服务架构中有哪些技术手段必须在设计阶段就需要规划进去? 互联网的三板斧:熔断、消息队列、缓存,这个必须有要考虑进入,另外为了提高响应时间,并行化操作也需要提前考虑。 熔断:保障服务高可用的重要手段,用户的请求将不再直接访问服务,而是通过线程池中的空闲线程来访问服务,如果线程池已满,则会进行降级处理,用户的请求不会被阻塞