ZooKeeper

关于Java码农这10年来的艰辛路程和技术生涯成长,生发篇

谁都会走 提交于 2020-08-12 23:57:17
一朝入IT,帽子头上带. 这一路走来过程多艰难心酸,多少次有过想退却的想法,还有哪些迷茫,怀疑自己的阶段 相信你,也一定有过 . 阶段1:只会增删改查: 时间:大学期间(2008年-2009年) 学习的方式:看视频、看书。(学会了使用控件的增删改查,和写SQL语句)。 自我感觉:XX管理系统已不在话下,反正网站弄来弄去也是增删改查,这大概就是无知者无畏。 如何破:(走出社会去就好了)。 阶段2:能快速实现功能,却不会思考: 时间:(2009年-20012年) 学习的方式:看博客、大量的编码(第1年,封闭式开发(1天敲15个小时代码),第二年后:每周六天,每天到夜里3点)。 感觉:大量的编码,做了大量的不同类型的系统,已练就成一个高级代码工:(CodeSmith代码生成器+批量生成增删改查)。 如何破:(让自己静下来)。 阶段3:学会了分享、安全、性能、底层原理 时间:(20012年-2016年) 学习的方式:写博客、看博客、写框架(CYQ.Data V-V4系列、QBlog)。 感觉:为某个框架代码而自我得意。 如何破:不断重复的将自己归零(把自己的认为得意的东西开源出去,如果要保留一点感觉,可阶段性开源)。 阶段4:领悟了抽象思维、面向对象、写框架、用户体验 时间:(2016年-至今) 感觉:也许我懂的很多,但是我不懂的更多。 如何破:(转行卖烧烤。。。) 总结一下: 上面的内容

Spring Boot Admin简介及实践

主宰稳场 提交于 2020-08-12 16:44:10
问题 在若干年前的单体应用时代,我们可以相对轻松地对整个业务项目进行健康检查、指标监控、配置管理等等项目治理。如今随着微服务的发展,我们将大型单体应用按业务模型进行划分,以此形成众多小而自治的微服务,我们品尝到了微服务的甜头:异常隔离、独立部署和发布、服务伸缩、便于协作开发...我们的项目服务更加解耦合,高可用。但与此同时这也给我们带来了很多挑战,众多服务的健康检查、指标监控问题、配置管理、日志聚合问题、异常排查问题等等。我们急切需要一些工具或者手段来尽可能地解决这些问题,从而让我们收获微服务的最大化利益。 来源背景 codecentric的Spring Boot Admin是一个社区项目,用于管理和监视您的Spring Boot®应用程序。这些应用程序在我们的Spring Boot Admin Client中注册(通过HTTP),或者是通过Spring Cloud®(例如Eureka,Consul)发现的。 UI只是Spring Boot Actuator端点之上的Vue.js应用程序。 功能介绍 Spring Boot Admin提供了很多服务治理方面的功能,利用它能节省我们很多在治理服务方面的时间和精力Spring Boot Admin提供了如下功能(包括但不限于): 显示健康状态及详细信息,如JVM和内存指标、数据源指标、缓存指标 跟踪并下载日志文件 查看jvm系统

apache pulsar参数配置

社会主义新天地 提交于 2020-08-12 15:50:20
BookKeeper bookiePort bookeeper server监听端口 allowLoopback 是否接受回127.0.0.1地址 listeningInterface 默认网口,比如:eth0 journalDirectory WAL存入目录 ledgerDirectories 帐目快照保存地址,推荐WAL与该目录不同硬盘 ledgerManagerType bookeeper 帐目保存类型 zkLedgersRootPath zookeeper保存的bookeeper数据路径 ledgerStorageClass 帐目存储类 entryLogFilePreallocationEnabled 是否预分配entry logger minorCompactionThreshold 当entry logger达到阀值将执行minor compaction,0为禁止 minorCompactionInterval 时间控制minor compaction majorCompactionThreshold 当entry logger达到阀值将执行major compaction,0为禁止 majorCompactionInterval 时间控制major compaction compactionMaxOutstandingRequests 没有flush的最大entry数

