ZK

分布式ID的简单总结

依然范特西╮ 提交于 2019-12-21 23:26:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 简单总结一下流行的分布式id的实现方法 雪花算法 snowflake是twitter开源的分布式ID生成算法. 核心思想是:分布式ID固定是一个long型的数字,一个long型占8个字节,也就是64个bit,原始snowflake算法中对于bit的分配如下图: 第一个bit位是标识部分,在java中由于long的最高位是符号位,正数是0,负数是1,一般生成的ID为正数,所以固定为0 时间戳部分占41bit,这个是毫秒级的时间,一般实现上不会存储当前的时间戳,而是时间戳的差值(当前时间-固定的开始时间) 这样可以使产生的ID从更小值开始;41位的时间戳可以使用69年,(1L << 41) / (1000L * 60 * 60 * 24 * 365) = 69年 工作机器id占10bit,这里比较灵活,比如,可以使用前5位作为数据中心机房标识,后5位作为单机房机器标识,可以部署1024个节点 序列号部分占12bit,支持同一毫秒内同一个节点可以生成4096个ID snowflake算法需要人工为每台机器去指定一个机器id,如果机器很多或者机器扩展时, 挨个配置肯定不太现实,而且类似docker容器的流行, 使得这个机器id已经不能狭隘地停留在“物理”层面上了, 应该把机器id扩展为当前“实例”的id,

Kubernetes+docker-DIY-kafka+zookeeper+manager集群部署

穿精又带淫゛_ 提交于 2019-12-20 23:43:13
前言:最近在给公司搞kafka和zookeeper容器化结合rancher的项目,查阅了相关官网和书籍,发现如果和公司的标准化关联比较牵强,原因有很多,我简单谈一下我最后选择自定义的原因:(因是个人本地二进制部署k8s+kakfa测试的,因此生产需要自己配置所需要的内存和cpu,动态持久化存储等) 1、使用官网dockfile不能自定义jdk。 2、dockerfile和yaml关联比较牵强,每个人有每个人的思路。 3、不能和公司之前物理机部署标准化文档相结合。 ..... 下面,我将花了半个月研究的部署分享一,有兴趣者可加好友共同探讨: https://github.com/renzhiyuan6666666/kubernetes-docker 一、 zookeeper集群部署 1.1) zookeeper文件清单 2. 1.2) zookeeper文件清单详解 1.2.1)oracle jdk软件包  jdk-8u151-linux-x64.tar.gz 底层使用centos6.6镜像,部署目录到app目录下,在dockerfile里面配置环境变量。 1.2.2)zookeeper软件包  zookeeper-3.4.12.tar.gz 底层使用centos6.6镜像,部署目录到app目录下 1.2.3)zookeeper Dockerfile #设置继承镜像 FROM

notify change of grid/list/tree inside a grid/list/tree

自作多情 提交于 2019-12-20 05:36:09
问题 I saw multiple questions of people who wants to update a part of a grid/list/tree with mvvm but they didn't wanted to refresh the whole list. For all the people who has this problem I made the following example. Hope this can be use for you. 回答1: This is a simpel example. The most important of the whole code is this : BindUtils.postNotifyChange(null, null, person, "childs"); First simple pojo class : package be.chillworld; import java.util.ArrayList; import java.util.List; /** * * @author

Selected Item data from a table to textbox in ZK

霸气de小男生 提交于 2019-12-20 04:59:07
问题 I'm developing a small web application for storing data of a hospital's patients in order to learn more about zk and it's amazing features. My goal this time is when I select a row (checkmark) I want to take the data of the row (red color) to their corresponding textbox (blue) and this works when I choose any row of the table: Maybe it's a kind of configuration of the listbox or maybe I have to implement a method to get what I want, I don't know. It will be great if you give me a hand with

ZK Reordering in Listbox

巧了我就是萌 提交于 2019-12-18 17:30:02
问题 I will want to use reordering of listitem in zk How can we do it when we have define tags(listitem,listcell) inside the zul file .I do Not want to use ListitemRenderer .Here i found something but may be they are not updating things 回答1: Listbox Reorder Columns The folloing example could be found on zk fiddle too. By Drag and Drop First a dnd example that we extend to the popup way later. The simple view: <window apply="test.LboxViewCtrl"> <listbox id="lbox"> <listhead id="lHead"> <listheader

SparkStreaming整合kafka

