github

HBase数据同步到ElasticSearch的方案

☆樱花仙子☆ 提交于 2021-02-18 02:18:19
<div id="article_content" class="article_content"> <p><br> </p> <h3>ElasticSearch的River机制</h3> <p>ElasticSearch自身提供了一个River机制,用于同步数据。</p> <p>这里能够找到官方眼下推荐的River:</p> <p><a target="_blank" href="http://www.elasticsearch.org/guide/en/elasticsearch/rivers/current/">http://www.elasticsearch.org/guide/en/elasticsearch/rivers/current/</a><br> </p> <p>可是官方没有提供HBase的River。</p> <p>事实上ES的River很easy,就是一个用户打包好的jar包,ES负责找到一个node,并启动这个River。假设node失效了。会自己主动找另外一个node来启动这个River。</p><p></p> <p></p> <pre code_snippet_id="520284" snippet_file_name="blog_20141115_1_5215483" name="code" class="java">public interface

Neo4j入门之中国电影票房排行浅析

旧城冷巷雨未停 提交于 2021-02-18 01:48:58
什么是Neo4j?   Neo4j是一个高性能的NoSQL图形数据库(Graph Database),它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。   作为图形数据库,Neo4j最让人惊喜的功能就是它可以直观地展示图,也就是节点与节点之间的关系,当然,它还有其它的优势,比如: 很容易表示连接的数据; 检索/遍历/导航更多的连接数据是非常容易和快速的; 能轻松地表示半结构化数据; Neo4j CQL查询语言命令类似于SQL,可读性好,容易学习; 使用简单而强大的数据模型; 不需要复杂的连接来检索连接的/相关的数据。   在本文中,笔者希望能够通过一个简单的例子来展示Neo4j的使用以及它的强大之处,这无疑更适合于初学者,因为笔者也是刚入门。   以下,笔者并不会过多地介绍Neo4j的操作,只是希望读者能对Neo4j的功能有直观的感受,至于教程之类的,可以参考文章最后的参考文献。   下面,让我们进入本次的Neo4j之旅~ 项目展示   由于《流浪地球》的大热以及笔者对此的欣赏,因此,此次的项目为分析中国电影票房排行。我们的数据来自于百度百科,用 爬虫 得到我们需要的数据

万字详解本地缓存之王 Caffeine

和自甴很熟 提交于 2021-02-18 01:40:39
点击上方 Java后端 , 选择 设为星标 优质文章,及时送达 Alben|https://albenw.github.io/posts/a4ae1aa2/ 排版公众号:JavaGuide 概要 Caffeine [1] 是一个高性能,高命中率,低内存占用,near optimal 的本地缓存,简单来说它是 Guava Cache 的优化加强版,有些文章把 Caffeine 称为“新一代的缓存”、“现代缓存之王”。 本文将重点讲解 Caffeine 的高性能设计,以及对应部分的源码分析。 与 Guava Cache 比较 如果你对 Guava Cache 还不理解的话,可以点击 这里 [2] 来看一下我之前写过关于 Guava Cache 的文章。 大家都知道,Spring5 即将放弃掉 Guava Cache 作为缓存机制,而改用 Caffeine 作为新的本地 Cache 的组件,这对于 Caffeine 来说是一个很大的肯定。为什么 Spring 会这样做呢?其实在 Caffeine 的 Benchmarks [3] 里给出了好靓仔的数据,对读和写的场景,还有跟其他几个缓存工具进行了比较,Caffeine 的性能都表现很突出。 使用 Caffeine Caffeine 为了方便大家使用以及从 Guava Cache 切换过来(很有针对性啊~),借鉴了 Guava Cache

【js】走近小程序

