Gitee

Flink 系例 之 TableAPI & SQL 与 MYSQL 数据查询

别来无恙 提交于 2021-01-30 01:17:07
使用Tbale&SQL与Flink JDBC连接器从MYSQL数据库表中SELECT选取数据。 示例环境 java .version : 1 .8 .x flink .version : 1 .11 .1 kafka :2 .11 示例数据源 (项目码云下载) Flink 系例 之 搭建开发环境与数据 示例模块 (pom.xml) Flink 系例 之 TableAPI & SQL 与 示例模块 SelectToMysql.java package com.flink.examples.mysql; import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.EnvironmentSettings; import org.apache.flink.table.api.Table; import org.apache.flink.table.api.bridge.java

Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....

我们两清 提交于 2021-01-29 10:35:19
越努力,越幸运, 本文已收藏在Gitee中 JavaCommunity , 里面有面试分享、源码分析系列文章,欢迎收藏,点赞 https://gitee.com/JavaCommunity/JavaCommunity 在实际的工作项目中, 缓存成为高并发、高性能架构的关键组件 ,那么Redis为什么可以作为缓存使用呢?首先可以作为缓存的两个主要特征: 在分层系统中处于内存/CPU具有访问性能良好, 缓存数据饱和,有良好的数据淘汰机制 由于Redis 天然就具有这两个特征,Redis基于内存操作的,且其具有完善的数据淘汰机制,十分适合作为缓存组件。 其中,基于内存操作,容量可以为32-96GB,且操作时间平均为100ns,操作效率高。而且数据淘汰机制众多,在Redis 4.0 后就有8种了促使Redis作为缓存可以适用很多场景。 那Redis缓存为什么需要数据淘汰机制呢?有哪8种数据淘汰机制呢? 数据淘汰机制 Redis缓存基于内存实现的,则其缓存其容量是有限的,当出现缓存被写满的情况,那么这时Redis该如何处理呢? Redis对于缓存被写满的情况,Redis就需要缓存数据淘汰机制,通过一定淘汰规则将一些数据刷选出来删除,让缓存服务可再使用。那么Redis使用哪些淘汰策略进行刷选删除数据? 在Redis 4.0 之后,Redis 缓存淘汰策略6+2种,包括分成三大类: 不淘汰数据

一致性协议与Raft算法

北城以北 提交于 2021-01-29 05:36:00
CAP理论 CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中: 一致性( C onsistency) 可用性( A vailability) 分区容错性( P artition tolerance) 对于一个分布式系统来说,上述三个特性不能同时兼得,分为CP和AP的系统。例如银行必须是CP。 一致性协议 分为两种: 弱一致性(最终一致性) 强一致性 弱一致性,也称为最终一致性,也就是说各个节点不会立即保证系统同步,属于AP范畴,典型的应用如DNS域名解析服务。 强一致性,表示各个节点的数据必须保持一致,属于CP,典型的应用有Zookeeper。 通常所说的一致性协议算法,指的其实就是 强一致性算法 ,这些算法都是由Lamport提出的 Paxos算法 演变出来。Paxos算法有三个变种,base paxos,multi paxos和fast paxos。其他一致性算法又是由 multi paxos的简化版 演变而来,主要 Raft 和 ZAB 。 强一致性协议的内容 强一致性协议主要包括的内容可以概括为: 选主机制 数据一致性 1)写数据 2)提交数据 saft容错策略 Paxos Paxos本身只是一个理论,并没有落地实现,paxos协议中,存在较多的角色,包括议案发起人,议员和记录员等。 base paxos,是通过 议案编号大小 来进行的

Flink 源码阅读环境搭建并调试 Flink-Clients 模块

