- 博客(116)
- 资源 (29)
- 收藏
- 关注
原创 【商城】canal数据库数据实时同步利器-代码实战干货
场景说明,因电商业务高并发与实时性要求 ,需要实现多库多表数据实时同步到Elasticsearch,并实现其他消息通知功能。实现方式主要是基于业务 trigger 获取增量变更。业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。生产使用Canal版本为1.1.4,MySQL版本为8.x。基于日志增量订阅和消费的业务包括数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处理1、项目说明整
2021-02-01 22:56:09
387
2
原创 【数据平台】之Cassandra大数据利器-大规模数据迁移sstableloader
过去,在Cassandra中批量加载数据一直很困难。尽管Cassandra从一开始就具有BinaryMemtable接口,但是BinaryMemtable难以使用,并且与普通客户端写入相比,吞吐量有了较小的提高。Cassandra 0.8.1引入了解决此问题的新工具: sstableloader使用 sstableloader有关最新信息,请参见 DataStax社区文档。sstableloader 是一种稳定的数据文件处理工具,将已经生成好的数据流式传输到整个群集。它不是简单地将sstables复
2021-01-19 22:22:23
1039
1
原创 【数据平台】之Alluxio内存加速S3文件系统数据利器
Alluxio 是大数据领域数据内存加速利器,是世界上第一个面向基于云的数据分析和人工智能的开源的数据编排技术。 它为数据驱动型应用和存储系统构建提供了桥梁, 将数据从存储层移动到距离数据驱动型应用更近的位置,从而使得数据能够更容易被访问。 这还使得应用程序能够通过一个公共接口连接到许多存储系统。 Alluxio内存至上的层次化架构使得数据的访问速度能比现有方案快几个数量级。在现有大数据生态系统中,Alluxio 位于数据驱动框架或应用(如 Apache Spark、Presto、Tensorflow、A
2021-01-17 22:20:59
1400
原创 【数据平台】之Kafka+Minio数据埋点大数据利器
商城埋点数据,即客户在商城的购买行为的各种浏览数据,是对客户购买行为分析的重要资产。在大数据领域,可以通过收集客户行为数据,分析客户行为规律,进而指导商城各种营销活动制定。例如淘宝和京东展示的各种维度分析报表,可展现客户购买偏好,浏览商品偏好,地域性偏好等;另一个重要应用便是商城“商品推荐”,商城商品推荐便时对客户浏览和购买行为综合分析的结果,在亚马逊“商品推荐”能为企业商城来带40%左右的营收。基于此,对客户行为数据保存就显得至关重要。流程图1、通过kafka实时接收商城端行为(埋点)数据;2、通
2021-01-17 15:59:39
2340
2
原创 【数据平台】之Cassandra大数据利器-代码实战干货I
网上不少采用SpringBoot方式集成cassandra,但这些方式并非官方原生的API直接调用,spring boot体系进行了二次封装,或多或少存在一定的性能损耗,接下来本文将以Cassandra 3.6.x版本为例,阐述如何在生产环境使用官方原生API进行Spring编程。1、POM文件依赖<dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassand
2021-01-17 12:35:19
504
原创 【数据平台】之Cassandra大数据利器
Cassandra特点因Cassandra采用了许多容错机制。由于Cassandra是无主的,类似区块链去中心化设计,所以不存在单点故障。可以做到在不停机情况下滚动升级。这是因为Cassandra可以支持多个节点的临时失效(取决于群集大小),对整个群集的性能影响可以忽略不计。Cassandra提供LOCAL和REMOTE模式,支持多地域容灾。Cassandra允许您将数据复制到其他数据中心,并在多个地域保留多副本。除了作为强大的灾难恢复和业务连续性保障之外,这有助于满足许多监管,离线分析等要求。Cas
2021-01-16 23:12:21
2078
1
原创 【商城】Elasticsearch搜索引擎
Elasticsearch作为商城核心框架,主要应用在商城搜索、商品搜索、订单搜索、店铺搜索等搜索场景,起到支撑核心业务的重要作用。下面以为Elasticsearch 6.x为例搭建一套完整的搜索引擎。系统参数配置(1)打开/etc/security/limits.conf,在文件末尾,修改对应参数soft nofile 65536, 可以适当增大到2倍;hard nofile 65536, 可以适当增大到2倍;(2)配置虚拟内存大小打开/etc/sysctl.conf在文件最后添加一行
2021-01-16 15:38:15
782
2
原创 【商城】canal数据库数据实时同步利器
此处将以Alibaba canal([https://github.com/alibaba/canal])为例,说明Canal的使用,Canal作为数据库数据异步实时同步利器,为分库分表条件下数据一致性维护启到重要作用。流程图Canal可以实时异步监听多Master数据库数据变化,并异步将数据同步到给其他应用,这些应用不仅可以使ES集群,也可以是其他相关应用。配置以canal 1.1.4版本为例,支持mysql最新版本8.x,解压后分别配置如下配置canal.properties文件:(1)c
2021-01-16 14:16:29
393
原创 【商城】redis大厂实战应用场景(一览众山小)
redis数据类型redis数据类型有5种,分别是string、list、set、hash、zset,他们在各自领域里面都有哪些实践“应用场景”呢,请继续看完下面内容。string(字符串)也是我们最常用的数据类型,通常用于将数据转换后存储到到Redis缓存,常用的方法有set和get方法,这里就不做过多介绍。计数器INCR article:readcount:{文章id}Web集群session共享Spring session + redis实现session共享分布式系统全局序列号I
2020-05-23 17:46:43
2057
原创 【商城】redis分布式缓存安全应用(穿透问题)
缓存穿透什么是缓存穿透?缓存里面不存在数据,数据库里面也不存在的数据。新的请求(例如黑客恶意攻击:https://item.jd.com/6729892714444444.html查询一个不存在商品)进来会不断查询数据库,严重可能会导致数据库服务停止。Null值返回解决方案:如果数据库查询不到数据,缓存Null值的对象返回。布隆过滤器显然返回Null值方案存在问题,如果查询编码不存在数据,之后又新增了此编号的数据,将导致此数据永远查不到。布隆过滤器(性能问题不用担心,可以自行查阅资料),例如将商
2020-05-14 17:20:08
271
原创 【商城】redis分布式缓存更新应用(击穿问题)
缓存击穿 什么是缓存击穿?数据库里面数据存在,缓存数据因某种原因不存在,导致大量请求到数据库获取数据现象。这种现象有可能会导致数据库connections数耗尽,严重会导致数据库服务停止。分布式锁解决方案 防止请求穿透到数据库,可以使用分布式锁方式实现,例如查询商品数据; public Product getProductById(Long productId){ log.debug("查询商品信息id:{}", productId); //1、从本地缓存获取
2020-05-14 16:55:52
302
原创 分布式缓存一致性问题方案
方案名称 技术特点 优点 缺点 适用 场景说明 数据实时同步更新 强一致性,更新数据库同时更新缓存,使用缓存工具和AOP实现 数据一致性强,不会出现缓存雪崩问题 代码耦合,运行期耦合 ,影响正常业务 ,增加一致网络开销 银行 适合写操作频繁的细粒度缓存数据,数据一致性要求比较高场景,如:银行业务,证券交易;不适合写操作较少粗粒度数据; 数据准实时更新 准一致性,更新数据库后,异步更新缓存,使用AOP进行封装基于多线程或者MQ实现
2020-05-11 12:31:07
605
原创 【商城】redis分布式多级缓存应用(瓶颈之殇)
缓存发发发你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以
2020-05-11 09:17:18
765
原创 状态机复制 (State Machine Replication)
分区容错如何保证? 在分布式系统设计中,需要遵循CAP理论,如果我们要让一个服务具有容错能力,那么最常用最直接的办法就是让一个服务的多个副本同时运行在不同的节点上。但是,当一个服务的多个副本都在运行的时候,我们如何保证它们的状态都是同步...
2019-05-03 14:21:45
4887
翻译 Nginx反向代理和负载均衡部署
1. 安装1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包;2) 解压后复制到部署目录。 2. 启动和停止NginxNginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。1)
2017-07-21 14:17:21
525
转载 Spring Boot 动态多数据源
摘要: 本文实现案例场景: 某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库。 为了在开发中以最简单的方法使用,本文基于注解和AOP的方法实现,在spring boot框架的项目中,添加本文实现的代码类后,只需要配置好数据源就可以直接通过注解使用,简单方便。本文实现案例场景:某系统除了需要从自
2017-07-20 22:08:12
668
原创 直播 点播服务视频流媒体方案简析
视频流媒体 视频流媒体被广泛应用于视频直播,智能交通,智能办公,社交媒体等行业,视频流媒体的使用极大的方便人们的生活方式,带来了远距离的数字化方案。编码技术MPEG-1MPEG-1是MPEG组织制定的第一个视频和音频有损压缩标准。视频压缩算法于1990年定义完成。1992年底,MPEG-1正式被批准成为国际标准。MPEG-1标准用于数字存储体上动态图
2016-12-02 16:42:06
4145
转载 MVVM 模式优化MVC模式之With ReactiveCocoa
作者:@雷纯锋2011MVVM 是一种软件架构模式,它是 Martin Fowler 的 Presentation Model 的一种变体,最先由微软的架构师 John Gossman 在 2005 年提出,并应用在微软的 WPF 和 Silverlight 软件开发中。MVVM 衍生于 MVC ,是对 MVC 的一种演进,它促进了 UI 代码与业务逻辑的分离。说明:本文将
2016-03-30 10:38:19
744
转载 ASIHTTPRequest框架使用总结系列
对于ASIHTTPRequest框架有过一些介简单绍 ,最新版本下载地址:http://allseeing-i.com/ASIHTTPRequest/ 。 该框架具有如下优点 1.支持将下载数据放在内存和应答http头。 2.容易访问请求和应答http头。 3.支持cookie。 4.支持gzip请求或应答。 5.支持
2016-03-27 21:17:17
939
转载 IOS开发UI篇—懒加载
1.懒加载基本懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其get方法.注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化2.使用懒加载的好处:(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强(2)每个控件的getter方法中分别负责各自的实例化处理,代
2016-03-25 23:54:26
411
原创 Objective-C程序设计 第6版
Objective-C程序设计 第6版,原版,完整版本,下载后大家给点帮助,谢谢! 百度网盘地址: http://pan.baidu.com/s/1numGurZ 密码: b47e
2016-03-23 19:25:16
1492
原创 Java B/S系统的颠覆开发Google AngularJs
Material管理是谷歌管理控制台模板Material设计的启发引导和AngularJS建立,全新的交互式界面,让你轻松开发出现代B/S架构应用程序。特征:谷歌的Material设计Material设计管理模板和登陆页面,2在1强大的布局多色彩方案SASS的CSS使用jQuery嵌套路由国际化支持用Angular
2016-03-12 19:05:55
737
翻译 AngularJS 五大特性(为克服HTML在构建应用上的不足而设计)
AngularJS 是谷歌的一个 JavaScript 框架,旨在简化前端应用程序的开发。如果你在开发单页的应用程序,我敢肯定你已经听说过它。我是 AngularJS 的忠实粉丝,在这篇文章中我将概述五条我为什么这么喜欢它的原因。 #1 良好的应用程序结构 通常情况下,我们编写 JavaScript 没有明确的结构。虽然在编写小应用程序的时候没有问题
2016-03-07 10:38:55
987
翻译 AngularJS
简介 AngularJS是为了克服HTML在构建应用上的不足而设计的。HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了。所以我做了一些工作(你也可以觉得是小花招)来让浏览器做我想要的事。 通常,我们是通过以下技术来解决静态网页技术在构建动态应用上的不足: 类库 - 类库是一些函数的集合,它能帮助你写WEB应用。起主导作用的是你的
2016-03-07 10:30:50
1072
翻译 16. Spring Security 基于表达式的权限控制
基于表达式的权限控制目录1.1 通过表达式控制URL权限1.2 通过表达式控制方法权限1.2.1 使用@PreAuthorize和@PostAuthorize进行访问控制1.2.2 使用@PreFilter和@PostFilter进行过滤1.3 使用hasPermission表达式 Spring Secur
2015-11-29 21:56:58
1232
翻译 15. Spring Security 权限鉴定结构
权限鉴定结构目录1.1 权限1.2 调用前的处理1.2.1 AccessDecisionManager1.2.2 基于投票的AccessDecisionManager实现1.3 调用后的处理1.4 角色的继承 1.1 权限 所有的Authentication实现类都保存了一个Grant
2015-11-29 21:55:37
1026
翻译 14. Spring Security 权限鉴定基础
权限鉴定基础 目录1.1 Spring Security的AOP Advice思想1.2 AbstractSecurityInterceptor1.2.1 ConfigAttribute1.2.2 RunAsManager1.2.3 AfterInvocationManager Spring Security的权限
2015-11-29 21:54:05
883
翻译 13. Spring Security session管理
session管理目录 1.1 检测session超时1.2 concurrency-control1.3 session 固定攻击保护 Spring Security通过http元素下的子元素session-management提供了对Http Session管理的支持。 1.1 检测session超时
2015-11-29 21:52:22
2892
翻译 12. Spring Security Remember-Me功能
Remember-Me功能 目录 1.1 概述1.2 基于简单加密token的方法1.3 基于持久化token的方法1.4 Remember-Me相关接口和实现类1.4.1 TokenBasedRememberMeServices1.4.2 PersistentTokenBasedRememberMeServices
2015-11-29 21:50:49
611
翻译 11. pring Security 匿名认证
匿名认证目录1.1 配置1.2 AuthenticationTrustResolver 对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticationToken存放在SecurityContextHolder中,这就是所谓的匿名认证。这样在以后进行权限认证或者做其它操作时我们就不需要再判断Se
2015-11-29 21:49:06
1032
翻译 9. Spring Security Filter
Filter目录1.1 Filter顺序1.2 添加Filter到FilterChain1.3 DelegatingFilterProxy1.4 FilterChainProxy1.5 Spring Security定义好的核心Filter1.5.1 FilterSecurityInterceptor1.5.2 E
2015-11-29 17:14:44
818
翻译 10. Spring Security 退出登录logout
要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain。当我们指定了http元素的auto-config属性为true时logout定义是会自动配置的,此时我们默认退出登录的URL为“/j_spring_security_logout”,可以通过logout元素的l
2015-11-29 17:12:48
3064
翻译 8. Spring Security intercept-url配置
intercept-url配置目录1.1 指定拦截的url1.2 指定访问权限1.3 指定访问协议1.4 指定请求方法 1.1 指定拦截的url 通过pattern指定当前intercept-url定义应当作用于哪些url。"/**" access="ROLE_USER"/> 1.2 指定访问权限
2015-11-29 17:11:02
8127
翻译 7. Spring Security缓存UserDetails
Spring Security提供了一个实现了可以缓存UserDetails的UserDetailsService实现类,CachingUserDetailsService。该类的构造接收一个用于真正加载UserDetails的UserDetailsService实现类。当需要加载UserDetails时,其首先会从缓存中获取,如果缓存中没有对应的UserDetails存在,则使用持有的UserD
2015-11-29 17:09:14
1705
翻译 6. Spring Security AuthenticationProvider
AuthenticationProvider目录1.1 用户信息从数据库获取1.1.1 使用jdbc-user-service获取1.1.2 直接使用JdbcDaoImpl1.2 PasswordEncoder1.2.1 使用内置的PasswordEncoder1.2.2 使用自定义的PasswordEncoder
2015-11-29 17:07:12
816
翻译 5. Spring Security异常信息本地化
异常信息本地化 Spring Security支持将展现给终端用户看的异常信息本地化,这些信息包括认证失败、访问被拒绝等。而对于展现给开发者看的异常信息和日志信息(如配置错误)则是不能够进行本地化的,它们是以英文硬编码在Spring Security的代码中的。在Spring-Security-core-xxx.jar包的org.springframework.securit
2015-11-29 17:04:54
1583
翻译 4. Spring Security 认证简介
认证简介目录1.1 认证过程1.2 Web应用的认证过程1.2.1 ExceptionTranslationFilter1.2.2 在request之间共享SecurityContext 1.1 认证过程 1、用户使用用户名和密码进行登录。 2、Spring Security将获取到的用户名和密码封装成
2015-11-29 17:02:30
1401
1
翻译 3. Spring Security 核心类简介
核心类简介目录1.1 Authentication1.2 SecurityContextHolder1.3 AuthenticationManager和AuthenticationProvider1.3.1 认证成功后清除凭证1.4 UserDetailsService1.4.1 JdbcDaoImpl1.4.2 I
2015-11-29 17:00:58
726
翻译 2. Spring Security 关于登录
关于登录目录1.1 form-login元素介绍1.1.1 使用自定义登录页面1.1.2 指定登录后的页面1.1.3 指定登录失败后的页面1.2 http-basic 1.1 form-login元素介绍 http元素下的form-login元素是用来定义表单登录信息的。当我们什么属性都不指定的时候Sprin
2015-11-29 16:58:04
657
nfs-utils.tar.gz
2021-07-04
More Exceptional C++
2015-11-30
Essential C++
2015-11-30
Effective C++(有效的C++)
2015-11-30
快速准确搭建好SSH框架开发环境
2012-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