半腔热情 提交于 2021-02-18 01:13:58
一、什么是小程序? 基于微信的可以为用户提供一些服务的web项目,利用微信提供的接口可以让所有开发者使用到微信的原生能力,去完成一些之前做不到或者难以做到的事情。 二、小程序开发工具以及语言? 小程序需要用到微信提供的 小程序开发工具 ,​小程序的主要开发语言是 JavaScript 。 三、小程序与普通网页开发的区别? ​网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中。网页开发者可以使用到各种浏览器暴露出来的 DOM API,进行 DOM 选中和操作。而如上文所述,小程序的逻辑层和渲染层是分开的,逻辑层运行在 JSCore 中, 并没有一个完整浏览器对象,因而缺少相关的DOM API和BOM API。 这一区别导致了前端开发非常熟悉的一些库,例如 jQuery、 Zepto 等,在小程序中是无法运行的。同时 JSCore 的环境同 NodeJS 环境也是不尽相同,所以一些 NPM 的包在小程序中也是无法运行的。 四、小程序的代码构成? (1)在我们新建的小程序项目里面会有四种类型的文件。 .json 后缀的 JSON 配置文件 (静态配置信息)       .wxml 后缀的 WXML 模板文件(相当于原生html文件) .wxss 后缀的 WXSS 样式文件(相当于原生css文件)

Kubernetes集群调度器原理剖析及思考

巧了我就是萌 提交于 2021-02-18 00:59:00
简述 云环境或者计算仓库级别(将整个数据中心当做单个计算池)的集群管理系统通常会定义出工作负载的规范,并使用调度器将工作负载放置到集群恰当的位置。好的调度器可以让集群的工作处理更高效,同时提高资源利用率,节省能源开销。 通用调度器,如Kubernetes原生调度器Scheduler实现了根据特定的调度算法和策略将pod调度到指定的计算节点(Node)上。但实际上设计大规模共享集群的调度器并不是一件容易的事情。调度器不仅要了解集群资源的使用和分布情况,还要兼顾任务分配速度和执行效率。过度设计的调度器屏蔽了太多的技术实现,以至于无法按照预期完成调度任务,或导致异常情况的发生,不恰当的调度器的选择同样会降低工作效率,或导致调度任务无法完成。 本文主要从设计原理、代码实现两个层面介绍Kubernetes的调度器以及社区对其的补充加强,同时对业界常用调度器的设计实现进行比较分析。通过本文,读者可了解调度器的来龙去脉,从而为选择甚至设计实现适合实际场景的调度器打下基础。 注明:本文中代码基于v1.11版本Kubernetes进行分析,如有不当之处,欢迎指正! 一、调度器的基本知识 1.1 调度器的定义 通用调度[1]的定义是指基于某种方法将某项任务分配到特定资源以完成相关工作,其中任务可以是虚拟计算元素,如线程、进程或数据流,特定资源一般是指处理器、网络、磁盘等

[Java]LeetCode297. 二叉树的序列化与反序列化 | Serialize and Deserialize Binary Tree

