一、权重算法
权重算法一般在路由里面用的比较多,分布式环境下对等的服务有多个,加权随机选出一个服务来调用;
可能还有其他方面的用途,下面的代码简单的实现了这个权重,本质上就用到了数组,随机下标;
二、代码概览
1 | public static void main(String[] args) { |
权重算法一般在路由里面用的比较多,分布式环境下对等的服务有多个,加权随机选出一个服务来调用;
可能还有其他方面的用途,下面的代码简单的实现了这个权重,本质上就用到了数组,随机下标;
1 | public static void main(String[] args) { |
有时候上线会出现合错代码,比如功能,或者maven的pom文件;
人都不是十全十美的人,只要是人就会犯错
关键是要想办法去避免,只有工具才不犯错
所以尽量想办法利用工具来防止我们犯错,git来说有很多办法;
简单的命令,或者gitlab的compare报告;
每次上线之前,开发自己看一遍当前版本与线上版本的区别,确认每一个点都是正确的改动;
2.1 入口:工程首页 -> Repository -> Compare
2.2 选择:上一个版本,当前版本,点击Compare
2.2 结果:一次能看到两个版本的所有commit、改动点
1 | # 显示版本之间改动的文件名 |
1 | com.alibaba.dubbo.remoting.transport.ExceedPayloadLimitException: Data length too large: 14277263, max payload: 8388608, channel: NettyChannel [channel=[id: 0x12a13c8f, /172.0.0.1:49402 => /172.0.0.2:23888]] |
dubbo默认使用Netty传输协议
并且默认的大小限制为:默认为8M,即8388608
修改接口
出现这种情况是因为一个接口查某个表的所有数据(几万条)
一般这种接口肯定是需要分页的
更改配置信息
在dubbo.properties 中增加如下
1 | dubbo.protocol.dubbo.payload=11557050 |
maven项目昨天遇到的一个错误:Java.lang.NoClassDefFoundError
理论原因:JVM在编译的时候能找到调用方法或静态变量所在的类,但在运行的时候找不到此类而引发的错误。
真实原因:(仅针对当前问题)
项目A依赖公共服务C-1.0.1版本
项目B依赖项目A,B中dependencyManagement强制指定C-1.0.0
此时编译可以通过,运行时如果有用的C的新版本功能就会会出现上述问题
解决办法:对项目B中C的版本升级,使用1.0.1
扩展阅读:
https://blog.csdn.net/qq_27576335/article/details/77102385
https://blog.csdn.net/jamesjxin/article/details/46606307
CONCAT:连接字符串,CONCAT(55.00,’%’)->55.00%
truncate:处理小数点位数,truncate(10.1111,2)->10.11
1 | select res.*, CONCAT(truncate((res.succ / res.`all`) * 100, 2), '%') as 'success rate' |
USER_NO | TYPE | all | succ | fail | other | success rate |
---|---|---|---|---|---|---|
456 | 10 | 1 | 0 | 0 | 1 | 0.00% |
123 | 10 | 29 | 23 | 0 | 6 | 79.31% |
1 | com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '2039-01-07 12:58:20.625' for column |
由于程序没有控制好,计算下一次更新时间失误,造成数值过大。
1 | update table_a |
以下是MySQL官方的说法,就是时间超过了范围。
1 | The TIMESTAMP data type is used for values that contain both date and time parts. |
想用docker搭建一个lnmp环境
使用这个脚本:
1 | https://github.com/buxiaomo/docker-compose/tree/master/lnmp |
执行命令之后报错
1 | docker-compose -f lnmp.yml up -d |
1 | ls -la /etc/localtime |
1 | docker-compose -f lnmp.yml up -d |
1 | public void process(MainTable mainTable) { |
一直在写Java,看语法逻辑什么的没有问题
但是刚刚看书上写出来的这个程序,居然不知道怎么在goland里面运行…
于是曲线救国,了解到打印输入的参数。
这断代码就是为了找出输入数据中的重复行
1 | 参数0: /private/var/folders/lk/p8gbq87n6rvfndk7wlk23y8r0000gn/T/___go_build_dup2_go |
1 | $ go run dup2.go 'hisen.txt' |
代码如下:
stu数据如下:
id | name |
---|---|
1 | hisen |
2 | hisen |
3 | hisen |
4 | hisenyuan |
5 | hisenyuan |
删除重复的name,保留id最小的。
思路就是先找出重复数据,然后再找出需要保留的数据(重复中id最小的)
然后删除id不在需要保留的id中的所有数据
1 | delete |