Ubuntu下快速安装JDK并设置JAVA_HOME

感情迁移 提交于 2020-08-12 14:30:25
更新软件源 sudo apt update 查找jdk版本 apt search jdk 选择这个openjdk-8-jdk,即java8版本 安装jdk8 apt install openjdk-8-jdk 查看java是否安装成功 java -version 这样就大工告成了,但是很多软件,例如jenkins,zookeeper,sonarqube,jmeter等工具需要知道JAVA_HOME在哪里,该怎么办呢? 看下是否被设置到环境变量: echo $JAVA_HOME 这里使用apt install安装,并没有把JAVA_HOME内置到环境变量,那么我们先看下java安装到哪里了。 which java 可以看到java的路径了 看来java是由alternatives管理的,即可以在系统中设置并切换多个jdk版本。 查找系统中可用的java版本 update-alternatives --config java 红框里即为的java的安装路径,进入对应目录进行验证下 cd /usr/lib/jvm/java-8-openjdk-amd64 && ll 设置JAVA_HOME export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 >> /etc/profile 重新加载一下环境变量 source /etc/profile 至此

汇总一下Intellij IDEA炫酷的插件

你。 提交于 2020-08-12 11:46:08
1、日晒主题 Solarized Themes 推荐指数:☆☆☆☆☆ 推荐理由:日晒主题本身是为vim定制的。后来移植到ide 非常酷!配色非常耐看。 最近更新不等号显示,注释不可编辑。 背景图可是另外的插件设置的哈Background Image Plus + 2、idea上 类调用时序图 SequenceDiagram for IntelliJ IDEA 推荐指数:☆☆☆ 推荐理由:在梳理别人的代码的时候, 能够很清晰的看到依赖调用时序 3、彩色括号 Rainbow Brackets 4、mybatis插件集合 :MyBatis Log Plugin MyBatisCodeHelperPro Free Mybatis plugin 推荐指数:☆☆☆☆☆ 推荐理由:在sql的xml里也能智能提示了!酷 三个插件都装上吧,相互补充 5、翻译插件 translation plugin 推荐指数:☆☆☆☆ 推荐理由:不能翻墙的同学,请自行百度如何更换为百度翻译。在ide中直接翻译,不需要跳转到网页了,效率神器! 6、打字效果 Power Mode II 装逼指数:☆☆☆☆☆ 推荐理由:这个就是美化的,装逼用的。喜欢的可以试试,让编码不再单调。火焰特效,抖动都可以单独关闭。留下重力碎屑就好了 7、快捷跳转Action方法 RestfulToolkit 推荐指数:☆☆☆☆☆ 推荐理由

【Hadoop篇07】Hadoop集群脚本编写

廉价感情. 提交于 2020-08-12 11:04:19
积极乐观的态度是解决任何问题和战胜任何困难的第一步 Hadoop集群脚本编写 编写分发文件脚本 应用场景如下:比如有三台主机master1,slave1,slave2 如果简历完全分布式的集群就需要将文件从master1拷贝到slave从机上 那么可以使用rsync命令分发单个文件,也可以使用如下脚本分发文件夹或者文件 #!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 # $#代表获得命令行参数个数 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 获取文件名称 # $1代表获得命令行第一个参数 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 rsync命令可以分发文件到指定主机 # 这里slave就是从机的机名 for((host=1; host<3; host++)) do echo ------------------- slave$host -------------- rsync -rvl $pdir/$fname $user@slave$host:$pdir

用 Docker 快速搭建 Kafka 集群