情到浓时终转凉″ 提交于 2019-12-18 11:33:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> kafka0.8和kafka1.0的区别 1.kafka1.0版本不支持receiver连接方式 2. kafka1.0版本自动更新保存偏移量到kafka中 Kafka0.8版 使用高级api,代码简单,自动获取偏移量并放入zk中,使用WAL机制将接收到的数据存到HDFS 代码 package com.bw.sparkStreaming import org.apache.spark.{HashPartitioner, SparkConf, SparkContext} import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream} import org.apache.spark.streaming.kafka.KafkaUtils import org.apache.spark.streaming.{Durations, StreamingContext} /** * kafka基于receiver方式连接sparkStreaming * 使用sparkStreaming的窗口函数解决程序不能累加问题 */ object StreamingDemo3 { /* String:聚合的key Seq[Int]

Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用

☆樱花仙子☆ 提交于 2019-12-17 09:08:06
https://www.cnblogs.com/leeSmall/p/9563547.html 一、Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面两个方面: 1) 任务拆分   任务拆分指的是把传统的单节点服务拆分成多个节点服务部署到不同的机器上对外提供服务。比如一个传统服务有订单+支付+物流等3个模块,拆分成订单系统、支付系统、物流系统3个服务。 2) 节点分工   如上面的服务拆分后,订单系统、支付系统、物流系统各司其职 说明: 分布式解决高可用,高并发的。 集群解决的是高可用。 集群从物理上来定义,分布式一种工作方式。 例如:一个工作任务需要10个小时(单节点) 分布式:10台机器,任务只需要1个小时就能够完成 集群:10台机器,任务还是10个小时。 1.2 分布式协作中的难点: 如果让你设计一个分布式系统,你预见到什么问题? 1) 保证节点高可用(节点故障) 2) 数据的一致性 3) 通讯异常 4) 网络分区 ....... 2. Zookeeper简介 Zookeeper就是用来解决分布式协作中的难点的 zookeeper是google的chubby项目开源实现。最早是hadoop的子项目 Zookeeper的使用场景: 小米米聊、淘宝Taokeeper其实是类zookeeper。 Kafka使用zookeeper

ZooKeeper系列(三)

僤鯓⒐⒋嵵緔 提交于 2019-12-17 05:15:17
前面虽然配置了集群模式的Zookeeper,但是为了方面学建议在伪分布式模式的Zookeeper学习Zookeeper的shell命令。 一、Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互。他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向Zookeeper提交相应的命令。Zookeeper常用的四字命令见图1.1所示。 图 1.1 图1.2是Zookeeper四字命令的一个简单用例。 [root@hadoop ~]# echo ruok|nc localhost 2181 [root@hadoop ~]# zkServer.sh start zoo1.cfg JMX enabled by default Using config: /usr/local/zk/bin/../conf/zoo1.cfg Starting zookeeper ... STARTED [root@hadoop ~]# zkServer.sh start zoo2.cfg JMX enabled by default Using config: /usr/local/zk/bin/../conf/zoo2.cfg Starting zookeeper ... STARTED [root@hadoop ~]

dubbo(2.5.3版本) provider服务运行正常,但ZooKeeper(3.4.11版本)注册中心/dubbo/{接口名}/providers节点无子节点

我的未来我决定 提交于 2019-12-16 22:15:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 概述 具体原因: 因为ZooKeeper数据不一致导致 修复操作: 修改ZooKeeper配置如下,删除ZooKeeper所有数据、重启ZooKeeper后,重启所有dubbo providers/consumers服务。 一段时间后,未出现此类问题。 ZooKeeper配置文件修改为: clientPort=2181 dataDir=/data/zk-data dataLogDir=/data/zk-logs tickTime=5000 initLimit=10 syncLimit=20 maxClientCnxns=60 server.0=zk-0:2888:3888 server.1=zk-1:2888:3888 server.2=zk-2:2888:3888 运行环境: dubbo版本号:2.5.3 ZooKeeper版本号:3.4.11 im-service是dubbo提供方(provider) im-web是dubbo消费方(consumer) 问题场景: 部分dubbo接口调用失败,查看consumer方调用日志: 这种Forbid consumer问题嘛,一般来说也就检查ZooKeeper注册中心中,对应的/providers节点下是否有提供方,如果没有提供方

Zookeeper

佐手、 提交于 2019-12-16 15:04:39
1. Zookeeper 概念简介: Zookeeper 是一个分布式 协调服务;就是为用户的分布式应用程序提供协调服务 A、zookeeper 是为别的分布式程序服务的 B、Zookeeper本身就是一个分布式程序 (只要有半数以上节点存活, zk 就能正常服务) C、Zookeeper 所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务…… D、 虽然说可以提供各种服务,但是 zookeeper 在底层其实只提供了两个功能: 管理 ( 存储,读取 ) 用户程序提交的数据; 并为用户程序提供数据节点监听服务; Zookeeper 集群的角色: Leader 和 follower ( Observer ) 只要集群中有半数以上节点存活,集群就能提供服务 zookeeper 集群机制 半数机制:集群中半数以上机器存活,集群可用。 zookeeper 适合装在 奇数台机器上!!! 安装 1.虚拟机准备 安装到 3 台虚拟机上 安装好JDK 2. 解压 su – hadoop (切换到 hadoop 用户) tar -zxvf zookeeper-3.4.5.tar.gz(解压) 3. 修改环境变量 1 、 su – root( 切换用户到 root) 2 、 vi /etc/profile( 修改文件 ) 3 、添加内容: export