爱⌒轻易说出口 提交于 2021-01-29 01:41:15
本文大纲 一、Flink 官方文档这么全面,为什么还要读 Flink 源码 读文档和读源码的目的是不一样的,就拿 Apache Flink 这个项目来说,如果你想知道 Flink 的使用功能,设计思想,实现原理,看官方文档就足够了;如果你想了解的就是具体细节,比如说 StreamGraph 是怎么生成的或者是 Exactly Once 究竟如何实现的,那么就需要去阅读源码了。 关键是看你的目的是什么,如果你想了解思想,经验等看文档就够了,因为文档是人写给人的;如果你想了解具体细节,那应该去看源码,因为源码是人写给机器的,源码里有到底做了什么这些事情。 那么我写这篇的文章目的是什么?我的目的是,万一你已经在生产上身经百战了,对 Flink 的原理都把握住了,那么看源码是对你来说最好的进阶方式,所以我为你准备了这篇搭建环境的教程,为你节约宝贵的时间陪家人陪孩子不香吗? 二、Flink 源码几百万行,该如何下手 通常对于阅读源码这件事情来说是有方法论可循的。 1、首先得具备前提条件 相关语言和基础技术知识。比如 Java,Maven,Git,设计模式等等。如果你只会 C++,哪天心血来潮去阅读 Flink 源码,那是不现实的; 开源项目的功能。需要知道这个项目是为了解决什么问题,完成什么功能,有哪些特性,如何启动,有哪些配置项。先把这个项目跑起来,能运行简单的 Demo; 相关的文档

fastmybatis编写分表插件

那年仲夏 提交于 2021-01-28 17:49:31
fastmybatis 支持原生的插件,将写好的插件配置到mybatis配置文件中即可 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <plugins> <plugin interceptor="xxxxx.MyInterceptor" /> </plugins> </configuration> 这里演示编写一个分表插件 假设有4张分表,user_log0~3,记录用户的日志情况 user_log0 user_log1 user_log2 user_log3 现在需要动态查询指定到某一张表 首先生成对应的实体类,指定一张表生成,不用全部生成 /** * 表名:user_logX * %index% 占位符 */ @Table(name = "user_log%index%") public class UserLog { ... } 注意 %index% 占位符 Mapper不变 public interface UserLogMapper extends CrudMapper

EventMesh:微众银行开源的新型云原生事件驱动架构实践

二次信任 提交于 2021-01-28 09:18:42
前言 2020 年微众银行在 GitHub 上正式开源了 EventMesh。 EventMesh 和 DeFiBus一起作为微众银行已经开源的项目,目前支撑了微众银行每天亿级的金融交易。 作为一个动态插件式云原生基础服务,EventMesh 提供了灵活,可靠和快速的事件分发与处理,并且可进行管理。本篇文章将围绕 EventMesh 起源及原理等方面进行介绍,并结合微众银行的实践经验带领大家一起探索事件驱动架构。 01 什么是事件驱动架构 近年来,随着微服务、云原生和 Serverless 概念的普及以及容器化技术的发展,事件驱动也再次成为热点,引起IT界广泛的关注。事件驱动架构是一种用于设计应用的软件架构和模型。对于事件驱动系统而言,事件的捕获、通信、处理和持久保留是解决方案的核心结构。事件驱动架构可以最大程度减少耦合度,很好地扩展与适配不同类型的服务组件,因此是现代化分布式应用架构的理想之选。 解耦 基于这种松耦合,微服务可以用不同的语言实现。解耦后的微服务能够轻松地在网络上相互独立地扩展,通过动态添加或删除事件生产者和消费者来修改他们的系统,而不需要更改任何微服务中的任何逻辑。 基于推送通知的消息传输机制 事件驱动的体系结构中,客户端无需轮询就可以接收更新,事件在到达事件存储后就会通知给客户端,客户端可以随时接收更新,这对于动态数据转换、分析和数据科学处理非常有用。

推荐一款基于 Java 的身份证号码识别系统

牧云@^-^@ 提交于 2021-01-26 09:41:33
点击▲关注 “ 爪哇妹 ” 给公众号标星置顶 更多摄影技巧 第一时间直达 大家好,我是阿逛! 最近发现一个有趣的项目。 这个 项目是通过学习https://gitee.com/nbsl/idCardCv 后整合 tess4j,不需要经过训练直接使用的,当然,你也可以进行训练后进行使用。 该项目修改原有的需要安装 opencv 的过程,全部使用 javaccp 技术重构,通过 javaccp 引入需要的 c++ 库进行开发。不需要安装 opencv 新增的了前端控制识别区域的功能,新增了后端识别后验证 ,页面样式主要适应 paid,重新修改了后面的识别过程,用户 opencv 进行图片优化和区域 选择,使用 tess4j 进行数字和 x 的识别 配合样式中的区域在后台裁剪相关区域图片 /idCardCv/src/main/resources/static/js/plugins/cropper/cropper.css 身份证号码识别 请求地址 http://localhost:8080/idCard/index 它基于 openCV 开源库。这意味着你可以获取全部源代码,并且移植到 opencv 支持的所有平台。它是基于 java 开发。它的识别率较高。图片清晰情况下,号码检测与识别准确率在90%以上。 Required Software 本版本在以下平台测试通过: windows7

