- JVM
- 集合 队列
- nginx负载均衡
- 去除图片水印
- 设计模式组合使用(策略模式,模板模式,工厂模式) 去除多重if else
- 并发concurrent、CompletableFuture异步线程
- 多线程分批(函数式接口,函数式参数)
- 批量异步线程处理,异步线程事务
Spring Transactional一直是RD的事务神器,但是如果用不好,反会伤了自己。下面总结@Transactional经常遇到的几个场景:
- @Transactional 加于private方法, 无效
- @Transactional 加于未加入接口的public方法, 再通过普通接口方法调用, 无效
- @Transactional 加于接口方法, 无论下面调用的是private或public方法, 都有效(timeout放在下面调用的private或public方法上都不生效,只在外层方法中有效)
- @Transactional 加于接口方法后, 被本类普通接口方法直接调用, 无效
- @Transactional 加于接口方法后, 被本类普通接口方法通过接口调用, 有效
- @Transactional 加于接口方法后, 被它类的接口方法调用, 有效
- @Transactional 加于接口方法后, 被它类的私有方法调用后, 有效
- netty tcp 粘包拆包解决方法(编码解码协议)
- 简单的HTTP服务端
- 多线程读取文件
-
基于注解方事务失效场景(非public方法、有fainal、static修饰的方法、tyr catch 吞没异常) 底层是aop 所以public方法、有fainal、static修饰的方法事务会失效
-
编程式事务
- mongodb 存储动态表单动态字段信息
- 弱化session存储功能,使用第三方存储方案redis
- token令牌
- 服务器层面的
- 安装安全狗软件
- 关闭端口
- 系统应用层面的
- 上传文件漏洞 - 对服务器 (防止(做文件上传校验限制)上传sell命令、exe 等)
- 文件上传包含 - 对服务器
- sql注入 - 对服务器 (链接参数过滤、转义特殊字符:单引号等)
- xss 跨站攻击 对客户端 (评论留言:过滤或者转义客户端语言特殊字符 script 、for alert 等
- CSRF 跨站请求伪造 (合法用户不知情)
- springcould 调用方式 http restful api 技术栈比较全面、社区活跃
- dubbo 调用方式 rpc远程调用
- springcould缺点,要看服务器性能怎样 (每个微服务是一个进程,比较耗内存)
- 1、创建Maven父工程 打包方式选择:pom (multi-service)
- 2、创建公共子模块 打包方式选择:jar (multi-service-api)存放公共实体类