ZooKeeper

程序猿:论学习方式的重要性

痞子三分冷 提交于 2020-11-02 06:46:23
大家都知道,做我们开发这行的,最核心的竞争力就是学习能力。技术一直在变化,框架一直在更新,学还是不学。 不学,你会落伍,学,太累了,根本学不过来。学习只要找对了方法,也没那么累。 最好的学习方式那就是兴趣驱使你去学习,但这种几乎很少,还有一种就是群体学习,就是大家一起学习,有问题一起讨论,这样的方式学起来会很轻松,这条路上的人多了,并不孤单。 知识星球是干嘛的? • 知识星球是我跟大家分享,交流技术的小圈子。 • 在这里可以交流技术,工作中遇到的问题。 • 我也会定期分享自己的心得和技术文章。 • 核心就是一起学习,讨论后端技术。主要是Java方向的哈! 有个圈子可以组队学习新技术,分享学习经验,面试经验,工作经验,理财经验等有益于成长的知识。这是我对知识星球的理解。 我希望加入星球的朋友们可以养成习惯,每日打卡,分享自己每天的学习成果,久而久之,学习将不再是一种负担,而是一种习惯。 后续计划 如果真的有更多的朋友愿意加入进来,后面我们可以一起学习,现在就已经开始了,第一个主题是阿里的Sentinel ,目前就我一个人在打卡,还没见到其他球友的打开记录,不过目前人也比较少。 还有就是我会通过各种激励的方式鼓励大家去学习,去分享,去总结,然后用奖品的方式来支持大家,比如赠书,发红包等方式,当然这个取决于后面星球的规模,规模大的话次数多点,规模小的话次数少点,但是肯定会做下去的

案例解析 | 高效上云,助力垂直电商降本增效

梦想的初衷 提交于 2020-11-02 04:11:07
https://juejin.im/post/5e3bba086fb9a07ce01a18d8 甩开技术包袱,做出业务特色,越发成为垂直电商的生存之道   今天,人们通过天猫、淘宝、苏宁进行网络购物,不仅方便,而且快乐,通过盒马、饿了么享受更加快捷的本地生活服务,与此同时,家电、食品等垂直领域的电商平台,也越来越有特色。   A公司是中国较早的食品领域相关产品和服务供应商,旗下的A1网致力于打造安全的大型食品购物网站。 对食品进行优选,在保质期上严格把关,对食品库存温湿度以及人员健康严格把关的同时,网站不断丰富食品种类,满足不同人群的需求,和其他垂直领域电商平台一样,A1网也决定把更多的精力用在不断提升服务质量和特色,网站本身往云上迁移,借助云计算的优势,不断提升系统响应速度,让购物更加快捷,这已经成为该领域正在发生着的一个显著变化。   把IT基础设施重资产(包括基于IDC建设的服务器、存储设备、网络与安全设备等)转移到云上,实现IT基础设施的虚拟化,根据业务量弹性灵活的使用资源,做到按量使用、按需付费,还有另一个附加好处,增强了经济贸易风险抵御能力。当经济形势触底的时候,对于最坏的情况进行兜底,对于经济形势随着拐点上行的时候,能够轻装前进,支持业务的快速扩张。   本文将以案例说明上云为支撑业务和降低成本带来的转变,以及客户的顾虑如何消除,最后通过什么样的步骤上云。

Zookeeper的Leader选举

ぃ、小莉子 提交于 2020-11-01 20:37:50
一、前言   前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。 二、Leader选举   2.1 Leader选举概述   Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。   (1) 服务器初始化启动。   (2) 服务器运行期间无法和Leader保持连接。   下面就两种情况进行分析讲解。   1. 服务器启动时期的Leader选举   若进行Leader选举,则至少需要两台机器,这里选取3台机器组成的服务器集群为例。在集群初始化阶段,当有一台服务器Server1启动时,其单独无法进行和完成Leader选举,当第二台服务器Server2启动时,此时两台机器可以相互通信,每台机器都试图找到Leader,于是进入Leader选举过程。选举过程如下    (1) 每个Server发出一个投票 。由于是初始情况,Server1和Server2都会将自己作为Leader服务器来进行投票,每次投票会包含所推举的服务器的myid和ZXID,使用(myid, ZXID)来表示,此时Server1的投票为(1, 0),Server2的投票为(2, 0),然后各自将这个投票发给集群中其他机器。    (2)

同样都是Java开发3年,凭什么别人拿30k?你只拿10k?

