ZooKeeper

在阿里云 ecs 机器上通过 docker 安装 kafka 集群

℡╲_俬逩灬. 提交于 2020-10-23 04:00:23
今天我开始在阿里云机器上通过 docker 来安装 kafka 集群服务。 在实际生产环境中,Kafka都是集群部署的,常见的架构如下: Kafka集群由多个Broker组成,每个Broker对应一个Kafka实例。Zookeeper负责管理Kafka集群的Leader选举以及Consumer Group发生变化的时候进行reblance操作。 一、Kafka集群搭建 1、首先运行Zookeeper(本文并未搭建ZK集群): docker run -d --name zookeeper -p 2181:2181 -t zookeeper 2、分别创建3个Kafka节点,并注册到ZK上: 不同Kafka节点只需要更改端口号即可。 Kafka0: docker run -d --name kafka0 -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=x.x.x.x:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://x.x.x.x:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" -t wurstmeister/kafka Kafka1:

大厂技术资料:Redis+Nginx+Spring全家桶+Dubbo精选

吃可爱长大的小学妹 提交于 2020-10-22 10:40:57
最近花了很长的时间去搜罗整理Java核心技术好文,我把每个Java核心技术的优选文章都整理成了一个又一个的文档。今天就把这些东西分享给老铁们,也能为老铁们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开文档学一学就好了。不多说,直接上干货! 一、Redis技术好文精选整理 Redis哨兵、复制、集群的设计原理,以及区别 Spring+Redis+Docker+Dubbo 深入了解redis 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题 二、Nginx技术好文精选整理 Nginx实战 Nginx教程从入门到精通 三、Spring全家桶技术好文精选整理 Spring从入门到精通(珍藏版) Spring MVC 学习指南 Spring源码深度解析 spring-boot-中文参考手册 Spring+Redis+Docker+Dubbo 《疯狂Spring Cloud》电子书(一) SpringBoot实战 四、分布式技术好文精选整理 RabbitMQ实战 高效部署分布式消息队列 从 Paxos 到 ZooKeeper 分布式一致性原理与实践 大规模分布式系统架构与设计实战.完整版 分布式数据库架构及企业实践-基于Mycat中间件 分布式java应用-基础与实际 大型分布式网站架构设计与实践 分布式Java应用基础与实践 分布式服务框架原理与实践 大规模分布式存储系统

后端程序员必备的 Linux 基础知识+常见命令(近万字总结)

爱⌒轻易说出口 提交于 2020-10-21 17:22:05
大家好!我是 Guide 哥,Java 后端开发。一个会一点前端,喜欢烹饪的自由少年。 今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令。 如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!笔芯! 1. 从认识操作系统开始 正式开始 Linux 之前,简单花一点点篇幅科普一下操作系统相关的内容。 1.1. 操作系统简介 我通过以下四点介绍什么是操作系统: 操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。 操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。 操作系统存在屏蔽了硬件层的复杂性。 操作系统就像是硬件使用的负责人,统筹着各种相关事项。 操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理 。 内核(Kernel)在后文中会提到。 1.2. 操作系统简单分类 1.2.1. Windows 目前最流行的个人桌面操作系统 ,不做多的介绍,大家都清楚。界面简单易操作,软件生态非常好。 玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台 Windows 用于玩游戏,一台 Mac

从面试角度一文学完 Kafka

自作多情 提交于 2020-10-21 15:12:23
Kafka 是一个优秀的分布式消息中间件,许多系统中都会使用到 Kafka 来做消息通信。对分布式消息系统的了解和使用几乎成为一个后台开发人员必备的技能。今天 码哥字节 就从常见的 Kafka 面试题入手,和大家聊聊 Kafka 的那些事儿。 思维导图 讲一讲分布式消息中间件 问题 什么是分布式消息中间件? 消息中间件的作用是什么? 消息中间件的使用场景是什么? 消息中间件选型? 消息队列 分布式消息是一种通信机制,和 RPC、HTTP、RMI 等不一样,消息中间件采用分布式中间代理的方式进行通信。如图所示,采用了消息中间件之后,上游业务系统发送消息,先存储在消息中间件,然后由消息中间件将消息分发到对应的业务模块应用(分布式生产者 - 消费者模式)。这种异步的方式,减少了服务之间的耦合程度。 架构 定义消息中间件: 利用高效可靠的消息传递机制进行平台无关的数据交流 基于数据通信,来进行分布式系统的集成 通过提供消息传递和消息排队模型,可以在分布式环境下扩展进程间的通信 在系统架构中引用额外的组件,必然提高系统的架构复杂度和运维的难度,那么 在系统中使用分布式消息中间件有什么优势呢?消息中间件在系统中起的作用又是什么呢? 解耦 冗余(存储) 扩展性 削峰 可恢复性 顺序保证 缓冲 异步通信 面试时,面试官经常会关心面试者对开源组件的选型能力,这既可以考验面试者知识的广度

