ZK

EntityManager is null

巧了我就是萌 提交于 2021-02-19 08:08:12
问题 I am new to EJB, creating an application for fun/learning EJB following is the code. @Entity @Table(name = "PERSON", schema = "experiment") @NamedQuery(name = "Person.fetchAllPerson" , query = "select p from Person p") public class Person implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private Long id; @Column(name = "name", length = 500) private String name; @Column(name = "age") private

HBase的使用

青春壹個敷衍的年華 提交于 2021-02-15 01:55:43
前言 HBase是一个高可靠,高性能,面向列,可伸缩的分布式存储系统,适用于结构化的存储,底层依赖于Hadoop的HDSF,利用HBase可以在廉价PC server上搭建起大规模结构化存储集群。HBase被广泛应用于大数据存储解决方案中。 HBase 特点 HBase优点: 列可以动态增加,列为空不会存储数据,节省存储空间 自动切分数据,是的数据存储具有水平扩展性 可以提供高并发读写操作的支持 HBase缺点: 不支持条件查询,只支持按照Row Key来查询 不适合传统的事务处理或关联分析,不支持复杂查询 如果应用中的数据每行结构都有差别,可以适用于HBase存储松散数据。可以动态增加列,如果列为空不会存储数据,如果提供的数据存在一个主键,可以依靠HBase的rowkey提供高效查询。 HBase使用场景 卖家操作日志 用来记录商家操作的日志系统,保证商家可以精确查询自己各种操作。卖家无时无刻不再操作,所以卖家操作日志具有数据量大,实时性强,增多查少特点。 最初的设计是将操作日志放到ES中,操作日志数据量大,当时ES资源有限,所以将最近三个月的数据存储到ES中,而长期数据存储使用HBase进行。 消息日志存储 消息日志用来进行全链路追踪及消息的统计分析,每天有几千万消息量。消息追踪要求实时性,多维度精确查询,将最近一周消息日志存储在ES中,在定期将HBase中数据倒入数据集市中

缓存击穿

血红的双手。 提交于 2021-02-12 08:26:08
概念 缓存的key过期,导致查询该key的大量请求打到数据库上,导致数据库压力增大。 解决方案 一、单实例场景下应用内加锁 对于当应用的场景,只有一个实例,只需要在应用内对查询数据库的操作加锁,保证同一时刻只有一个线程能够进入到该代码块中,这样可以将大并发的场景在应用内控制变成串行访问,减轻对数据存储层的压力,进入该代码块的线程查询完db后将数据写入到缓存中,后续的其他线程再查询缓存就有数据,不需要再查询db了。 二、分布式场景下,使用分布式锁 分布式锁,其实就是将单实例应用内的锁,转换成多应用共享锁,实现的方案网上也很多,通过zk,redis都能实现,我们团队中目前是使用redis来实现分布式锁。 来源: oschina 链接: https://my.oschina.net/u/1381995/blog/3133543

ZooKeeper的安装与部署

…衆ロ難τιáo~ 提交于 2021-01-30 08:38:49
本文讲述如何安装和部署ZooKeeper。 一、系统要求 ZooKeeper可以运行在多种系统平台上面,表1展示了zk支持的系统平台,以及在该平台上是否支持开发环境或者生产环境。 表1:ZooKeeper支持的运行平台 系统 开发环境 生产环境 Linux 支持 支持 Solaris 支持 支持 FreeBSD 支持 支持 Windows 支持 不支持 MacOS 支持 不支持 二、下载ZooKeeper是用Java编写的,运行在Java环境上,因此,在部署zk的机器上需要安装Java运行环境。为了正常运行zk,我们需要JRE1.6或者以上的版本。 对于集群模式下的ZooKeeper部署,3个ZooKeeper服务进程是建议的最小进程数量,而且不同的服务进程建议部署在不同的物理机器上面,以减少机器宕机带来的风险,以实现ZooKeeper集群的高可用。 ZooKeeper对于机器的硬件配置没有太大的要求。例如,在Yahoo!内部,ZooKeeper部署的机器其配置通常如下:双核处理器,2GB内存,80GB硬盘。 可以从 https://zookeeper.apache.org/releases.html 下载ZooKeeper,目前最新的稳定版本为 3.4.8 版本,用户可以自行选择一个速度较快的镜像来下载即可。 三、目录 下载并解压ZooKeeper软件压缩包后