想学AI开发很简单:只要你会复制粘贴

我怕爱的太早我们不能终老 提交于 2021-01-26 02:46:18
摘要: 本次实践基于 mobilenetV2 实现猫狗图像分类,贯穿了数据集获取及处理、预训练模型微调及迁移、端侧部署及推理等环节和知识点,体会到了 MindSpore 简单的开发体验和全场景快速部署的魅力。 startTime: 2021年1月23日00:43:22 endTime: 2021年1月23日11:34:44 (包含学习、睡觉、吃饭、爬坑、水文……的时间) 了解MindSpore开源生态 发现一个小秘密。 github 上多三个仓库,是什么呢? 此处应是 github 过滤的 bug ,实际上mindspore-ai 有 15 个仓库, 比 gitee 多出来的三个是: mindspore-21-days-tutorials、 mail_templates、 infrastructure 别看这 3 个不起眼的仓库,在社区建设方面却大有作为。比如, mindspore-21-days-tutorials 是我们之前参加 21 天实战营的参考代码和指导文档,多么宝贵的学习资料;另外两个是 MindSpore 的开源基础建设,其中 infrastructure 包含了用于配置 Mindspore 社区的所有必需 Dockerfile 和 YAML 文件,并借助 Github 的 Action 定时自动同步 Gitee 的代码到 Github 。 训练时长截图 手机识别截图

究极全面炼丹教程,使用PaddleOCR并自己训练模型,太上老君看了都说好

筅森魡賤 提交于 2021-01-25 11:05:29
使用PaddleOCR,训练自己的模型 前言______PaddleOcr的安装与准备工作 资料准备 1. 下载icdar2015图片集 2. 下载icdar2015数据集配套的标注文件 3.组织数据集路径 4.下载预训练模型 5.组织预训练模型路径 6.修改配置文件 ~~设置完成,开始训练~~ 到了紧张刺激的DEBUG环节才对 如何制作自己的数据集? 模型评估与模型检查 ps:为方便读者文章中需要用到的文件均使用我的网盘分享下载,同时也会给出官网下载地址 前言______PaddleOcr的安装与准备工作 1.PaddleOcr相关组件安装我在上一个博客中已经介绍完毕→ PaddleOcr安装与使用全程指南 ←点击跳转 2.下载PaddleOcr官方文件包, https://kyc592.lanzous.com/i5C7Gkojm7c 密码:kyc 或官网下载地址:https://gitee.com/paddlepaddle/PaddleOCR 然后解压到项目文件夹的根目录下。 一定确保按照前一篇博客操作完毕,Paddleocr可以正常运行,尽量减少待会出现的极 其 繁 重的debug工作。 至此完成准备工作。 资料准备 训练自己的模型,需要的资料有: ①训练用的图片集 ②测试用的图片集 ③前面两个图片集配套的标注文件 ④预训练模型 1. 下载icdar2015图片集 演示采用的

中间件:ElasticSearch组件RestHighLevelClient用法详解

心不动则不痛 提交于 2021-01-25 10:09:34
本文源码: GitHub·点这里 || GitEE·点这里 一、基础API简介 1、RestHighLevelClient RestHighLevelClient的API作为ElasticSearch备受推荐的客户端组件,其封装系统操作ES的方法,包括索引结构管理,数据增删改查管理,常用查询方法,并且可以结合原生ES查询原生语法,功能十分强大。 在使用RestHighLevelClient的语法时,通常涉及上面几个方面,在掌握基础用法之上可以根据业务特点进行一些自定义封装,这样可以更优雅的解决业务需求。 2、核心依赖 使用RestHighLevelClient需要依赖 rest-high-level-client 包,和ES相关基础依赖。 <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-client</artifactId> </dependency> <dependency> <groupId>org.elasticsearch.client<