阿里大牛整理的阿里Java岗位从P5-P7的成长笔记【总共3283页PDF文档】

此生再无相见时 提交于 2020-10-21 14:32:57
今年的金九银十已经过去一大半了,在这其中参与过不少面试,2020都说工作不好找,这也是对开发人员的要求变向的提高了。 之前在Github上收获45K+star的Java核心神技(这参数,质量多高就不用我多说了吧)非常全面, 包含基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等内容 非常丰富,已经帮很多人拿下互联网一线公司的offer Java架构师成长笔记: 首先肯定是Java基础复习 SpringBoot快速上手 Web编程探索 SSM从入门到精通 戳这里免费领取,暗号:CSDN 1-3年高级工程师 微服务 并发编程进阶 戳这里免费领取,暗号:CSDN 深入Tomcat底层 JVM深度剖析 3-5年资深高级架构师 中间件&分布式 数据库 戳这里免费领取,暗号:CSDN Spark 除了这套pdf文档,我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习, 戳这里免费领取,暗号:CSDN 已经将知识体系整理好(源码,笔记,PPT,学习视频)免费领取。 戳这里免费领取,暗号:CSDN 我已经把这些技术好文+面试题和架构视频,放在我的Java架构技术资源群里,群里会各种PDF书籍,也有资深HR可以推荐工作

IntelliJ IDEA 15款 神级超级牛逼插件推荐(自用,谁用谁知道)

人盡茶涼 提交于 2020-10-21 14:29:21
满满的都是干货 所有插件都是在 ctrl+alt+s 里的plugins 里进行搜索安装 1、CodeGlance 代码迷你缩放图插件 2、 Codota 代码提示工具,扫描你的代码后,根据你的敲击完美提示 Codota基于数百万个开源Java程序和您的上下文来完成代码行,从而帮助您以更少的错误更快地进行编码。 安装: 3、Material Theme UI 那就顺便推荐一下这个吧,超多的主题插件,各种颜色,各种模式,感兴趣的可以试一下,图我就不截了 4、Alibaba Java Coding Guidelines 阿里巴巴的编码规约检查插件 检查你的编码习惯,让你更规范 都是在plugins里搜索,我就不截图了 5、 Alibaba Cloud Toolkit 快速部署到服务器,超级牛逼 超级推荐 6、GenerateAllSetter 快速生成get set 7、idea zookeezper 管理zookeeper的idea插件本代码是根据https://github.com/linux-china/zookeeper-intellij修改过来的,解决了一些npe异常 可以图形化的查看zk 节点信息了,非常简单 8、JRebel 热加载插件,也是超级牛逼,就是收费。。 JRebel是一种生产力工具,允许开发人员立即重新加载代码更改。它跳过了Java开发中常见的重建

3千字带你搞懂XXL-JOB任务调度平台