给你一囗甜甜゛ 提交于 2020-11-01 13:53:03
目录 一、常见的框架源码分析 二、分布式框架 三、并发编程专题 四、性能调优 五、微服务系列 很多人做Java开发2,3年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境? 很多人写了7,8年代码却还只是一个码农。如何突破自我?拿到更高的薪资? 很多程序员会有一个苦恼,工作了很久,在公司一味 的 增删改查,得不到技术的提高,在小企业温水煮青蛙,无缘底层代码,只会用却不知其原理!年龄大了不能熬了直接被劝退? 同样都是Java开发3年,凭什么别人拿30K,你只拿10K,为什么? 有人会会说:你技术没有别人高!人家有关系你没有!人家有后台! 在互联网的时代,公司的发展利益往往都是和项目挂钩的,难道就凭关系,后台不用技术了,没有技术的公司可以呆多久? 针对这些情况,小编看了很多文章和面试,最后总结了一个Java开发的程序员工作三年,想月薪3 0 K技术成长路线,这些也是目前身为一个程序员应该了解5大核心技术,那么接下来我们来详细看看。 一、常见的框架源码分析 1、应用框架Spring 2、ORM框架mybatis 3、应用框架Spring 想学习Java技术体系,这三个框架 师 必须需要了解的,编码必备的Spring5,做应用必不可少的框架mybatis。 二、分布式框架 1、初始分布式 2、分布式服务治理中间件(zookeeper,dubbo) 3、分布式消息中间件

分布式调度任务介绍

妖精的绣舞 提交于 2020-11-01 13:03:06
Java中的定时任务 现代的应用程序早已不是以前的那些由简单的增删改查拼凑而成的程序了,高复杂性早已是标配,而任务的定时调度与执行也是对程序的基本要求了。 很多业务需求的实现都离不开定时任务,例如,每月一号,移动将清空你上月未用完流量,重置套餐流量,以及备忘录提醒、闹钟等功能。 Java 系统中主要有三种方式来实现定时任务: • Timer和TimerTask • ScheduledExecutorService • 三方框架 Quartz 下面我们一个个来看。 Timer和TimerTask 先看一个小 demo,接着我们再来分析其中原理: 这种方式的定时任务主要用到两个类,Timer 和 TimerTask。其中,TimerTask 继承接口 Runnable,抽象的描述一种任务类型,我们只要重写实现它的 run 方法就可以实现自定义任务。 而 Timer 就是用于定时任务调度的核心类,demo 中我们调用其 schedule 并指定延时 1000 毫秒,所以上述代码会在一秒钟后完成打印操作,接着程序结束。 那么,使用上很简单,两个步骤即可,但是其中的实现逻辑是怎样的呢? Timer 接口 首先,Timer 接口中,这两个字段是非常核心重要的: TaskQueue 是一个队列,内部由动态数组实现的最小堆结构,换句话说,它是一个优先级队列。而优先级参考下一次执行时间

分布式任务调度框架-elastic-job和xxl-job

谁都会走 提交于 2020-11-01 10:06:54
1 、什么是分布式任务调度? 任务调度是指基于给定的时间点,给定的时间间隔或者给定执行次数自动的执行任务。任务调度是是操作系统的重要组成部分,而对于实时的操作系统,任务调度直接影响着操作系统的实时性能。任务调度涉及到多线程并发、运行时间规则定制及解析、线程池的维护等诸多方面的工作。 WEB 服务器在接受请求时,会创建一个新的线程服务。但是资源有限,必须对资源进行控制,首先就是限制服务线程的最大数目,其次考虑以线程池共享服务的线程资源,降低频繁创建、销毁线程的消耗;然后任务调度信息的存储包括运行次数、调度规则以及运行数据等。一个合适的任务调度框架对于项目的整体性能来说显得尤为重要。 2 、常见的任务调度框架有哪些? 我们在实际的开发工作中,或多或少的都会用到任务调度这个功能。常见的分布式任务调度框架有: cronsun 、 Elastic-job 、 saturn 、 lts 、 TBSchedule 、 xxl-job 、 Quartz 等。 在这里我们着重介绍 elastic-job 和 xxl-job 4 、业务场景 当 我们遇到定期任务,比如订单 30 分钟后自动回收 定期执行任务:如每天 0 点做资源稽查; Elastic-job : elastic-Job 是当当开源的一个分布式调度解决方案,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic

关于命名服务的知识点都在这里了

