- 博客(48)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注

原创 交易系统热点账户设计
一、背景和目标背景交易系统中会出现某些账户高频进行扣款入账的行为。这些账户可以分为两种,一种是出账热点账户,另外一种使入账热点账户。单账户进行余额更新会出现各种性能瓶颈、数据库压力、成功率等各种性能问题。目标通过该设计避免出现热点账户的各种性能问题,及时对账户是否使热点进行监控,分析、避免出现热点账户带来的一系列问题。二、方案1、思路将单个账户拆分多个子账户。子账户使用借鉴商品上下架库存动态补充。2、总体通过热点账户配置,动态将一个账户拆分为多个子账户。尾号0000.
2020-06-30 14:51:35
977

原创 Beego搭建企业微信机器人定时消息推送
Beego搭建企业微信Robot定时消息推送功能说明PostMan添加jobmsgType默认是:text并且支持@allmarkdown支持颜色和样式但是不支持@allcronquartz表达式,0 0/30 7,8 2 8 ? 8月2号7、8点每30分钟一次0 25 09,20 ? * 1,2,3,4,5 每周一、二、三、四、五的9:25、2...
2019-07-31 12:13:32
4216
2

原创 elastic-job简单的分片
Elastic-Job分片AbstractElasticJob在执行job的时候会获取分片内容JobExecutionMultipleShardingContext,通过shardingService.shardingIfNecessary()进行分片。分片默认得分片策略是均分算法AverageAllocationJobShardingStrategy.sharding(),获取本机的分片序列号s...
2018-04-23 15:39:51
10383

