- 博客(11)
- 收藏
- 关注
转载 互联网架构三高之高可用
一、前言高可用(High availability,即 HA)的主要目的是为了保障「业务的连续性」,即在用户眼里,业务永远是正常(或者说基本正常)对外提供服务的。高可用主要是针对架构而言,那么要做好高可用,就要首先设计好架构,第一步我们一般会采用分层的思想将一个庞大的 IT 系统拆分成为应用层,中间件,数据存储层等独立的层,每一层再拆分成为更细粒度的组件,第二步就是让每个组件对外提供服务,毕竟每个组件都不是孤立存在的,都需要互相协作,对外提供服务才有意义。要保证架构的高可用,就要保证架构中所有组件以及其
2022-02-09 11:13:51
1688
原创 使用stream转list为map报错java.lang.IllegalStateException: Duplicate key
一.背景 在很多场景下,需要将List的数据转化为Map的键值对的场景,方便快速查询数据。例如:需要根据工号查询出对应的人名名称明细场景。有两种实现场景,第一种通过每个工号查询一次数据库循环查询,明显这种方式不合理,因为对DB压力以及连接不利。第二种将工号集合(需要考虑数据量的场景,Oracle支持最大一千条,mysql虽然无上线,但是考虑性能以及内存占用情况需要考虑上限建议1000以下),接下来是以第二种方式进行展开。二.开发实践List<User> userList = new A
2022-01-28 15:23:44
2171
原创 Java日志打印规范
1.日志级别log.error()适用于出现系统异常、重要错误的场景log.warn()适用于不影响业务场景的异常场景,但是存在告警信息log.info()适用于业务重要的信息,便于信息查询跟踪定位排查等。(例如调用重要接口,便于与对方系统进行问题排查)log.debug()适用于开发调试阶段,快速问题定位,信息查询等。如果日志不分级别或级别不合理,则定位问题时就无法快速有效地屏蔽大量低级别信息,给快速定位带来难度。2.异常日志规范使用slf4j日志组件时,logger
2022-01-27 20:37:17
1654
原创 IntelliJ IDEA 操作git pull push commit很慢解决
IntelliJ IDEA 操作git pull push commit很慢解决新入职公司,在公司电脑上使用 IntelliJ IDEA 的时候发现操作Git特别的慢,status、fetch、pull、checkout、commit等基础操作都执行的特别慢,下方的Task进度条一直处于等待中,等待差不多10秒多的时候才开始执行进度。最难以忍受的是,在Settings里面检查Git的版本操作都需要接近20多秒的时间,才能返回结果结论:花了几天时间跟踪 IDEA 的执行日志以及翻看 IDEA Git插件
2022-01-27 20:34:20
8121
4
原创 hibernate SQLQuery之坑二UNION查询报java.lang.NullPointerException空指针
hibernate SQLQuery之坑二UNION查询报java.lang.NullPointerException空指针1、union 是对多个select查询的结果进行组合 以union 连接两个select语句为例sql语句(SELECT CAST('现汇' AS varchar2(10)) AS taskName, TT.TaskFROM ( SELECT MAX(CASE WHEN T.POLICY_STAGE = 'stage00' AND T.TASK_TYPE =
2021-06-29 11:32:48
628
原创 hibernate SQLQuery之坑一字符串自动截取
hibernate SQLQuery之坑一字符串自动截取用hibernate的doInHibernate接口类进行执行脚本自动截取字段长度例子生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入用hibernate的doInHibernate接口类进行执行脚本自动截取字段长度oracle 会将 ‘aa’ 这样的列作为 char
2021-06-29 11:06:58
404
原创 RocketMQ重试机制
一、RocketMQ的生产者重试1.可靠同步模式原理简解:同步发送是指消息发送方发出数据后,会在收到接收方发回响应之后才发下一个数据包的通讯方式。应用场景:这种可靠同步方式发送应用场景非常广泛,例如重要通知邮件、报名短信通知、营销短信系统等。//可靠同步模式send方法 参数CommunicationMode.SYNC 同步public SendResult send(Message msg, long timeout) throws MQClientException, R
2021-04-07 10:59:07
1474
原创 ORACLE更新序列为某一个特定值
1、把当前序列自增量变为Nalter sequence S_T_PG_BUS_COLLAGE_HEAD increment by N;2、更新当前序列值select S_T_PG_BUS_COLLAGE_HEAD.NEXTVAL from dual;3、把当前序列自增量变为原来1alter sequence S_T_PG_BUS_COLLAGE_HEAD increment by 1;...
2021-02-22 16:12:07
1072
原创 帆软报表打印传输数据打印问题:URL传输+号不显示问题解决
帆软报表打印+号由于url传输问题当存在+、%等特殊符号会存在不显示问题。1、直接将+号转化为%2Bfor(var i=0; i< config.data[0].ds2.length; i++){ if(config.data[0].ds2[i].remark){ config.data[0].ds2[i].remark = config.data[0].ds2[i].remark.replace(/\+/g,'%2B'); config.data[0].ds2[i].pmtName
2021-01-28 17:47:49
3304
原创 JOSN将get的Object转化为对应的实体
JOSN将get的Object转化为对应的实体新增一个实体写到jsonObject中解析对象新增一个实体IntfCommonEsbData esbData = new IntfCommonEsbData(); esbData.setTranscode(serialNo); esbData.setOperstatus("2"); esbData.setBeanId("esbclient_ProjectClientBO_bo"); esbData.setBeanMethod("doPushS
2021-01-22 14:56:01
193
原创 oracle 针对多条匹配数据按照指定顺序进行选择一条更新
oracle更新数据,对于按照某个特定排序,选择其中一条进行更新解决办法解决办法select tb.*,tca.account_id,tca.customer_id tca_customer_id,row_number() over(PARTITION BY tb.entity_id, tb.customer_code, tb.sales_main_type_code, tb.operator_code order by decode(uu.unit_type, ‘常规’, ‘1’, ‘电商’,
2020-12-31 14:50:35
1233
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人