余生长醉 提交于 2020-10-21 13:27:22
简介: 一篇文章带你认识分布式任务调度平台XXL-JOB! 思维导图 一、概述 在平时的业务场景中,经常有一些场景需要使用定时任务,比如: 时间驱动的场景:某个时间点发送优惠券,发送短信等等。 批量处理数据:批量统计上个月的账单,统计上个月销售数据等等。 固定频率的场景:每隔5分钟需要执行一次。 所以定时任务在平时开发中并不少见,而且对于现在快速消费的时代,每天都需要发送各种推送,消息都需要依赖定时任务去完成,应用非常广泛。 二、为什么需要任务调度平台 在Java中,传统的定时任务实现方案,比如Timer,Quartz等都或多或少存在一些问题: 不支持集群、不支持统计、没有管理平台、没有失败报警、没有监控等等 而且在现在分布式的架构中,有一些场景需要分布式任务调度: 同一个服务多个实例的任务存在互斥时,需要统一的调度。 任务调度需要支持高可用、监控、故障告警。 需要统一管理和追踪各个服务节点任务调度的结果,需要记录保存任务属性信息等。 显然传统的定时任务已经不满足现在的分布式架构,所以需要一个分布式任务调度平台,目前比较主流的是elasticjob和xxl-job。 elasticjob由当当网开源,目前github有6.5k的Star,使用的公司在官网登记有76家。 跟xxl-job不同的是, elasticjob是采用zookeeper实现分布式协调 ,实现任务高可用以及分片。

Kafka基本原理详解(超详细!)

安稳与你 提交于 2020-10-20 04:52:27
目录 一、概念理解 (1)产生背景 (2)Kafka的特性 (3)Kafka场景应用 (4)Kafka一些重要设计思想 二、消息队列通信的模式 (1)点对点模式 (2)发布订阅模式 三、Kafka的架构原理 (1)基础架构与名词解释 (2)工作流程分析 (1)发送数据 (2)保存数据 (1)Partition 结构 (2)Message结构 (3)存储策略 (3)消费数据 一、概念理解 Kafka 是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。 (1)产生背景 当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何及时做到如上两点 以上几个挑战形成了一个业务需求模型,即生产者生产(produce)各种信息,消费者消费(consume)(处理分析)这些信息,而在生产者与消费者之间

2020年的Java程序员如何才能做到不接私活也能月薪40k?

流过昼夜 提交于 2020-10-17 13:49:48
接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题,似乎都在避嫌。就跟有人下班后跑滴滴一样,程序员私有时间接点活挣点钱不也很正常么,不过不要在上班时间就行,就跟你上班期间出去跑滴滴一样。 但是我是不建议接私活的,接私活会浪费自己在一大部分的精力, 就算不接私活,利用好工作后的八小时也能比别人强,月薪也绝对不会比那些接私活的少。 把有限的时间花在提升自己的能力上,技术深度,技术广度,或者多阅读书籍,丰富自己,这样有可能比做外包收益大。 回想自己做开发的这八年多,我获得了很多,技术能力、培训、出国、大公司的,还记得刚刚出来第一年那段时间,太多东西不懂的,我都是一切听从老大的安排,敲敲代码,看看数据库,测试自己和别人的代码;这样干了一年 第二年的时候我就在想,自己还要这样吗? 当然是否定的,不可能的,一年的经验自己完全可以入行了,是时候该学习怎么进行需求分析,怎么设计数据库,怎么写各类文档,怎么写更好的代码? 所以说:一个人在一家公司呆久了,千万不要模式化,一直待着舒适区,因为当你一旦离开这家公司,找工作的时候就会很容易碰壁,在这里:我建议大家一定要提前计划着去学习 ... 我在这里给那些想达到这个高度甚至想往架构师发展的程序员提供一份进阶路线图

阿里巴巴资深架构师深度解析微服务架构设计之SpringCloud+Dubbo

删除回忆录丶 提交于 2020-10-17 09:54:36
微服务 软件架构是一个包含各种组织的系统组织,这些组件包括Web服务器,应用服务器,数据库,存储,通讯层),它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。 什么是微服务架构 微服务架构优势 独立部署,由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终缩短应用交付周期。 技术选型灵活微服务架构下,技术选型是去中心化的。每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈。由于每个微服务相对简单,当需要对技术栈进行升级时所面临的风险较低,甚至完全重构一个微服务也是可行的。 容错:当某个组建发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性的不可用。在微服务架构下,故障会被隔离在单个服务中。若设计良好,其他服务可通过重试、平稳退化等机制实现应用层面的容错。 扩展:单块架构应用也可以实现横向扩展,就是将整个应用完整的复制到不同的节点。当应用的不同组件在扩展需求上存在差异时,微服务架构便体现出其灵活性,因为每个服务可以根据实际需求独立进行扩展。 高并发 1、应用缓存 2、HTTP缓存 3、多级缓存 4、池化 5、步并发 6、扩容 7、队列 Dubbo 1、服务集群