本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
基于腾讯云CVM自建高可用Redis实践
本文来源 | 云+社区专栏文章
作者 | 万守兵,腾讯云资深架构师。8年以上大型互联网公司运维工作经验,腾讯云资深迁云架构师,一直从事大型互联网服务端架构设计和优化工作。个人专注于云计算、k8s和 DevOps领域。
导读:在企业实际生产环境中为了能够给业务上层应用提供高可靠、低延迟、低数据损失的Redis缓存服务,本文通过对目前主流的几种redis高可用方案进行对比分析,并 ...
异常日志的占位符,格式化的使用
logger用{},或者用String.format("数字1:%s,和数字2:%s不一致",a,b);
例如:
private void validateRequest (LedgerCalculatorRequest request) {
List<LedgersInfoBean> ledgersInfo = re ...
aop的应用综合
切面可以基于类路径方法,可以基于注解
基于类路径方法----日志
基于注解---切换数据源,针对性的记录业务日志
数据库的主从切换可以一定程度提升数据库的性能
配置去前缀,然后剩余的就是框架中默认的字段名,springboot在自动装配的时候就可识别到
例如:
application.properteis:
spring.da ...
feign的独立使用
文章目录
Feign 概述
什么是 Feign
Feign 入门案例
引入依赖
Feign 接口编写
Controller
结果
Feign 工作原理
@FeignClient 注解
在开发 Spring Cloud 微服务的时候,我们知道,服务之间都是以 HTTP 接口的形式对外提供服务的,因此消费者在进行调用的时候,底层就是通过 HTTP Client 的这种方式进行 ...
全局的异常处理系统设计思路
日志:
全局的异常处理(throw部分)
XloanControllerExceptionHandler
1,来源于接口放返回---接口放没有返回实际异常
2,自己业务接口返回---这里结合1,2
3,全局的异常处理
异常信息的设计思路
1,使用全局的异常处理@ControllerAdvice,捕捉业务方法throw部分出来的系统异常和自 ...
日志切面的设计(不同通知的日志用处)
日志切面;
日志的打印用切面拦截,切面中执行切点之前打印参数,执行切点之后打印返回的结果
方式一:用环绕通知把方法的请求,返回一起打印
@Pointcut("execution(* com.houbank.incoming.web.controller..*(..)) and @within(org.springframework.web.bind.annotation ...
简单app登陆认证管理设计
无需权限的简单app登陆认证
1,登陆认证代码
a,用户名密码
b,短信验证
2,登陆状体验证 :LogInterceptor 对于只需要认真不需要权限的,可以把认证成功后信息放在session,session放入redis中实现无状态化,然后配合一个切面校验
session是否存在,不存在就是没有登陆
为了防止session超时可以1,每个 ...
用切面的方式实现全局性的乐观锁
用切面的方式实现全局性的乐观锁
乐观锁的思路update的查询条件加version,update的时候version+1
用拦截器拦截ibatis的updat方法(不是我们业务中的update方法),在sql中加入version的操作
@Override
public Object intercept(Invocation invocation) throws ...
幂等处理几种方案总结(包括消息总线的幂等处理)
一、背景
1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;3. 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的;4. 创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题。
二、什么事幂等
一个操作,不论执行多少次,产生的效果和返回的结果都是一样的 ...
架构设计的一些实践概括(持续完备中)
架构设计大概要考虑的点:
1,分布式选型
2,中间件选型
3,接受返回参数封装
4,同步异步设计(队列,redis使用)
5,swagger集成
6,日志切面--kafka
7,降级处理,定时任务(分布式锁)
8,session的共享无状态
8,gateway的设计思想
9,http等工具类
10,跨域处理
11,枚举类型
12,反射调用(结合数据表的 ...
多数据源的切换思路
多数据源的设计思路:
1,写好注解,不同的数据源用不同的注解
2,切面拦截,拦截到相应的注解更新数据源内容(用全局的threadlocal变量)
3,一个类专门动态数据源类(后面配置的数据源直接用这个类)从含有threadlocal变量的类中获取设置好的数据源---就切换了
jdbc,mybatis,hibernate各自优缺点及区别
先比较下jdbc编程和hibernate编程各自的优缺点。
JDBC:
我们平时使用jdbc进行编程,大致需要下面几个步骤:
1,使用jdbc编程需要连接数据库,注册驱动和数据库信息
2,操作Connection,打开Statement对象
3,通过Statement对象执行SQL,返回结果到ResultSet对象
4,使用ResultSet读取数 ...
redis和memcached,mongoDb的区别(总结)
总概:
redis:
有事物,有持久化,swap(太久的key会交换到磁盘,但是交换io代价大),适合做数据的运算存储
memcahce:
无事物,无持久化,直接在内存中存储(用hash环容灾备份),简单的高速缓存,较小数据库压力
mongodb:
无事物,有持久化,分布式存储,适合海量数据的查询访问
观点一:
1、Re ...
服务的有状态和无状态
对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依旧——两个来自相同发起者的请求在服务器端是否具备上下文关系。
状态化请求,服务器端一般都要保存请求的相关信息,每个请求可以默认地使用以前的请求信息。
无状态请求,服务器端所能够处理的过程必须全部来自于请求所携带的信息,以及其他服务器端自身所保存的、并且可以被所有请求所使用的公共信息。
一、比较
有状态服务常常用于实现事务( ...