
架构
隔壁阿源
先证明你的价值,再来讨论你的雄心壮志。
展开
-
简单注解+AOP+反射实现特定功能
先描述下完成功能的场景:先查一个订单表,想要取得用户表的相关信息,但由于某些原因用户表不能进行关联查询,这个时候往往会想到冗余用户表字段,但这也会带来一个问题,就是用户表里的字段改变值后,比较但以维护(因为订单表的字段也需要同步修改)。所以直接先查一遍订单表再查用户表,当然这样数据库性能肯定比较低。下面假设我们就要实现这个功能。这是我们service实现这个功能的方法 public ...原创 2018-12-01 11:02:50 · 942 阅读 · 0 评论 -
秒杀系统的架构设计及实现
秒杀场景在电商平台是十分常见的,这种营销活动往往具有时间短,并发量大的特点。关于数据库性能TPS:数据库每秒执行的事务数。QPS:数据库每秒执行的SQL数。对于msql数据库,8核CPU16G内存通常TPS:1000 QPS:20000系统逻辑梳理用户界面点击请求 ---->服务器收到http请求 ------>修改数据库库存对于秒杀系统这种短时间的海量请求往往是通过.原创 2018-11-22 16:57:11 · 1069 阅读 · 0 评论 -
前后端分离架构
普通的PC端web程序会话管理是由session进行管理,但对于微信小程序,APP程序,session对其支持是有限的,再加上之前由于整个项目往往都是后端一把抓,后端人员要写前端js,还要写服务端程序,工作量十分庞大。若是由专门的前端人员写页面,要观察页面往往也要重启服务程序,前后端关联太紧密。前后端分离由于上述的种种弊端,于是有了前后端分离的架构。前端(pc,小程序,app)都可以共用一个服...原创 2018-11-20 17:57:32 · 806 阅读 · 0 评论 -
缓存失效及解决方案
这几天在网易云课堂上看到几个关于Java开发比较好的视频,推荐给大家Java高级开发工程师公开课这篇文章也是对其中一门课程的个人总结。何谓缓存失效对于一个并发量大的项目,缓存是必须的,如果没有缓存,所有的请求将直击数据库,数据库很有可能抗不住,所以建立缓存势在不行。那么建立缓存后就有可能出现缓存失效的问题:大面积的缓存key失效热点key失效类似12306网站,因为用户频繁的查...原创 2018-11-16 09:38:11 · 6731 阅读 · 0 评论 -
自定义注解
注解依然属于一种注释。@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface SetValue { /** * 查询类的类名 * @return */ Class<?> className(); /** ...原创 2018-12-01 12:50:22 · 404 阅读 · 0 评论 -
反射相关API
随着学习,后续会继续更新!暂时自己用到的就这些。ClassgetClassLoader():得到类加载器forName(String str):加载该类,包路径+类名getName():类名getField(String name):得到该类的Field,仅限public成员getFields() :得到该类所有可访问的publicFieldgetDeclar...原创 2018-12-01 16:16:14 · 284 阅读 · 0 评论 -
借助消息队列解决分布式事务
先介绍一下RabbitMQ的基本概念核心概念Queue:真正存储数据的地方Exchange接受请求,转存数据Bind:收到请求后存储到哪里消息生产者:发送数据的应用消息消费者:取出数据处理的应用Bind的几种分发规则:Direct、Topic、FanoutFanout:与该Exchange绑定的Queue都发一份数据Direct:给完全匹配的Queue发送数据,routingke...原创 2018-12-26 20:01:03 · 1165 阅读 · 0 评论