ZooKeeper

工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇

一曲冷凌霜 提交于 2020-12-10 19:45:07
作者 | 张远征 来源| 阿里巴巴云原生公众号 导读 :Dubbo 作为分布式微服务框架,众多公司在实践中基于 Dubbo 进行分布式系统架构。重启开源后,我们不仅看到 Dubbo 3.0 最新的 Roadmap 发布 ,而且还看到阿里在自身电商开始推进 Dubbo 和内部 HSF 的融合 ,并在 双11 上开始使用 Dubbo 3.0。本文是工商银行基于 Dubbo 构建金融微服务架构的分享,主要讲述了服务发现的应对策略和成果,后续将发布工行大规模服务监控治理的实践,以及从企业角度怎么去对 Dubbo 二次开发等内容。欢迎关注。 背景及概览 工行传统的业务系统一般都是基于 JEE 的单体架构,面对金融业务线上化及多样化的发展趋势,传统架构已经无法满足业务的需求。因此从 2014 年开始,工行选择了一个业务系统做服务化的尝试,并验证、评估、对比了当时的几个分布式服务框架,最终选择了相对完善、并且国内已经有较多公司落地使用的 Dubbo。与此同时,工行还对 Dubbo 做了企业定制,帮助这个业务系统完成了服务化的落地,上线之后也收到了非常好的效果。 2015 年,工行开始扩大服务架构的落地范围,一方面帮助传统业务系统进行架构转型,另一方面也逐渐沉淀了类似中台的超大规模服务群组,支撑业务系统快速服务的组合和复用。随着经验积累,工行也不断对 Dubbo 进行迭代优化和企业定制

字节跳动五面都过了,竟然意外被刷了下来,问了hr原因竟说是。。。。。

我只是一个虾纸丫 提交于 2020-12-10 19:41:41
说在前面,面试时最好不要虚报工资。本来字节跳动是很想去的,几轮面试也通过了,最后没offer,自己只想到几个原因:1、虚报工资,比实际高30%;2、有更好的人选,这个可能性不大,我看还在招聘。我是面试Android开发的,3年经验,下面是面试流程: 一面 1.插件化。启动activity的hook方式。taskAffity。 2.okhttp支持HTTP2?http2的功能有哪些?tcp方面拥塞控制?tsl的握手和具体的非对称加密算法。非对称名称 3.handler的post(Runnable)如何实现的。callback,runnable,msg的执行优先级。 4.阻塞是怎么实现的?为什么不会阻塞主线程? 5.求二叉树中两个节点之间的最大距离。 6.206含义,未修改资源是哪个,302含义,301含义 7.多进程通信问题。binder优势。aidl生成的java类细节。多进程遇到哪些问题? 8.动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM的原理 9.Application和Activity在Context的继承树上有何区别?二者使用上有何不同? 10.任意一颗二叉树,求最大节点距离 二面 1.设计一个日志系统。 2.内存泄露的分类。怎么查看内存泄露的问题 3.touch事件源码问题。 4.组件化的问题。module和app之间的区别

国外一周标星131K+Star的Java后端成长路线笔记,下载量已超百万!

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-10 11:13:13
国外有一个爆火的开发人员学习路线,目前已经收获了 131 k+ star,在所有仓库中排名第 9 。 今天就主要为大家拆解一下“后端学习路线”! 下图是中文翻译版本,基本涵盖了一个后端程序员必须要掌握的一些通用的后端知识,非常直观! 你可以将其作为自己后端学习之路的重要参考。 学习路线配套得学习资料戳这里: 由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 大致内容包括了: Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈! 笔记目录展示: 需要获取全部资料的话麻烦一键三连之后,然后加小助理VX:wjj2632646免费获取~ 需要获取全部资料的话麻烦一键三连之后,然后加小助理VX:wjj2632646免费获取~ 需要获取全部资料的话麻烦一键三连之后,然后加小助理VX:wjj2632646免费获取~ 部分内容截图: 需要获取全部资料的话麻烦一键三连之后,然后加小助理VX:wjj2632646免费获取~ 来源: oschina 链接: https://my.oschina.net/u

工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇

