架构
quliuwuyiz
这个作者很懒,什么都没留下…
展开
-
drools规则引擎非堆内存(方法区)溢出被系统杀死引起的祸
最近使用规则引擎drools,分配的内存比较一般,但是数据的并发量比较大,系统上线后总是运行不到一天,被系统杀死,将打印dump的启动参数配置上之后,也没有生成对应的dump文件,让我比较尴尬。深入研究了JVM和操作系统杀死JVM的原因,最终分析出来几点原因,并进行分享下。首先:先将JVM的组成部分,及每部分存放的内容进行研究了一遍:参考:https://blog.csdn.net/tao...原创 2019-12-25 22:45:55 · 822 阅读 · 0 评论 -
滴滴5亿年终奖,根据这四个问题来发 ----------困惑、成长、发展、增值、新知
程序员的成长之路,每个人都要面对的 --------------------------------------------------------------------------------------2015年1月30日,滴滴出行年会在北京工人体育馆举行,滴滴出行 CEO 程维和滴滴出行总裁柳青分别发表演讲。程维回顾了公司2015的成绩,展望了2016年的目标和方向,然后提到了年终奖的...转载 2019-05-08 15:24:22 · 192 阅读 · 0 评论 -
dubbo provider启动成功之后自动关闭的问题
在原来的项目依赖myth,因依赖太多且没有相关注解及使用文档,想要将myth依赖剔除掉。在改造公司项目的过程中,遇到如下问题,原来怀疑是zookeeper的问题,后来发现哪怕是正常启动,也会报Will not attempt to authenticate using SASL (unknown error) 这个bug .将怀疑定位在服务启动自动关闭,在git 官网https://git...原创 2019-04-23 14:30:26 · 5570 阅读 · 2 评论 -
RocketMQ-消息重试,消息幂等去重,消息模式
rocketMQ根据实际的业务场景进行不通的去重策略和方案,先转发下别人的理论,以后有时间在进行具体的研究。消息重试Rocketmq提供了消息重试机制,这是一些其他消息队列没有的功能。我们可以依靠这个优秀的机制,而不用在开发中增加更多的业务代码去实现Consumer 消费消息失败后,要提供一种重试机制,令消息再消费一次。Consumer 消费消息失败通常可以认为有以下几种情况...转载 2019-03-27 10:52:37 · 547 阅读 · 0 评论 -
Tomcat启动缓慢: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took
应用系统启动特别缓慢,报了下面的两个警告,服务启动之后,不影响正常的业务,经过查找,发现是2019-03-2617:37:21.282[MQClientFactoryScheduledThread]WARNi.n.util.internal.ThreadLocalRandom-FailedtogenerateaseedfromSecureRandomwithin3...原创 2019-03-27 10:30:30 · 3294 阅读 · 2 评论 -
CAP定理的含义理解
分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。本文介绍该定理。它其实很好懂,而且是显而易见的。下面的内容主要参考了 Michael Whittaker 的文章。一、分布式系统的三个指标1998年,加州大学的计算机科学家 Er...原创 2019-03-26 23:32:45 · 153 阅读 · 0 评论 -
基于RESTApi开发使用swagger及生产上关闭swagger的配置
项目组之间基于 RestApi 接口调用来进行信息的交互,之前是大家通过文档来进行沟通,但是随着接口的增多,接口的变更,这个文档只能作为一个参考,很多都发生了变化,但是因为变更的不及时,耽误了大家很多的精力进行沟通,于是项目组决定采用swagger的配置进行开发,这样上下游之间只需要看对方的swagger.html中的接口即可。但是基于swagger的配置,在上线之后还需要关闭,否...原创 2018-12-12 16:21:26 · 3143 阅读 · 0 评论 -
idea依赖树导出到文件中 解决依赖冲突的神兵利器
最近被不同版本的依赖jar包搞的焦头烂额,查找起来特别的累,用idea的依赖jar视图也没有找到原因,最后发现是父pom下的某个子项目引入的springboot的版本与其他子项目不一致导致的,找到这个的很简单的办法,将依赖的版本树打印到本地文件中,然后就可以搜索不同的依赖版本了。导出来的命令特别简单: mvn dependency:tree >> D:/tree.txt输入依赖...原创 2018-11-13 15:25:32 · 2624 阅读 · 0 评论 -
zeroc RPC通信框架之一
Icegrid软件安装包下载地址:https://github.com/zeroc-ice/ice/releases配置YUM:# wget --no-check-certificate https://zeroc.com/download/rpm/zeroc-ice-el7.repoYUM 安装:# yum install ice-utils ice ice-utils-java icegrid...原创 2018-03-20 15:03:00 · 588 阅读 · 0 评论 -
多并发时支付如何保持账户余额的一致性
转载地址: 多并发时支付如何保持账户余额的一致性?不管是电商,还是O2O业务都会涉及到支付,而且多速情况下流量比较大,尤其是在做活动的时候。一般支付系统主要有充值,扣费,提现,转账等功能,那么在有些业务场景下,尤其是多并发的情况下,我们在做扣费业务操作时该怎样去保持账户余额的一致呢?Java开发人员可能第一个想法就是在调用扣减的DAO的方法上加上一个synchronized关键字,这个解决办法在单...转载 2018-03-22 20:13:14 · 12444 阅读 · 0 评论 -
多线程高并发访问--------synchronized和ThreadLocal的区别
synchronized关键字主要解决多线程共享数据同步问题。ThreadLocal使用场合主要解决多线程中数据因并发产生不一致问题。ThreadLocal和Synchonized都用于解决多线程并发访问。但是ThreadLocal与synchronized有本质的区别: synchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而ThreadLocal为每一个线程...原创 2018-03-22 20:09:06 · 613 阅读 · 0 评论 -
Java web项目的classpath和classpath*的区别,*和**的区别及如何查找Java资源文件路径
这里的项目都是Web项目才有classpath:web项目中的src路径下的文件在编译后会放到WEB-INF/classess路径下,默认的classpath路径就是WEB-INF/classess路径,直接放到WEB-INF下的话,是不在classpath下的。用ClassPathXmlApplicationContext是获取不到的。如果是单元测试的话,可以在启动或者运行的时候指定classp...原创 2018-03-22 19:57:12 · 3033 阅读 · 1 评论 -
Java调用python项目实战
项目中有用到Java调用python的需求,经过各种坑之后,根据业务需求,最终实现Java调用Python的各种情况,现在将总结如下,当然调用的也是Jython,具体原因,下面会介绍,先将代码贴出来。 这种方法是调用python文件的函数 ,并且需要将函数中的参数由Java数据类型转换为python的数据类型 <dependency&...原创 2018-02-25 10:10:21 · 17756 阅读 · 3 评论 -
Java RMI与RPC的区别
一:RPC 远程过程调用 RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务。 一次RPC调用的过程大概有10步: 1.执行客户端调用语句,传送参数 2.调用本地系统发送网络消息 3.消息传送到远程主机 4.服务器得到消息并取得参数 5.根据调用请求以及参数执行远程过程(服务) 6.执行过程完毕,将结果返回...转载 2018-03-01 16:37:20 · 155 阅读 · 0 评论