ぃ、小莉子 提交于 2021-02-18 00:43:43
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝( https://www.cnblogs.com/strengthen/ ) ➤GitHub地址: https://github.com/strengthen/LeetCode ➤原文地址: https://www.cnblogs.com/strengthen/p/10693873.html ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。 ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创! ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another computer environment.

CAS单点登录(一):单点登录与CAS理论介绍

吃可爱长大的小学妹 提交于 2021-02-18 00:03:06
一、什么是单点登录(SSO)   单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。   单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 二、web系统如何实现单点登录 目前已经有了成熟的单点登录实现方案,比如CAS,我们只要在web系统中应用单点登录方案CAS即可。(主要涉及到注册登录验证等模块的改动)。 三、什么是CAS   CAS (Central Authentication Service) 是耶鲁 Yale 大学发起的一个java开源项目,旨在为 Web应用系统提供一种可靠的 单点登录 解决方案( Web SSO ), CAS 具有以下特点: 开源的企业级单点登录解决方案; CAS Server 为需要独立部署的 Web 应用----一个独立的Web应用程序(cas.war)。 ; CAS Client 支持非常多的客户端 ( 指单点登录系统中的各个 Web 应用 ) ,包括 Java, .Net, PHP, Perl, 等。   CAS在2004年12月成立Jasig项目,所以也叫JA-SIG CAS。   官网1: https://apereo.github

Kubernetes 编排神器之 Helm

我的未来我决定 提交于 2021-02-17 23:56:47
什么是Kubernetes Helm?为什么要使用Helm? 前言 编写一堆Kubernetes配置文件是一件很麻烦的事情。对于一些容器,我们可能需要10多个yaml文件。维护它们是一个问题,而且在不同的环境中运行或使用相同的文件更是是一个噩梦。 我们可以使用一些 bash 技巧来替换某些值,但这是一个不好的做法。 这就是我们为什么要使用helm。 我应该提到,还有另一个很好的工具 ksonnet ,它以自己的方式进行“相同”操作。 在这篇文章中,我将介绍为什么Helm是Kubernetes应用程序必不可少的要素,将Kubernetes应用程序与Helm打包的过程,以及如何使用Helm部署可能具有的某些复杂应用程序。 为什么要使用helm 我最近在部署的微服务很复杂,我的发布文件目录中有65个以上的Kubernetes配置文件 ... o( ^▽^ )┛)。 主要问题是,我要如何把这个服务部署到多个环境中? 或者如何使用Kubernetes制作CI/CD? 当然做一些shell脚本是一个选择,但是我不是很喜欢这样做。 然后,我开始使用Kubernetes研究CI/CD pipline,发现一些团队正在将Helm集成到该过程中。 我们可以将理解为为像应用程序包那样的应用程序,在其中我们可以进行依赖管理,不同类型的钩子(安装前,升级前,安装后等),并且可以轻松升级或回滚。 安装

JUnit5 快速指南

纵然是瞬间 提交于 2021-02-17 23:50:31
JUnit5 快速指南 version: junit5 <!-- TOC depthFrom:2 depthTo:3 --> 1. 安装 2. JUnit 注解 3. 编写单元测试 3.1. 基本的单元测试类和方法 3.2. 定制测试类和方法的显示名称 3.3. 断言(Assertions) 3.4. 假想(Assumptions) 3.5. 禁用 3.6. 测试条件 3.7. 嵌套测试 3.8. 重复测试 3.9. 参数化测试 4. 引用和引申 <!-- /TOC --> 1. 安装 在 pom 中添加依赖 <properties> <junit.jupiter.version>5.3.2</junit.jupiter.version> </properties> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter

Typora设置图床PicGo,以实现图片自动上传

谁说我不能喝 提交于 2021-02-17 23:06:23
目录 1 问题描述 2 解决方法 2.1 配置Typora 2.2 配置GitHub 2.3 配置PicGo 3 测试 4 可能出现的问题 1 问题描述 Typora是一款非常好用的markdown编辑器,所见即所得,非常适用于写.md文档。 但是在Typora中插入图片与在Word中插入图片不同 。在Word中插入图片时,图片是直接保存在.docx文件中的;而在Typora中插入图片时, 图片和.md文件是分开存储的 。所以造成一个问题是:在一台电脑上编辑好了.md文件(含图片),如果直接发送到另一台电脑,打开文件后, 图片是看不了的 ,因为.md文件和本机上都没有图片。要想正常显示图片,必须在发送.md文件的同时,把图片也打包发了,这非常不方便。所以需要使用 图床工具PicGo (v0.9.84及更新版本开始支持:support upload images via PicGo and custom commands),自动将图片上传到服务器,当另一台电脑打开上述文件时,通过网络可以访问服务器中图片,就可以做到正常显示图片了。所以一个非常重要的前提是,查看.md文件的设备 需要连接网络 ,才可以正常显示图片。 2 解决方法 2.1 配置Typora 文件 —> 偏好设置 —> 图像,再按照下面截图配置: 2.2 配置GitHub 在GitHub建立公共图床,仓库属性设置为