会有一股神秘感。 提交于 2020-12-10 05:19:28
作者 | 张远征 来源| 阿里巴巴云原生公众号 导读 :Dubbo 作为分布式微服务框架,众多公司在实践中基于 Dubbo 进行分布式系统架构。重启开源后,我们不仅看到 Dubbo 3.0 最新的 Roadmap 发布 ,而且还看到阿里在自身电商开始推进 Dubbo 和内部 HSF 的融合 ,并在 双11 上开始使用 Dubbo 3.0。本文是工商银行基于 Dubbo 构建金融微服务架构的分享,主要讲述了服务发现的应对策略和成果,后续将发布工行大规模服务监控治理的实践,以及从企业角度怎么去对 Dubbo 二次开发等内容。欢迎关注。 背景及概览 工行传统的业务系统一般都是基于 JEE 的单体架构,面对金融业务线上化及多样化的发展趋势,传统架构已经无法满足业务的需求。因此从 2014 年开始,工行选择了一个业务系统做服务化的尝试,并验证、评估、对比了当时的几个分布式服务框架,最终选择了相对完善、并且国内已经有较多公司落地使用的 Dubbo。与此同时,工行还对 Dubbo 做了企业定制,帮助这个业务系统完成了服务化的落地,上线之后也收到了非常好的效果。 2015 年,工行开始扩大服务架构的落地范围,一方面帮助传统业务系统进行架构转型,另一方面也逐渐沉淀了类似中台的超大规模服务群组,支撑业务系统快速服务的组合和复用。随着经验积累,工行也不断对 Dubbo 进行迭代优化和企业定制

工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇

荒凉一梦 提交于 2020-12-09 16:41:33
作者 | 张远征 来源| 阿里巴巴云原生公众号 导读 :Dubbo 作为分布式微服务框架,众多公司在实践中基于 Dubbo 进行分布式系统架构。重启开源后,我们不仅看到 Dubbo 3.0 最新的 Roadmap 发布 ,而且还看到阿里在自身电商开始推进 Dubbo 和内部 HSF 的融合 ,并在 双11 上开始使用 Dubbo 3.0。本文是工商银行基于 Dubbo 构建金融微服务架构的分享,主要讲述了服务发现的应对策略和成果,后续将发布工行大规模服务监控治理的实践,以及从企业角度怎么去对 Dubbo 二次开发等内容。欢迎关注。 背景及概览 工行传统的业务系统一般都是基于 JEE 的单体架构,面对金融业务线上化及多样化的发展趋势,传统架构已经无法满足业务的需求。因此从 2014 年开始,工行选择了一个业务系统做服务化的尝试,并验证、评估、对比了当时的几个分布式服务框架,最终选择了相对完善、并且国内已经有较多公司落地使用的 Dubbo。与此同时,工行还对 Dubbo 做了企业定制,帮助这个业务系统完成了服务化的落地,上线之后也收到了非常好的效果。 2015 年,工行开始扩大服务架构的落地范围,一方面帮助传统业务系统进行架构转型,另一方面也逐渐沉淀了类似中台的超大规模服务群组,支撑业务系统快速服务的组合和复用。随着经验积累,工行也不断对 Dubbo 进行迭代优化和企业定制

Paxos的通俗理解及其在数据库高可用上的使用

穿精又带淫゛_ 提交于 2020-12-09 07:42:13
https://dbaplus.cn/news-160-1297-1.html 本文转自【 Qunar技术沙龙】, 经平台同意授权转载。 近期大家都在讨论Paxos算法,我看了很多网上的文章,总觉得有些晦涩难懂,经过一段时间研究,对Paxos有了一些理解,在这里总结一下,希望能抛砖引玉。 1、为什么需要Paxos Paxos要解决的问题,是分布式系统中的一致性问题。那么,到底什么是“分布式系统中的一致性问题”呢?在分布式系统中,为了保证数据的高可用,通常我们会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上。副本要保持一致,那么所有副本的更新序列就要保持一致。因为数据的增删改查操作一般都存在多个客户端并发操作,到底哪个客户端先做,哪个客户端后做,更新顺序要保证。如果不是分布式,那么可以通过加锁的方法,谁先申请到锁谁就先操作,但这就存在单点问题。 Paxos协议主要有两种用法:一种用法是用来实现全局的锁服务或者命名和配置服务,例如Google Chubby以及Apache ZooKeeper。另外一种用法是用它来将用户数据复制到多个数据中心,例如Google Megastore以及Google Spanner。 以一个分布式的KV数据库为例,假设数据库对外提供2种操作Put和Get,具体架构如下: 在这样一个架构下

灰度发布浅析