有些话、适合烂在心里 提交于 2020-11-01 08:41:27
关于命名服务的知识点都在这里了 命名服务,顾名思义,就是帮助我们对资源进行命名的服务,命名的目的当然是为了更好的定位了。这里所提到的资源在不同场景中包括但不限于计算机(主机)名和地址、应用提供的服务的地址或者远程对象等。 本文主要介绍Java中的命名服务、简单的命名服务的实现策略以及在分布式场景中如何实现命名服务。 JNDI 要介绍命名服务,不得不提 Java 命名和目录接口(Java Naming and Directory Interface,JNDI),他是J2EE中重要的规范之一,标准的J2EE容器都提供了对JNDI规范的实现。 在没有JNDI的场景中,我们要配置一个JDBC驱动链接数据库时我们需要做以下操作: Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://DBName?user=hollis&password=hollischuang"); 上面的代码中,把数据库链接相关的字符串直接写到了代码中,这不是一个好的做法。有过web开发经验的人都知道,在真正的web开发中我们并不需要这样定义JDBC的连接,我们一般都是把哪些固定的字符串配置到配置文件中,然后在代码中直接从配置中读取。甚至有很多数据库处理的框架(Hibernate

敖丙8年经验读者,疫情期间面20家大厂总结

谁都会走 提交于 2020-11-01 07:20:36
本文来自一个8年大数据老兵的面试经历投稿,我完完整整的看了一遍,真的很细很细,疫情期间面试各种失败各种总结,最后拿到Offer实属不易,精神很值得大家学习 前言 我不是什么大牛,我只是一个有八年工作经验的互联网老兵,既没有非常亮眼的学历,也没有牛逼大厂的履历。 这个冬天,在孩子得病从急诊转住院的时候,我得到了年前将被优化的消息,作为家里唯一经济来源的我整个人蒙了,一时间茫然和无助差点毁了我。 最后我还是和家人如实说了,受到了他们的极大的鼓励,也找到了重新开始的勇气。 可惜这场疫情来的如此凶猛,职位少、要求高、电话面试、视频面试、在线coding、屡战屡败、屡败屡战,构成了我这两个月的常规生活。 我一开始也焦虑、茫然,甚至对自己的能力和工作经验深深怀疑。 后来经过几个好朋友的鼓励打气,也看了敖丙的很多面试文章,认真总结自己面试中不足的地方,查漏补缺,终于在这周确定了offer。(这是原话,我真没瞎加哈哈) 接下来我就我之前面过的腾讯、高德、京东、美团、饿了么、快手、字节跳动、滴滴、360金融、跟谁学、网联清算、华晨宝马、快看漫画、陌陌、脉脉等等等公司的面试题做一下总结,权当抛砖引玉,希望对大家有帮忙。 面试问题汇总 基础问题 linux和网络基础 (1)linux系统内核态和用户态是什么,有什么区别? (2)BIO、NIO、AIO都是什么,有什么区别? (3)TCP和UDP的区别?

hadoop、hbase、zookeeper环境搭建

谁都会走 提交于 2020-10-31 09:53:50
一 机器 192.168.0.203 hd203: hadoop namenode & hbase HMaster 192.168.0.204 hd204: hadoop datanode & hbase HRegionServer & zookeeper 192.168.0.205 hd205: hadoop datanode & hbase HRegionServer & zookeeper 192.168.0.206 hd206: hadoop datanode & hbase HRegionServer & zookeeper 192.168.0.202 hd202: hadoop second namenode & hbase HMaster 共 5 台机器 (生产环境需要把zookeeper单独安装) 二 操作系统和软件版本 1 操作系统:CentOS release 5.6 (Final)x64,关闭防火墙 2 相关软件: jdk-6u24-linux-x64.bin hadoop-0.20.2-cdh3u0.tar.gz hbase-0.90.1-cdh3u0.tar.gz zookeeper-3.3.3-cdh3u0.tar.gz 三 安装 1 安装jdk (所有机器) mkdir /usr/java mv jdk-6u24-linux-x64.bin /usr

zookeeper和hbase集群搭建

点点圈 提交于 2020-10-31 07:54:41
zookeeper与hbase分布式搭建 zookeeper集群 1.zookeeper,故名思意,就是动物园管理员的意思,Hadoop生态里面的东西基本上都是一些小动物的昵称,所以,就这么来了 这里接前篇的Hadoop分布式搭建,所有平台都搭建在/root/app目录下 (千万别学我用根用户弄,我是为了懒得敲sudo) 我们将下载的zookeeper安装包上传至虚拟机中,然后解压 tar -zxvf zookeeper-3.4.10.tar.gz 解压好了之后,我们建立两个文件夹,一个是zkdata,一个是zkdatalog mkdir zkdata # 数据 mkdir zkdatalog # 日志 2.我们cd进conf文件夹下,配置zoo.cfg文件,然这个文件夹里只有个叫zoo_sample.cfg(~废话,重命名啊~) 修改如下图所示: 其实也就是这些参数,有几个不用改。 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/app/zookeeper-3.4.10/zkdata clientPort=2181 dataLogDir=/root/app/zookeeper-3.4.10/zkdatalog server.1=master:2888:3888 server.2=slave1:2888:3888