感觉自己不会的东西太多了,不知道如何下手?

对着背影说爱祢 提交于 2020-12-16 10:56:51
GitHub 8.8k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 8.8k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 8.8k Star 的Java工程师成神之路 ,真的确定不来了解一下吗? 如果让我统计下,粉丝问我做多的问题是什么,这个问题肯定可以排前5,问出这个问题的朋友们遍布各个年龄段。 实话说,这个问题同样也困扰过我,大概就是我刚毕业的第一年。 那一年,刚刚离开校园,来到阿里,那时候就感觉自己好像什么都不会,好像很多东西都要学,不知道哪个是重点,不知道该如何下手。 那段时间我也像个无头苍蝇一样尝试过很多办法。 刚开始疯狂买书,《Java编程思想》、《Effective Java》、《深入理解Java虚拟机》等等。 然后想着自己撸一个项目,于是到github上找了很多开源项目,想着可以自己写一遍。刚开始想写个JUnit、然后想着写个SSH的项目,接着考虑自己写个Dubbo框架。 甚至考虑过去报个班,不瞒大家说,我一个阿里的程序员,刚毕业的时候竟然咨询过达内。 总之吧,做过很多尝试。现在我知道了,这就是焦虑。 焦虑是好事 首先,如果你有这种心态,那么完全不要慌。这很正常。 而且,我认为这未尝不是一件好事儿! 我当时之所以像个无头苍蝇一样,主要是因为我想让自己变的刚好。所以,我相信,那些问过我类似问题的他们,也一样。

亲 , Zookeeper了解一下 : 概述

自作多情 提交于 2020-05-04 00:18:58
在学习的过程中,我们总需要一个来自灵魂的拷问: 为什么? 为什么会产生Zookeeper 这个问题有深度,那要从五百万年说起,在遥远的塞伯坦星球..... 扯远了... 在遥远在单机单服务的时代 , 想要扩展服务 , 只能增加硬件配置 . 现在看来 ,有以下问题: 硬件贵 (有钱的老板也能接受) 扩展麻烦 (在还没有实时扩展的云服务时,加硬件就意味着宕机) 没有容错 (一旦生产异常,服务就挂了,灾难) 这时候,分布式应运而生,将业务拆分开来,比如:仓库,订单,支付等等,各管各的 , 风险拆分, 比如: 订单服务挂了,不影响仓库和支付. 这是分布式的初始模式, 风险少了, 再用个Nginx做个代理,集群化.然后似乎大概也许Mybe可以 浪里个浪了 ~~ 当项目越来越大,模块越来越多.又来问题了. 一开始的服务拆分并不一定很理想, 再加后期业务迭代, 可能产生很多个模块,各模块间的调用混乱 , 一条业务线中不知道串了多少个模块. 下图参考下: T_T 当你想了解一条线的时候,心里可不止一万个那啥... 那么急需,迫切的需要一个可以把这个东西治理一下的工具. buling~ buling ~ zookeeper来啦 zookeeper解决了哪些问题 先来感受下使用zookeeper后的赶脚 啊.kimoji... 概念 Zookeeper是一个高性能的分布式系统的协调服务

spring boot集成zookeeper注册中心

柔情痞子 提交于 2020-04-16 21:23:05
【推荐阅读】微服务还能火多久?>>> ZooKeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等 ZooKeeper是一个树形结构的目录服务,支持变更推送 在ZooKeeper中,节点分为两类:   机器节点:     指构成集群的机器   数据节点ZNode:     指数据模型中的数据单元       ZooKeeper将所有数据存储在内存中,数据模型是一棵树(ZNode Tree),由斜杠(/)进行分割的路径,就是一个ZNode,例如/services/customer     每个ZNode上都会保存自己的数据内容,同时还会保存一系列属性信息     Znode可分为:       持久节点:指一旦这个ZNode被创建了,除非主动进行ZNode的移除操作,否则这个ZNode将一直保存在ZooKeeper上       临时节点:它的生命周期和客户端会话绑定,一旦客户端会话失效,那么这个客户端创建的所有临时节点都会被移除 1.docker安装 docker pull zookeeper: 3.5 2.启动 docker run --name zookeeper -p 2181 : 2181 -d zookeeper: 3.5 3

