- 博客(48)
- 资源 (2)
- 收藏
- 关注
原创 (二)Flink 读取 Kafka 数据批量写入到 MySQL
一、首先安装 kafka 和 zk(1) zkwget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.1/zookeeper-3.4.1.tar.gztar -zxvfzookeeper-3.4.10.tar.gzcp -R zookeeper-3.4.10 /usr/localcp /usr/local...
2019-08-16 17:43:57 1876
原创 (一) flink简介安装
一、Apache flink 是什么?Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。接下来,我们来介绍一下 Flink 架构中的重要方面。处理无界和有界数据任何类型的数据都可以形成一种事件流。信用卡交易、传感器测量、机器日志、网站或移动应用程序上的用...
2019-08-16 14:52:58 340
转载 (七)Redis数据过期策略详解
本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了Redis会自己回收清理不用的数据吗? 如果能,那如何配置? 如果不能,如何防止数据累加后大量占用存储空间的问题? 之前一直...
2019-08-05 10:45:25 239
转载 (六)Redis缓存穿透,缓存雪崩,缓存击穿
Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。本篇文章,并不是要更加完美的解决这三个问题,也不是要颠覆业界流行的解决方案。而是,...
2019-07-17 09:24:17 172
原创 (五)Redis 实战
1.单数据源(1)pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche...
2019-07-16 09:19:22 144
转载 (四) Redis连接的客户端(connected_clients)数过高或者不减的问题解决方案
最近的项目上使用ServiceStack.Redis上了Redis缓存,其中遇到了很多问题。。 比如说 某一天发现redis做的缓存竟然失效了,然后查了下日志 报错max number of clients reached, sPort: 0, LastCommand:。。首先考虑的是是不是项目中redis使用完后没有dispose..结果查了半天没发现有哪里忘记dispose。。 之后觉...
2019-07-13 14:32:57 3025
转载 (三)Redis pipe
1.首先设置文本 bb.txtSET Key0 Value0SET Key1 Value1...SET KeyN ValueNcat bb.txt | redis-cli -a \#\#\!zggc123456 --pipe批量导入 2. 由于做性能测试,需要往redis中导出千万级的数据。得知redis-cli工具支持pipeline导入可以达到最佳性能。由...
2019-07-13 14:29:10 568
原创 (二) Redis AOF 和 RDB
数据备份1 AOF -----> appendonly yes 2 cp appendonly.aof 到redis的数据库目录也就是配置文件里面的dir关键字 3appendfilename重启服务2 RDB -----> appendonly no 2 cp dump.rdb到redis数据库目录也就是...
2019-07-13 14:23:45 197
原创 (一)Redis安装
单机安装:1.安装tar -zxvf redis-3.2.11.tar.gzcd redis-3.2.11makemake installvi redis.conf#bind 127.0.0.1 #注释掉protected-mode no #保护模式daemonize yes #后台进程启动2.设置密码config set requirepass te...
2019-07-12 10:42:03 844
转载 RocketMQ(三)利用Rocketmq4.2版来实现分布式事务
花了点时间学了RocketMQ,下面是本人的一点点心得,如果觉的写的好就点个赞,但如果你要借鉴话,我还是劝你看下面参考资料里的视频(作者为阿里牛人),虽然他分享的视频是为了推销阿里云的DRDS、ONS(RocketMQ阿里版),只是讲了个大概,没有细说,但是指明一个大的方向,让人非常的受益。借用阿里牛人视频中的ppt:来说明单机事务拆分成分布式事务分解思想(具体自己看视频)。...
2019-06-26 15:03:37 412
转载 RocketMQ(二)事务消费和顺序消费详解
一、RocketMq有3中消息类型1.普通消费2. 顺序消费3.事务消费顺序消费场景在网购的时候,我们需要下单,那么下单需要假如有三个顺序,第一、创建订单 ,第二:订单付款,第三:订单完成。也就是这个三个环节要有顺序,这个订单才有意义。RocketMQ可以保证顺序消费。rocketMq实现顺序消费的原理produce在发送消息的时候,把消息发到同一个队列(queue)中,...
2019-06-21 11:57:50 396
转载 mysql将字符转换成数字
在操作mysql时,经常需要将字符转换成数字,这一步虽然简单,但不常用的话也很容易忘记,现将在网上找到的方法记录如下:1.将字符的数字转成数字,比如 '0' 转成 0 可以直接用加法来实现例如:将pony表中的 d 进行排序,可 d 的定义为 varchar,可以这样解决select * from pony order by (d+0)2.在进行ifnull处理时,比如 ifnull (...
2019-06-20 15:31:53 698
转载 RocketMQ(一)原理与实践
一、顺序消息消息有序指的是可以按照消息的发送顺序来消费。例如:一笔订单产生了 3 条消息,分别是订单创建、订单付款、订单完成。消费时,要按照顺序依次消费才有意义。与此同时多笔订单之间又是可以并行消费的。首先来看如下示例:假如生产者产生了2条消息:M1、M2,要保证这两条消息的顺序,应该怎样做?你脑中想到的可能是这样:只要将消息从一台服务器发往另一台服务器,就会存在网络延迟问题。如上...
2019-06-13 16:02:41 150
转载 算法之红黑树(JAVA)
红黑树的介绍红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。除了具备该特性之外,红黑树还包括许多额外的信息。红黑树的每个节点上都有存储位表示节点的颜色,颜色是红(Red)或黑(Black)。红黑树的特性:(1) 每个...
2019-06-12 12:11:31 186
转载 JDK8废弃永久代(Pergem)替换成元空间(Metaspace)
1.背景2.为什么废弃永久代(PermGen)3.深入理解元空间(Metaspace)4.总结一、背景1.1 永久代(PermGen)在哪里?根据,hotspot jvm结构如下(虚拟机栈和本地方法栈合一起了):上图引自网络,但有个问题:方法区和heap堆都是线程共享的内存区域。关于方法区和永久代:在HotSpot JVM中,这次讨论的永久代,就是上图的方法...
2019-06-12 11:06:47 753 1
转载 Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
首先介绍一些乐观锁与悲观锁: 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。 乐观锁:顾名思义,就是很乐观,每次去拿数...
2018-09-03 11:36:52 163
转载 java 8 Hashmap深入解析 —— put get 方法源码
每个java程序员都知道,HashMap是java中最重要的集合类之一,也是找工作面试中非常常见的考点,因为HashMap的实现本身确实蕴含了很多精妙的代码设计。 对于普通的程序员,可能仅仅能说出HashMap线程不安全,允许key、value为null,以及不要求线程安全时,效率上比HashTable要快一些。稍微好一些的,会对具体实现有过大概了解,能说出HashMap由数组+链表+RBT...
2018-07-19 15:21:58 144
转载 Java8系列之重新认识HashMap
原文出处: 前利简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度...
2018-07-19 14:12:26 182
转载 ConcurrentHashMap总结
2016/10/18 | 分类: 基础技术 | 4 条评论 | 标签: CONCURRENTHASHMAP, 并发分享到:原文出处: Hosee并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但...
2018-07-19 09:48:01 144
转载 深入分析 ThreadLocal 内存泄漏问题
原文出处: 肖汉松前言ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用ThreadLocal,就可能会导致内存泄漏。下面,我们将围绕三个方面来分析ThreadLocal 内存泄漏的问题ThreadLocal 实现原理 ThreadLocal为什么会内存泄漏 Threa...
2018-07-18 17:21:49 188
转载 mysql最大连接数设置
在使用MySQL数据库的时候,经常会遇到这么一个问题,就是“Can not connect to mysql server. Too many connections”-mysql 1040错误,这是因为访问MySQL且还未释放的连接数目已经达到MySQL的上限。通常,mysql的最大连接数默认是100, 最大可以达到16384。 在Windows下常用的有两种方式修改最大连接数。 第一...
2018-07-18 09:37:13 1687
转载 java运行jar 指定单个,多个,目录下的依赖jar
java命令行运行jar里的main类一般运行包含manifest的jar包,可以使用java -jar .jar如果jar里没有 manifest,则可以使用java -cp foo.jar full.package.name.ClassName当main类依赖多个jar时,可以把多个jar打包到一个目录,然后用-Djava.ext.dirs指定该目录,引用依
2017-12-28 09:11:50 9163
原创 flume配置详解
1.source(AVRO)(1)type: source 的类型。可以是 FQCN 或 source 的别名 (仅为 flume 自带的 source)。(2)bind:绑定的 IP 地址 或 主机名,使用 0.0.0.0 绑定机器所有的接口(3)port:绑定的端口(4)threads:infinity 接收从客户端或 Avro Sink 传入的数据的最大工作线程的数量。(
2017-11-18 16:01:09 527
原创 zookeeper+kafka+storm+flume+log4j
1.新建 springboot 项目 springboot-log4j 用于 log4j 直接输出日志到 flume(1)resource下新建 log4j.properties### set log levels ###log4j.rootLogger=INFO, stdout, file, flumelog4j.logger.per.flume=INFO### flume
2017-11-17 09:52:56 634
转载 Flume Source 实例
Flume Source 实例Avro Source监听avro端口,接收外部avro客户端数据流。跟前面的agent的Avro Sink可以组成多层拓扑结构。12345678910111213141516a1.
2017-11-14 15:40:34 359
原创 mysql 主备
1.修改master vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段2.修改 slavevi /etc/my.cnf[mysqld]log-bin=mysql-bin //[必须]启用二
2017-11-13 19:30:44 312
原创 centos7 安装 mysql5.6
1.新开的云服务器,需要检测系统是否自带安装mysql# yum list installed | grep mysql2.如果发现有系统自带mysql,果断这么干# yum -y remove mysql-libs.x86_643.随便在你存放文件的目录下执行,这里解释一下,由于这个mysql的yum源服务器在国外,所以下载速度会比较慢,还好mysql5.6只有79M
2017-11-13 17:16:17 415
原创 zookeeper+kafka+storm+flume 环境搭建
1.环境准备(1) 三台主机192.168.0.66 h1192.168.0.67 h2192.168.0.68 h3(2)66 上执行 :hostnamectl --static set-hostname h167 上执行 :hostnamectl --static set-hostname h268 上执行 :hostnamec
2017-11-13 11:51:02 577
原创 kubernetes redis 数据持久化
1.编写 configmap : redis-config 文件 就是 redis 的配置文件 这里略。(1)创建configmap$ kubectl create configmap example-redis-config --from-file=configmap/redis-config(2)查看configmap 信息$ kubectl get configmap ex
2017-11-13 09:53:54 2150
原创 kubernetes mysql数据持久化
1.编写 tomcat-rc.yml 文件kind: ReplicationControllermetadata: name: my-mysql-v1 namespace: default labels: name: my-mysql version: v1 spec: replicas: 1 selector:
2017-11-13 09:43:09 3220
转载 kubernetes 调度控制原理
1.Controller Manager Controller Manager 作为集群内部的管理控制中心,负责集群内的 Node,Pod 副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)等的管理并执行自动化修复流程,确保集群处于预期的工作状态。比如在出现某个 Node 意外宕机
2017-10-23 13:54:04 318
转载 kubernetes 应用的滚动升级
当集群中的某个服务需要升级时,我们需要停止目前与该服务相关的所有 Pod,然后重新拉取镜像并启动。如果集群规模比较大,则这个工作就变成了一个挑战,而且先全部停止然后逐步升级的方式会导致较长时间的服务不可用。kubernetes 提供了 rolling-update(滚动升级)功能来解决上述问题。 滚动升级通过执行 kubectl rolling-update 命令一键完成,该命令
2017-10-21 15:55:34 1503
转载 kubernetes Pod 调度到指定的 Node
我们知道,kubernetes 的 Scheduler 服务(kube-scheduler进程)负责实现 Pod 的调度,整个调度过程通过执行一系列的算法最终为每个 Pod 计算出一个最佳的目标节点,这一过程是自动完成的,我们无法知道 Pod 最终会被调度到哪个节点上。有时我们可能需要将 Pod 调度到一个指定的 Node 上,此时,我们可以通过 Node 的标签 (Label)和Pod 的 no
2017-10-21 14:02:06 12599 2
转载 kubernetes Pod动态扩容与缩放
在实际生产系统中,我们经常会遇到某个服务需要扩容的场景,也可能会遇到由于资源紧张或者工作负载降低而需要减少服务实例数的场景。此时我们可以利用命令 kubectl scale rc 来完成这些任务。以 redis-slave Rc 为例,已定义的最初副本数为2 ,通过执行下面的命令将 redis-slave RC 控制的 Pod 副本数量从初始的 2 更新为 3: $ kubect
2017-10-21 10:50:15 8695
转载 kubernetes Node的隔离与恢复
在硬件升级、硬件维护等情况下,我们需要将某些Node进行隔离,脱离Kubernetes集群的调度范围。Kubernetes提供了一种机制,既可以将Node纳入调度范围,也可以将Node脱离调度范围。 创建配置文件 unschedule_node.yaml,在spec部分指定 unschedulable为true: apiVersion: V1
2017-10-20 16:55:49 4899
原创 kubernetes 使用NFS挂载共享存储的容器(二)
上一章搭建了简单的nfs系统,这章学习下如何部署。在之前部署tomcat项目那一章下更换yml文件即可。vi tomcat-test-rc.ymlapiVersion: v1kind: ReplicationControllermetadata: name: mywebspec: replicas: 1 selector: app: myweb
2017-10-18 20:05:11 2361
原创 kubernetes 使用NFS挂载共享存储的容器(一)
本次实验使用最简单的方式NFS来配置一个通过挂载共享存储的WEB项目;两台机器:kubernetes:192,168.0.199nfs: 192.168.0.218 由于kubernetes还是之前的实验机器,所以就直接弄好NFS服务器先;nfs服务器操作: yum install rpcbind nfs-utils -y mkdir -p /data/www-data
2017-10-18 19:59:11 2651
转载 Kubernetes 1.5集成heapster
Heapster是kubernetes集群监控工具。在1.2的时候,kubernetes的监控需要在node节点上运行cAdvisor作为agent收集本机和容器的资源数据,包括cpu、内存、网络、文件系统等。在新版的kubernetes中,cAdvisor被集成到kubelet中。通过netstat可以查看到kubelet新开了一个4194的端口,这就是cAdvisor监听的端口,现在我们然后可
2017-10-18 15:45:35 429
转载 Kubernetes应用健康检查(二)
本文基于kubernetes 1.5.2版本编写K8S的应用程序健康检查分为livenessProbe和readinessProbe,两者相似,但两者存在着一些区别。livenessProbe在服务运行过程中检查应用程序是否运行正常,不正常将杀掉进程;而readness Probe是用于检测应用程序启动完成后是否准备好对外提供服务,不正常继续检测,直到返回成功为止。li
2017-10-18 09:47:56 6726
转载 Kubernetes应用健康检查(一)
在实际生产环境中,想要使得开发的应用程序完全没有bug,在任何时候都运行正常,几乎 是不可能的任务。因此,我们需要一套管理系统,来对用户的应用程序执行周期性的健康检查和修复操作。这套管理系统必须运行在应用程序之外,这一点非常重要一一如果它是应用程序的一部分,极有可能会和应用程序一起崩溃。因此,在Kubernetes中,系统和应用程序的健康检查是由Kubelet来完成的。1、进程级健康检查
2017-10-18 09:46:44 1373
lucene实战
2016-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人