╄→尐↘猪︶ㄣ 提交于 2020-12-08 09:57:25
定义 灰度发布就是已一种平滑过渡的方式来发布,通过切换线上新旧版本之间的路由权重,逐步从旧版本切换到新版本;比如要上线新功能,首先只是更新少量的服务节点,通过路由权重,让少部分用户体验新版本,如果没有什么问题,再更新所有服务节点;这样可以在出现问题把影响面降到最低,保证了系统的稳定性。 灰度发布 一个系统往往有接入层比如nginx(Openresty),网关层比如zuul,以及服务层比如各种rpc框架;在这几层都有路由功能,也就是说这几层都可以做灰度;接入层可以使用nginx+lua来实现灰度,网关层zuul可以结合ribbon来实现灰度,rpc框架如dubbo本身提供了路由功能可以直接做灰度处理;下面看看具体如何去实现; 接入层灰度 接入层我们这里使用功能更强大的Openresty,然后使用lua进行路由转发,相关的路由策略可以配置在分布式缓存redis里面,当然也可以持久化到数据库里面; 准备 准备一台Openresty,两台web服务器tomcat(端口分别是8081,8082),以及redis;为了方便模拟在redis里面配置白名单,如果在白名单里面就走8082,不在则走8081; Openresty配置 需要在Openresty中配置支持lua,以及相关路由的lua脚本,nginx.conf配置如下: http { ... lua_package_path "

【问题】mycat同步数据到zookeeper无法加载XmltoZkMain主类

左心房为你撑大大i 提交于 2020-12-07 17:58:27
问题 在配置好zookeeper后,输入了mycat/bin中的同步数据命令:init_zk_data.sh,出现如下问题。 问题探索 仔细看这个问题,set HOME_DIR下,第一行是Java8移除了对MaxPermSize的支持,只是个提醒,不用管,主要问题在第二行,找不到这个主类,那么就来找一下这个类,看是否存在。 路径:首先在lib下找到mycat的核心包: 打开它,按照错误提示中的路径找主类 可以看到,这个类是存在的。那么为什么错误提示找不到?最有可能的原因,就是路径有问题,回到命令的执行文件,打开它我们可以看到他的结构: 看完这个之后,有点思路了,pwd保存的是当前的路径,其后所使用的所有路径都是变量替代的,所以出现问题的矛头指向了pwd。我们来输出一下这个MYCAT_HOME: 问题原因出来了,在根目录下运行这个命令,他的MYCAT_HOME路径是根目录的上级目录,命令文件里复制路径那里就出问题了。因为这个主类包是在MYCAT的lib文件夹中的,它连lib都找不到,更不到主类了。 解决办法 研究到现在,解决办法也就有了,定位启动目录,在bin目录下启动: 总结 这篇博客存在的意义并不是这个问题解决起来有多难,而是发现问题了从什么地方去考虑。不要一有问题就直接粘贴到百度,多想想它为什么会出这样的错,多看日志,会成长的更快。 来源: oschina 链接: https:

zookeeper(一)zookeeper服务的安装与启动

最后都变了- 提交于 2020-12-06 19:44:11
zookeeper官网:https://zookeeper.apache.org/ 使用的是当前最新的稳定版本zookeeper-3.4.12 一、zookeeper的安装 1.下载对应的zookeeper-3.4.12.tar.gz文件,上传至服务器目录 2.解压:tar -zxvf zookeeper-3.4.12.tar.gz 3.重命名:mv zookeeper-3.4.12 zookeeper 4.移动zookeeper至指定目录:mv zookeeper /usr/local/ 5.配置环境变量:vim /etc/profile 配置zookeeper_home:export ZOOKEEPER_HOME=/usr/local/zookeeper 在path中追加:$ZOOKEEPER_HOME/bin: 二、zookeeper的目录结构介绍 整体目录结构: 1.bin:主要的一些运行命令 2.conf:存放配置文件 3.contrib:附加功能 4.dist-maven:mvn编译后的目录 5.docs:文档 6.lib:依赖的jar包 7.recipes:案例代码 8.src:源码 三、zookeeper的配置与运行 zookeeper在conf下提供了示例配置文件zoo_sample.cfg 配置介绍: tickTime:时间计算单元,例如设置session超时

zookeeper学习(零)_安装与启动

六眼飞鱼酱① 提交于 2020-12-06 18:53:29
zookeeper学习(零)_安装与启动 最近换了新的电脑,终于买了梦寐以求的macbook。最近也换了新的公司,公司技术栈用到了zookeeper.当然自己也要安装学习下。省的渣渣的我,被鄙视就麻烦了。本篇文章只介绍如何安装,先安装上之后,再进行具体学习。 安装 本文使用 brew 进行安装,默默说一句,mac的系统是比win好用。没有安装brew和jdk的童鞋请先安装这2个。 1、 打开终端执行命令 brew install zookeeper 2、 启动执行 zkServer start 3、 执行zk连接 zkCli -timeout 5000 -server 127.0.0.1:2181 4、 简单操作 [zk: 127.0.0.1:2181(CONNECTED) 0] ls / [zookeeper] [zk: 127.0.0.1:2181(CONNECTED) 1] create /zk_test kevin Created /zk_test [zk: 127.0.0.1:2181(CONNECTED) 2] ls / [zookeeper, zk_test] [zk: 127.0.0.1:2181(CONNECTED) 3] get zk_test Command failed: java.lang.IllegalArgumentException: Path