转载 session共享redis存储设计与实现
Session的实现原理简介背景:1. 由于Http协议是无状态的,服务端如何识别客户端请求呢,只能依靠http报文中新增部分头字段来实现请求识别(如何在请求body或这参数中设置会员参数,服务器端会话就与自定义的会员识别绑定到一起)2. 基于浏览器的web应用,请求都是有浏览器发起的,貌似也不能手动随便添加请求头(仅有XMLHttpRequest可以手动设置请求头),哪有没有一种可以由服务端...
2018-04-20 17:42:21
10910
原创 开发必备测试利器TestNG
开发必备测试利器TestNGTestNG是什么TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便。TestNG是一个开源自动化测试框架;TestNG表示下一代(Next Generation的首字母)。 TestNG类似于JUnit(特别是JUnit 4),但它不是JUnit框架的扩展。它的灵感来源于JUnit。它的目的是优于...
2019-07-31 11:13:45
375
原创 Zuul之身份认证
Zuul之身份认证微服务架构所面临的问题?1)针对某个功能,客户端在微服务架构的情况下需要请求多个模块接口2)针对于身份认证、日志、流量控制等公共模块每个微服务都需要做一遍,不利于业务与非业务的拆分Zuul可以做什么1)客户端只需要知道网关而不需要知道具体模块的地址,所有服务由网关对外提供2)身份认证类的东西单独抽象出来,业务模块只做业务3)易于监控。可在微服务网...
2019-05-14 14:36:24
2777
原创 Go 实现图片上传压缩、部署发布
Golang项目beego 目录Golang项目beego目录结构启动代码main.goRedis配置ControllersHttplib图片压缩nfnt项目环境配置Jenkins配置Linux启动&关闭目录结构loans-picture-webconf------------------配置文件src------------...
2018-12-19 10:32:59
1767
原创 Springcloud、eureka、config、zipkin、hystrix-dashboard、zuul入门搭建
Springcloud、eureka、config、zipkin、hystrix-dashboard、zuul启动顺序eureka-server > config-server > zipkin-server > hystrix-dashboard > order > stock > zuul github:https://github.co...
2018-11-13 19:26:26
809
原创 spring主从查询AOP切换数据源
之前有个项目最近整理出来共享给大家。公共查询服务,公司查询场景越来越多,主库压力越来越大,一些非实时数据通过查询丛库数据来减少主库的压力,也防止主库出现故障导致网站不可访问而出现的崩溃。在一个项目里面配置主从数据源进行查询,考虑最原始的方案就是通过不同的sessionFactory指向不同的数据源进行数据源切换查询。发现如果后面修改接口或者添加接口就需要写双份和改双份,这是非常不方便的。最...
2018-09-05 11:31:36
1356
原创 spring4.x多数据源配置
在xml配置不同的数据源的bean配置<!-- 配置risk.oracle.数据源 --><bean id="riskOracleDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 数
2018-09-05 10:52:27
184
原创 java获取手机号归属地-爬虫
今天接到一个需求,需要知道手机号的归属地。网上搜了手机号解析的网站,还有对应提供api接入的开放平台要秘钥。想到有爬虫可以爬取数据。就写了一个小的爬虫代码:访问地址:http://shouji.xpcha.com/1852170627.html附代码:import com.google.common.collect.Maps; import java.io.IOExceptio...
2018-08-30 10:09:31
1619
原创 oracle存储过程--存量数据批量刷入
上周有新需求把face++识别的身份证信息存到会员中。存量数据还有1300万数据,也就是要刷1300万的数据。想过跑批查询封装多线程调用dubbo接口,怕dubbo服务提供者扛不住。考虑走脚本刷,一条脚本如下:update mem.mem_base_info iset i.nation = decode(i.nation, null, ...
2018-08-27 15:01:47
2560
原创 go语言连接远程服务器
1、go语言通过ssh连接远程服务器执行命令2、go语言通过sftp连接远程服务器上传和下载文件3、相关依赖github.com/pkg/sftp golang.org/x/crypto/sshgithub.com/pkg/errors 4、所有代码展示package controllersimport ( "github....
2018-08-01 20:06:37
3700
原创 go语言菜单树结构
GO语言菜单树结构实现,Menu是数据库表映射。MenuTree是树结构菜单,目前只考虑2级菜单。后面附源码,亲测可用package modelsimport ( "github.com/astaxie/beego/orm" "time")type Menu struct { Base MenuName string...
2018-07-26 11:29:08
3501
转载 关于Eureka 2.x,别再人云亦云了!
原文:http://www.itmuch.com/spring-cloud/eureka-2-news/ ,转载请说明出处。最近朋友圈被Eureka 2.x停止开发的新闻刷屏,例如: Eureka 2.0 开源工作宣告停止,继续使用风险自负 凉凉了,Eureka 宣布闭源,Spring Cloud 何去何从? 关于第二篇,我想说,这是在造谣。不妨来看一下官方的言论:...
2018-07-17 15:52:06
523
原创 go语言上传多个附件-beego
package controllersimport ( "github.com/astaxie/beego" "net/http" "mime/multipart" "bytes" "io" "github.com/astaxie/beego/logs")type IdentityControl
2018-07-17 15:24:08
1474
原创 beego页面循环返回数据
{{range$k,$v := .dataList}}<tr> <td id="name{{$v.Id}}">{{$v.Name}}</td></tr>{{end}}
2018-07-16 10:36:59
1089
原创 beego返回json类型支持
// @router /i [get]func (c *LoginController)Rest() { //c.Data["json"] = "www" c.Data["json"] = map[string]interface{}{"ok":"ttt","test":"ok"} c.ServeJSON()
2018-07-16 10:34:58
2080
原创 beego请求例子
main.go导入 routers目录_ "routers"router.go初始化controller新建 routers文件夹,里面新建router.goimport ( "controllers" "github.com/astaxie/beego")func init() { beego.Include(&controllers.Lo...
2018-07-16 10:33:51
722
原创 beego连接mysql
beego连接mysql需要mysql的连接驱动_ "github.com/go-sql-driver/mysql"config 里面的 app.confdb.host=127.0.0.1db.port=3306db.username=rootdb.pwd=rootdb.database=test在main.go里面添加代码import (...
2018-07-16 10:28:26
1016
原创 go 语言支持 vendor
主要是设置gopathset GOPATH$PROJECT_HOME$PROJECT_HOME/vendoridea设置位置file --> settingslanguages --> go --> go librariesproject libraries
2018-07-16 10:21:38
373
原创 BigDecimal小数的坑
建议使用BigDecimal.valueOfNoncompliant Code Exampledouble d = 1.1;BigDecimal bd1 = new BigDecimal(d); // Noncompliant; see comment aboveBigDecimal bd2 = new BigDecimal(1.1); // Noncompliant; same resul...
2018-07-09 16:00:16
160
原创 Dubbo消费者超时时间配置
新增微服务拆分服务,上线后发现调用者出现 dubbo - timeout 超时服务。client elapsed: 0 ms, server elapsed: 1159 ms, timeout: 1000 ms。超时时间是1s,看了自己的消费者服务配置没有问题,配置的消费的timeout超时时间。但是为啥还会出现1000ms超时。通过dubbo控制台查看,dubbo没有超时时间。那么dubbo超时...
2018-07-09 14:14:18
45948
2
转载 JVM内存管理及GC机制
原文地址:https://blog.youkuaiyun.com/suifeng3051/article/details/48292193一、概述Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。经过这么长时间的发展,Java...
2018-07-06 14:13:36
130
转载 双亲委派模型的理解
Java虚拟机先从最核心的API开始查找,防止不可信的类扮演被信任的类。启动类加载器 Bootstrap ClassLoader:加载<JAVA_HOME>\lib目录下核心库扩展类加载器 Extension ClassLoader:加载<JAVA_HOME>\lib\ext目录下扩展包应用程序类加载器 Application ClassLoader: 加载用户路径(cl...
2018-07-06 14:06:57
473
原创 修改ES窗口大小
索引名(loan_full)loan_full/_settings?preserve_existing=true{"max_result_window":"100000"}
2018-06-19 10:13:08
1339
原创 事物型MQ消息
在分布式系统中,为了解耦,接口性能,可用性。越来越多的系统非主要业务采用MQ消息进行系统优化,代码重构,随之而来的也会有消息丢失等。事物型MQ随之而来,而事物型消息主要依靠一句代码:TransactionSynchronizationManager.bindResource();在调用一个需要事务的组件的时候,管理器首先判断当前调用(即当前线程)有没有一个事务,如果没有事务则启动一个事务,并把事务...
2018-06-11 18:15:26
899
原创 java风控系统重构
线上借款越来越多,规则越来越多,维护越来越艰难, 随之而来的弊端越来越明显:1、新增规则需要多个业务方修改代码,重复代码越来越多2、变更一处需要变更相关的上游系统,故障难以把控3、重复代码越来越多,架构缺陷十分明显针对这样的架构进行重构升级,新架构带来了很多优点。1、新增规则,业务方不用修改代码。2、业务方重复代码删除,优化整体代码可读性3、提供灵活的规则配置,进行可插拔的规则校验4、进件信息适当...
2018-06-11 18:04:41
5011
原创 springboot配置双数据源
springboot双数据源通过注解配置1、在application.properties配置数据源的信息#xxx oracle DB configxxx.oracle.jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orclxxx.oracle.jdbc.username=rootxxx.oracle.jdbc.password=rootxxx.oracle....
2018-06-11 17:15:40
564
原创 微服务-拆分
应用拆分思路1、明确服务职责2、按照职责进行服务拆分3、应用涉及的表被其它系统直接通过SQL操作改为RPC远程操作4、数据的写操作由单库写改成双库写,原始库&目标库5、有DBA把原始库的数据copy到目标库中6、数据copy完成,即微服务拆分完成,数据迁移完成。...
2018-06-11 17:07:41
458
原创 springboot-disconf服务器配置
项目目录/data/spring-boot -----bin 放置启动,停止脚本; -----disconf 存放disconf 下载的配置文件 -----logs catalina.out.2018-06-04 catalina.out.2018-06-05 catalina.out -----config 存放本地定...
2018-06-11 16:59:57
687
scala SDK 2.10下载
2018-05-09
Scala 循环添加list为空
2018-10-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人