- 博客(294)
- 资源 (23)
- 问答 (7)
- 收藏
- 关注
转载 几种常见的分布式事务方案
转载自:https://www.cnblogs.com/jiangyu666/p/8522547.html1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方...
2019-07-10 10:37:29 801
原创 seata分布式事务原理解释,AT模式简介
seata是阿里开源的一个分布式事务框架,能够让大家在操作分布式事务时,像操作本地事务一样简单。一个注解搞定分布式事务。有些地方官网文档写的可能比较难以理解,这里用较为简单的方式来描述一下。快速入门譬如你有两个微服务,一个是库存模块StorageService,一个是订单模块OrderService,主业务是用户下单,然后需要分别调用上面的两个服务,完成减库存、用户扣款和下单操作。由于...
2019-07-09 20:16:44 32679 15
原创 部署在docker里的java程序获取真实的用户ip地址
目前我们的服务都是全部docker化,网关zuul和各微服务都部署在docker里,构成了集群。用户请求全部到HaProxy,由HaProxy转发到zuul,再由zuul分发给各微服务。那么我们在做黑名单,或者对ip进行限流时,需要获取用户的真实ip。见代码:/** * 获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了...
2019-07-04 17:34:35 13324 6
原创 zuul集成Sentinel,使用zookeeper完成动态规则限流
上一篇做了简单的zuul集成Sentinel,是在zuul代码中直接写的rule规则,无法完成动态变化的功能。那么和普通的实例限流一样,zuul的限流也支持动态的。话不多说,直接上代码,在pom中,把我注释掉的部分给放开。还是在原来的config类里加上这一个方法private void initZookeeperApis() { final String r...
2019-07-03 17:55:57 2476 2
原创 zuul集成Sentinel,完成对path映射的限流
前面我们讲过了对单体应用的Sentinel限流,以及使用zookeeper对规则的持久化。通过前面的工作,我们可以完成单个实例的细粒度的限流、熔断操作。譬如有一个服务User,在分布式环境下,开启了多个实例,那么每个实例都可以获得如每秒限制10个登录的限流功能。但是有些场景下,我们想要另外一种限流方式,譬如在网关zuul层,想限制对User服务的限流,而不去关心具体它有多少个实例。这时,就需要...
2019-07-03 17:18:58 3908 9
转载 InnoDB一棵B+树可以存放多少行数据?
转载自:https://mp.weixin.qq.com/s/xUJp62fFXC3_AJvAqQ0jZw一个问题?InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位...
2019-07-03 10:20:40 2659 1
原创 Springboot使用Sentinel限流,集成zookeeper完成规则的持久化
上一篇简单介绍了sentinel限流的基本配置和使用,这一篇我们来稍微深入一点,看看如何将zookeeper继承进来,用以保存添加的流控规则。上一篇中我们启动了dashboard.jar,然后在客户端中指定了dashboard的地址。之后启动项目,随便访问个接口,之后就能在dashboard的界面上看到相应的请求了,并且能在控制台上添加一些规则,保存后客户端就能生效了。基于内存的推...
2019-07-02 16:25:58 6639 7
转载 Redis 内存使用优化与存储
转载自:https://www.cnblogs.com/_popc/p/5968683.htmlRedis 常用数据类型Redis 最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下 Redis 内部内存管理中是如何描述这些不同数据类型的:...
2019-06-20 17:08:44 421
转载 Redis百亿级Key存储方案
转自:https://www.cnblogs.com/colorfulkoala/p/5783556.html1 需求背景该应用场景为DMP缓存存储需求,DMP需要管理非常多的第三方id数据,其中包括各媒体cookie与自身cookie(以下统称supperid)的mapping关系,还包括了supperid的人口标签、移动端id(主要是idfa和imei)的人口标签,以及一些黑名单id、...
2019-06-20 10:57:58 1206
转载 如何做到“恰好一次”地传递数十亿条消息,结合kafka和rocksDB
引用原文:Delivering Billions of Messages Exactly Once作者:Amir Abu Shareb翻译:雁惊寒译者注:在分布式领域中存在着三种类型的消息投递语义,分别是:最多一次(at-most-once)、至少一次(at-least-once)和恰好一次(exactly-once)。本文作者介绍了一个利用Kafka和RocksDB来构建的“恰好...
2019-06-20 09:57:50 1497
转载 es 在数据量很大的情况下(数十亿级别)如何提高查询效率?
转载自:https://zhuanlan.zhihu.com/p/60458049面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下5~10s,坑爹了。第一次搜索...
2019-06-20 07:27:07 6931 3
原创 详解Jpa动态复杂条件查询,查询指定字段、并包括sum、count、avg等数学运算,包括groupBy分组
Jpa是我一直推荐在Springboot及微服务项目中使用的数据库框架,并由于官方的并不是十分友好和易用的api,导致很多人使用起来并不方便,下面就来展示一下我对api进行了封装后的代码。大大减轻了使用难度。效果展示首先我们直接来看最终的结果:譬如有个entity叫PtActivity,它有一个Repository。public interface PtActivityRepos...
2019-05-31 18:39:50 27384 18
原创 axios和Springboot项目交互时跨域处理
跨域本身是个很简单的问题,到处都能找到相关的后台配置教程。多数都是如下,定义个filter,再把filter注册一下就好了。public class CorsFilter implements Filter { @Override public void doFilter(ServletRequest httpRequest, ServletResponse res, Fi...
2019-05-27 20:40:31 1963
原创 Springboot分别使用乐观锁和分布式锁(基于redisson)完成高并发防超卖
在电商中经常会有防超卖的需求,本质上是对一条数据的多线程并发情况下的数据安全性进行控制。譬如一个商品goods,库存是100,在多线程都去读取修改的情况下,会产生数据错乱。不加锁的情况我们来看一个简单的例子,有个goods表,里面有个int型字段amount。我们用多线程来频繁修改amount的值,看看结果。 @Transactional(rollbackFor = Except...
2019-05-10 15:11:17 16874 35
转载 SpringBoot 实现JPA的save方法不更新null属性
转载自:https://www.jianshu.com/p/4931fbc52ea1直接调用原生Save方法会导致null属性覆盖到数据库,使用起来十分不方便。本文提供便捷方法解决此问题。核心思路如果现在保存某User对象,首先根据主键查询这个User的最新对象,然后将此User对象的非空属性覆盖到最新对象。核心代码直接修改通用JpaRepository的实现类,然后在启动类标...
2019-05-07 18:23:33 10036 4
原创 Springboot集成sentinel实现接口限流入门
Sentinel是阿里巴巴开源的限流器熔断器,并且带有可视化操作界面。在日常开发中,限流功能时常被使用,用于对某些接口进行限流熔断,譬如限制单位时间内接口访问次数;或者按照某种规则进行限流,如限制ip的单位时间访问次数等。之前我们已经讲过接口限流的工具类ratelimter可以实现令牌桶的限流,很明显sentinel的功能更为全面和完善。来看一下sentinel的简介:https://...
2019-05-07 11:40:44 34104 15
原创 SpringBoot2集成redis,使用lettuce客户端
Springboot集成redis大家都会用,主要就是使用RedisTemplate类来进行各种操作。可能很多人并没有注意,在Springboot2以后,底层访问redis已经不再是jedis了,而是lettuce。至于jedis和lettuce有什么区别呢,对我们的使用有什么影响呢?jedis采用的是直连redis server,在多个线程之间共用一个jedis实例时,是线程不安全的。如...
2019-05-05 16:12:19 24974 9
原创 在docker部署Apollo配置中心,在rancher中部署并使用
Apollo配置中心是携程开源的知名配置中心项目,类似的有disconf等,它的GitHub地址是:https://github.com/ctripcorp/apollo由于我们主要使用docker(rancher)来运维管理项目,所以Apollo也要部署到docker里,来做为SpringCloud的配置中心。Apollo官方提供了docker镜像,部署起来比较方便。https://hu...
2018-12-20 10:55:00 2801 1
原创 Could not copy property 'intro' from source to target; nested exception is java.lang.reflect.Invocat
在使用BeanUtil copyProperties时,对两个不同的对象,但是大部分字段相同的对象进行复制时,出现了上面的错误,里面还有一些ClassCastException之类的。但是复制失败的对象明明是个String,并不是什么null赋值到int上之类的。百思不得其解。而且诡异的是只有部分string会报错,别的string就能正常运行。后来研究明白,发现是Hibernate的...
2018-12-11 12:50:47 3692
原创 SpringCloud gateway全局异常处理,以及后台的服务异常response的异常包装
gateway自己服务的全局异常处理,参考这篇https://segmentfault.com/a/1190000016854364?utm_source=tag-newest有两个类/** * @author wuweifeng wrote on 2018/11/2. */@Configurationpublic class ExceptionConfig { /**...
2018-11-02 16:52:58 22434 6
原创 SpringCloud gateway跨域配置
gateway允许跨域的配置和zuul的不一样,记录一下。版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <...
2018-11-01 20:05:14 17460 14
原创 获取SpringCloud gateway 响应的response的值,可以查看、修改
gateway获取、修改客户端请求Request的参数,我们在上一篇已经讲过了。那么网关发起请求后,微服务返回回来的response的值,还是要经过网关才发给客户端的。很多时候,我们希望能看到响应的值,或者修改它。那么怎么做呢?import org.reactivestreams.Publisher;import org.springframework.cloud.gateway.filt...
2018-11-01 11:51:34 50124 51
原创 详解SpringCloud-gateway动态路由两种方式,以及路由加载过程
gateway配置路由主要有两种方式,一种是用yml配置文件,一种是写代码里,这两种方式都是不支持动态配置的。如:下面就来看看gateway是如何加载这些配置信息的。1 路由初始化无论是yml还是代码,这些配置最终都是被封装到RouteDefinition对象中。一个RouteDefinition有个唯一的ID,如果不指定,就默认是UUID,多个RouteDefinitio...
2018-10-26 16:21:29 151107 30
原创 SpringCloud-gateway全局GlobalFilter获取post的请求参数
gateway里面可以自定义普通filter,也可以创建自定义的GlobalFilter。GlobalFilter实际上还是比较常用的,譬如可以在GlobalFilter里做日志处理、认证鉴权等,这里就涉及一个获取到请求参数的问题。用户发起Get、Post请求,经过网关gateway,gateway的GlobalFilter进行拦截——获取参数——处理并包装——转到下一级,我们就来看看该怎...
2018-10-25 11:04:29 62043 66
原创 spring-webflux中Flux<DataBuffer> 转String
Spring WebFlux既支持像Tomcat,Jetty这样的的传统容器(前提是支持Servlet 3.1 Non-Blocking IO API),又支持像Netty,Undertow那样的异步容器。不管是何种容器,Spring WebFlux都会将其输入输出流适配成Flux<DataBuffer>格式,以便进行统一处理。在使用SpringCloud-gateway时,在各个f...
2018-10-24 18:09:36 26255 20
原创 springcloud gateway代理get正常、post请求报错的问题
在上一篇时,我们在使用gateway的反向代理功能时,发现了一个很严重的问题,那就是通过gateway去访问后端服务时,如果发起的是Get请求,就一切正常,如果是Post请求,就会报错。无论是使用什么filter。java.lang.IllegalStateException: Only one connection receive subscriber allowed. at react...
2018-10-24 12:08:23 10554 3
原创 springcloud gateway之addRequestParameter详细使用及踩坑注意
SpringCloud的网关gateway提供了多个内置Filter,其中addRequestHeader是添加header的,这个无坑,比较简单。还有一个添加参数的,addRequestParameter,这个就有点问题了。具体往下看。版本如下,请注意Springboot版本,这是本篇Post请求异常的关键。1 对应的uri只能是get请求看一个简单的示例,addReques...
2018-10-23 11:47:09 11909
原创 3 Spark机器学习 spark MLlib 矩阵向量、矩阵运算Breeze库-2
上一篇是矩阵的创建、连接等相关操作。这一篇主要是矩阵的数值计算。1 基本运算元素加法 a+b 元素乘法 *:* 元素除法 /:/ 元素比较 <:< 元素相等 :== 元素追加 :+= 元素追乘 :*= 元素最大值 max(a) 元素最大值及位置 argmax(a) package b...
2018-10-16 10:45:15 1462 1
原创 3 Spark机器学习 spark MLlib 矩阵向量、矩阵运算Breeze库-1
机器学习里矩阵是必不可少的,无论Python、Java能做机器学习的语言,都会提供比较优质的矩阵库。spark mllib中提供的矩阵库是Breeze,可以简单看看Breeze库的情况。ScalaNLP是一套机器学习和数值计算的库,主要是关于科学计算、机器学习和自然语言处理(NLP)的,里面包含三个库,Breeze、Epic和Puck。其中Breeze是机器学习和数值计算库,Ep...
2018-09-20 15:35:38 3653
原创 2 Spark机器学习 spark MLlib Statistics统计入门
spark中比较核心的是RDD操作,主要用于对数据的处理、转换。在机器学习中,数据的处理也非常重要,矩阵、统计什么的都很常见。这一篇看一下Statistics统计相关的操作。本系列文章是边看书学边写,书是看的黄美灵的spark mllib机器学习。我会抽取比较靠谱的有用的知识写成文章。MLlib Statistics是基础统计模块,能对RDD数据进行统计,包括汇总统计、相关系数、分层抽...
2018-09-18 16:52:16 2160 1
原创 1 Spark机器学习 spark MLlib 入门
开始学习spark ml了,都知道spark是继hadoop后的大数据利器,很多人都在使用spark的分布式并行来处理大数据。spark中也提供了机器学习的包,就是MLlib。MLlib中也包含了大部分常用的算法,分类、回归、聚类等等,借助于spark的分布式特性,机器学习在spark将能提高很多的速度。MLlib底层采用数值计算库Breeze和基础线性代数库BLAS。还是从hell...
2018-09-17 10:59:14 20318 7
转载 泰坦尼克号预测如何做到Kaggle排名前2%
转载自:http://www.jasongj.com/ml/classification/做机器学习其实最重要的就是特征工程,对特征进行适当的分析处理、组合、扩充等等,将会带来远超过不同算法带来的提升。下面就来看一个通过合理调整特征,来达到泰坦尼克号较好预测的案例。摘要本文详述了如何通过数据预览,探索式数据分析,缺失数据填补,删除关联特征以及派生新特征等方法,在Kaggle的Titan...
2018-08-07 14:46:25 8811 2
转载 卷积神经网络通俗解读
转载自:https://blog.csdn.net/dong_lxkm/article/details/80575207一、前言 最近一直在研究深度学习,联想起之前所学,感叹数学是一门朴素而神奇的科学。F=G*m1*m2/r²万有引力描述了宇宙星河运转的规律,E=mc²描述了恒星发光的奥秘,V=H*d哈勃定律描述了宇宙膨胀的奥秘,自然界的大部分现象和规律都可以用数学函数来描述,也就是...
2018-07-20 15:45:40 1977
原创 让DeepLearning4j阅读小说并给出关联度最高的词
DeepLearning4j是一个java的神经网络框架,便于java程序员使用神经网络来完成一些机器学习工程。不管什么机器学习框架,NLP是一个不能不谈的领域,DL4J也提供了nlp的相关实现。其中入门的例子就是从一大堆文字中找到最相关的词。我们先来看看官方的demo,然后再模仿一个类似的程序,只不过是阅读中文的小说。官方的demo叫Word2VecRawTextExample,我们直接新建一个...
2018-07-02 10:46:30 4054 1
转载 神经网络的激活函数总结
转载自:https://my.oschina.net/amui/blog/1633904激活函数的意义(需要激活函数的理由)激活函数是神经网络的一个重要组成部分。如果不用激活函数(即相当于激活函数为f(x)=x),在这种情况下,网络的每一层的输入都是上一层的线性输出,因此,无论该神经网络有多少层,最终的输出都是输入的线性组合,与没有隐藏层的效果相当,这种情况就是最原始的感知机。正因为上面的原因,才...
2018-06-22 16:19:07 14436 2
原创 4 机器学习入门——分类和最近邻
前面学过了简单的回归和决策树,当然仅仅是使用起来简单。实际上,线性回归和决策树是很多其他算法的基础,很多高级的算法都是基于它们的组合或者变种。下面我们来看一个另外的东西,叫分类。基于回归和决策树,我们能通过给定的数据来预测一些未知结果的数据,模型能给我们输出一个可供参考的结果值。但有些时候这些数据并不能满足我们的所有好奇心。譬如一个BMW经销店,我们的目的是研究它如何能增加销售。已有的数据是其过去...
2018-06-17 17:24:26 908
转载 逻辑回归,决策树,支持向量机 选择方案
转载自:https://blog.csdn.net/oliverkehl/article/details/50129999这一篇讲的非常形象,直接转载了。逻辑回归 vs 决策树 vs 支持向量机原文 part1 原文 part2分类是我们在工业界经常遇到的场景,本文探讨了3种常用的分类器,逻辑回归LR,决策树DT和支持向量机SVM。这三个算法都被广泛应用于分类(当然LR,DT和SVR也可以用于回归...
2018-06-15 19:42:38 5455 1
原创 3 机器学习入门——决策树之天气预报、鸢尾花
前面我们简单学习了线性回归、逻辑回归,不知道有没有做一个总结,那就是什么时候该用逻辑回归?从结果来观察,可以看到,线性回归的过程就是在找那个合适的方程,来尽量满足你的每行数据。即Y=ax + bx^2 + …….通过算法来寻找合适的a、b、c。一般来说,线性回归适用于最终结果和各属性之间有数值上的关系,能通过一系列的组合,得出一个规律。当然,实际在应用中,我们一般不管什么数据集,都先跑一遍逻辑(线...
2018-06-15 15:55:50 6478 1
原创 2 机器学习入门——逻辑回归之kaggle泰坦尼克号竞赛
前面几篇逻辑回归的例子有些是人造出来的,有些是比较正规的,但数据都比较完整,没有缺失的属性。虽然我们在很多数据上取到的非常好的效果,但总感觉好像不够味,不像实战。所有的数据下载地址:https://gitee.com/tianyalei/machine_learning,按对应章节查找。那么这里有个地方给带给你想要的实战——Kaggle数据分析建模的应用竞赛平台,企业或者研究者可以将问题背景、数据...
2018-06-14 20:23:18 14614 3
原创 2 机器学习入门——逻辑回归第三课
这一篇我们拿一些实例来看看。所有的数据下载地址:https://gitee.com/tianyalei/machine_learning,按对应章节查找。还是要提醒一句,逻辑回归很简单,很多时候效果可以,但不够优秀,可以作为BaseLine。在选择算法前,可以先观察数据,根据经验推断是否符合线性(直线、曲线、圆形、抛物线等等),只要是比较连续的,能用线隔开的,一般逻辑回归都能给出一个还算凑合的答案...
2018-06-07 19:47:38 634
java反编译工具jad
2012-11-10
音乐播放器java制作
2012-11-07
ElasticSearch怎么做查询某个字段大于某个值的查询
2017-09-20
问一个使用hibernate对表排序的问题
2016-10-25
javaweb大神请进,如何在struts的一个action里处理多个数据操作逻辑
2016-07-15
求一个富文本编辑器,生成的网页能在手机上适配。不需要在电脑上适配
2016-06-08
服务器上tomcat需要更新程序时,大家是怎么办的,直接关闭tomcat重启吗?
2016-04-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人