使用redis作为消息队列的用法

倖福魔咒の 提交于 2020-04-16 08:03:41
【推荐阅读】微服务还能火多久?>>> 背景 最近项目有个需求需要动态更新规则,当时脑中想到的第一个方案是利用zk的监听机制,管理人员更新完规则将状态写入zk,集群中的机器监听zk的状态,当有状态变更后,集群中的机器开始拉取最新的配置。但由于公司技术选型,没有专门搭建zk集群,因此也不可能为这一个小需求去搭建zk集群。图为使用zk监听状态变化的流程。 最后只好退而求其次,想到了使用redis的队列来做规则的更新 消息队列 首先做简单的引入。 队列(来自百度百科):是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 消息队列(来自百度百科):是在消息的传输过程中保存消息的容器。 从队列和消息队列的定义看来,看不出什么相似之处。但我理解它们的作用是相似的,只是使用环境不同。队列和消息队列 本质上都可以用于解决“生产者”和“消费者”问题,在二者这间建立桥梁,it中专业术语是对“生产者”和“消费者”进行解耦。可以动态的通过调整“生产者”和“消费者”线程数或服务器实例数,在正常情况使消费和生产到达一个平衡;在高峰情况下(生产者大于消费者)可以保护消费者不被拖垮的同时,还可以对把积压的数据保存下来,消费者可以延迟消费这些数据进行处理。 队列

Zookeeper 都有哪些使用场景?

一个人想着一个人 提交于 2020-04-15 21:27:13
【推荐阅读】微服务还能火多久?>>> 面试官心理分析 现在聊的 topic 是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了。那么他可能开始要跟你聊分布式相关的其它问题了。 分布式锁这个东西,很常用的,你做 Java系统开发,分布式系统,可能会有一些场景会用到。最常用的分布式锁就是基于 zookeeper 来实现的。 其实说实话,问这个问题,一般就是看看你是否了解 zookeeper,因为 zk 是分布式系统中很常见的一个基础系统。而且问的话常问的就是说 zk 的使用场景是什么?看你知道不知道一些基本的使用场景。但是其实 zk 挖深了自然是可以问的很深很深的。 面试题剖析 大致来说,zk 的使用场景如下,我就举几个简单的,大家能说几个就好了: 分布式协调 分布式锁 元数据/配置信息管理 HA高可用性 分布式协调 这个其实是 zk 很经典的一个用法,简单来说,就好比,你 A 系统发送个请求到 mq,然后 B 系统消息消费之后处理了。那 A 系统如何知道 B 系统的处理结果?用 zk 就可以实现分布式系统之间的协调工作。A 系统发送请求之后可以在 zk 上对某个节点的值注册个监听器,一旦 B 系统处理完了就修改 zk 那个节点的值,A 立马就可以收到通知,完美解决。 <center>zookeeper

zookeeper单机版安装步骤

非 Y 不嫁゛ 提交于 2020-04-14 01:09:55
【今日推荐】:为什么一到面试就懵逼!>>> 在安装好jdk的前提下, 1. 上传zookeeper 安装包到linux中/usr/local/temp 中(目录随意,对安装无影响) 2. 解压zookeeper压缩包 # tar zxvf /usr/local/temp/zookeeper-3.4.8.tar.gz 3. 复制zookeeper解压后的文件夹到/usr/local下并起名为zookpper(赋值后名称任意,对安装无影响) # cp -r /usr/local/temp/zookeeper-3.4.8 /usr/local/zookeeper 4. 进入到zookeeper文件夹中 # cd /usr/local/zookeeper 5. 在zookeeper中新建data文件夹,做为zookeeper数据存储文件夹 # mkdir data 6. 进入到conf文件夹 # cd conf 7. 复制zoo_sample.cfg,并给新起名的zoo.cfg #cp zoo_sample.cfg zoo.cfg 8. 修改zoo.cfg中dataDir属性值为新建data文件夹的路径 # vim zoo.cfg 修改后的效果 9. 进入到zookeeper/bin文件夹,使用zkServer.sh启动zookeeper # cd ../bin # ./zkServer