牧云@^-^@ 提交于 2020-08-12 10:21:30
版本 JDK 14 Zookeeper Kafka 安装 Zookeeper 和 Kafka Kafka 依赖 Zookeeper,所以我们需要在安装 Kafka 之前先拥有 Zookeeper。准备如下的 docker-compose.yaml 文件,将文件中的主机地址 192.168.1.100 替换成你自己的环境中的主机地址即可。 version: "3" services: zookeeper: image: zookeeper build: context: ./ container_name: zookeeper ports: - 2181:2181 volumes: - ./data/zookeeper/data:/data - ./data/zookeeper/datalog:/datalog - ./data/zookeeper/logs:/logs restart: always kafka_node_0: depends_on: - zookeeper build: context: ./ container_name: kafka-node-0 image: wurstmeister/kafka environment: KAFKA_BROKER_ID: 0 KAFKA_ZOOKEEPER_CONNECT: 192.168.1.100:2181 KAFKA

异步文件通道Java NIO你需要了解多少,来看看这篇文章

人盡茶涼 提交于 2020-08-12 07:04:16
在Java 7,AsynchronousFileChannel 被添加到了Java NIO中。使用AsynchronousFileChannel可以实现异步地读取和写入文件数据。 创建一个AsynchronousFileChannel 我们可以使用AsynchronousFileChannel提供的静态方法 open() 创建它。示例代码如下: Path path = Paths.get("data/test.xml"); AsynchronousFileChannel fileChannel = AsynchronousFileChannel.open(path, StandardOpenOption.READ); 第一个参数是一个 PATH 的对像实例,它指向了那个与 AsynchronousFileChannel 相关联的文件。 第二个参数是一个或多个操作选项,它决定了 AsynchronousFileChannel 将对目标文件做何种操作。示例代码中我们使用了 StandardOpenOption.READ ,它表明我们将要对目标文件进行读操作。 读取数据 AsynchronousFileChannel 提供了两种读取数据的方式,都是调用它本身的 read() 方法。下面将对两种方式进行介绍。 使用Futrue读取数据 第一种反式是调用

开发四年的Java程序员,你遇到过自身瓶颈期吗?又是怎样度过的?

非 Y 不嫁゛ 提交于 2020-08-12 03:12:55
从毕业到现在已经快4年啦,一直在Java的WEB开发行业混迹。我不是牛人,但是自我感觉还算是个合格的程序员,有必要写下自己将近4年来的经历,给自我以提示,给刚入行的朋友提供点参考。 貌似这一点适应的行业最广,但是我可以很肯定的说:当你从事web开发一年后,重新找工作时,才会真实的感受到这句话。 工作第一年,往往是什么都充满新鲜感,什么都学习,冲劲十足的一年;WEB行业知识更新特别快,今天一个框架的新版本,明天又是另一个新框架,有时往往根据项目的需要来不断学习新东西;所有,很多时候感觉,自己用过的东西真多呀!但是真正深入研究的东西却不多。 面试,是跳槽后第一个需要面对的问题;而且不同公司面试的着重点不同;但是却有一个共同点:Java基础是必考的。工作第一年,可能问你String对象创建的理解,常用的框架是什么等等;工作第二年,就问你Java内存分配机制是什么,类是如何加载的等等;第三年,就问你常用的设计模式是什么,你在工作中充当什么角色,怎么独立完成一个模块等等; 可以看出------这是一个典型的程序员的成长过程: 使用Java---->深入理解Java积累经验------>独立设计分析能力------>独当一面的多面手! 因此,必须学习: 列举一些技术 比如对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了解底层的设计

Canal——增量同步MySQL数据到ElasticSearch

半腔热情 提交于 2020-08-12 02:09:28
1.准备 1.1.组件    JDK :1.8版本及以上;    ElasticSearch :6.x版本,目前貌似不支持7.x版本; Kibana :6.x版本;   Canal.deployer: 1.1.4    Canal.Adapter: 1.1.4 1.2.配置 需要先开启MySQL的 binlog 写入功能,配置 binlog-format 为 ROW 模式 找到my.cnf文件,我的目录是/etc/my.cnf,添加以下 配置: log-bin=mysql- bin   # 开启 binlog binlog -format= ROW   # 选择 ROW 模式 server_id = 1      # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复 然后 重启mysql ,用以下命令检查一下binlog是否正确启动: mysql> show variables like 'log_bin%' ; +---------------------------------+----------------------------------+ | Variable_name | Value | +---------------------------------+--------------------------------