![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构设计
文章平均质量分 86
frcoder
FRLH
展开
-
工程代码架构
接口层api是程序的入口,供外部调用,处理所有输入:校验参数、转换参数、限流、加锁业务层biz处理具体业务,为每个业务建一个文件夹只处理核心逻辑,应该是和流程图、时序图一一对应的,图中体现不出来的处理,就不应该放在这个层,比如:对象转换外部接口层external依赖的第三方接口,要处理:参数转换,返回结果转换,异常处理,风险隔离,日志,监控,埋点对象层model业务对象domain枚举类enums异常类exception持久化persistence管理层manager将entry处原创 2022-03-16 23:00:09 · 4530 阅读 · 1 评论 -
对于设计模式的理解
设计模式实际上就六个字:高内聚,低耦合一、设计模式的六大原则单一职责接口隔离原则(Interface Segregation Principle)这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。最少知道原则,又称迪米特法则(Demeter Principle)最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统.原创 2020-11-26 14:42:24 · 490 阅读 · 0 评论 -
系统性能预估
一、前言在做一个系统前,首先要思考,这个系统将来有多少人用,最高并发有多少。用户规模和并发的不同,会决定系统架构的不同。架构决定成本,包括开发和运行成本,不要一味的追求高性能,适用最好。二、基础概念1. 注册用户数、在线用户数、并发用户数注册用户数:一般指的是数据库中存在的用户数在线用户数:只是 ”挂” 在系统上,对服务器不产生压力并发用户数:一定会对服务器产生压力的2. 并发用户数、并发数、QPS、RPS并发用户数:在一段时间内集中使用系统的用户数并发数:系统同时处理的请求数(取决原创 2020-05-20 13:51:37 · 1370 阅读 · 0 评论 -
看tomcat源码的一点理解
http连接的表现就是socket对象客户端连接服务端时,先随机分配一个端口去连接服务器的80端口,然后服务器会另外随机分配一个端口与客户端通信,该端口由一个socket持有。在程序上的表现就是:当这个socket还存在,就意味着客户端和服务端还在建立连接;反之,即断开连接。通常情况下,连接会被很快的处理完,然后断开。当客户端再次需要请求服务器资源数,再重新经历上面的过程进行连接。这时客户...原创 2017-05-04 12:39:30 · 1679 阅读 · 0 评论 -
缓存数据库选型——redis和memcached
参考:《Memcached 与 Redis 实现的对比》、《memcached redis 对比分析》一、区别1. redis支持的数据结构更丰富redis:string、list、set、sorted set、hash tablememcached:string2. redis支持数据持久化redis:支持持久化memcached:不支持持久化3. redis支持简单事务redis:支持简单事务*(不支持回滚,它的事务只保证命令依次被执行,即使中间一条命令出错也会继续往下执行,所以说.原创 2020-05-18 11:11:50 · 386 阅读 · 0 评论 -
几种大数据技术的辨析
一、数据采集/日志收集Filebeat本地文件的日志数据采集器没有传输功能Logstash专业的日志收集系统,侧重于日志收集简单易用Flume可以进行日志收集的消息传输系统,侧重于传输配置复杂,适合进行定制化开发二、消息传输消息队列:注重可靠性MQ(rabbitMQ)消息系统:注重性能,分布式,大数据,高并发Kafka:侧重于消息传输,自带存储Flume:侧重于信息采集,自带采集器三、数据存储ESHDFS四、数据展示KibanaGrafana原创 2020-05-10 00:26:18 · 712 阅读 · 0 评论 -
代码设计经验记录
持续总结更新……1. 类型与变量类型应该稍微详细,为了避免重复,也可以很好的见名知意。变量应该在上下清晰的情况下,保持简洁,为了方便阅读。...原创 2020-04-14 10:32:28 · 159 阅读 · 0 评论 -
RESTful API 命名设计
业务背景频道分类下有频道频道分类有:体育、电影、电视剧,这三类(与频道分类是上下级关系)同时频道分类有国内(只能看电影、电视剧)、国外(只能看体育、电影)两个版本(与频道分类是修饰限定关系)1. api中只应该含有名词,名词表示资源/v1/channel-categories 获取所有频道分类channel和categories,虽然channel是用来修饰categories的,但是...原创 2020-04-14 10:03:12 · 524 阅读 · 1 评论 -
避免大批量查询
一、大批量查询的危害尽量避免出现大批量查询(1000条以上),否则系统中会出现对象的大数组,因为无论它的构建,转换,传输,解析,缓存都会消耗特别多的资源,包括CPU、内存、IO。其中,所有的行为都会消耗内存,转换和解析需要CPU,传输需要IO。数据库中1M的数据,在内存中可能会占用100M。原因如下:构建数据库中存的是文本信息,构建成对象之后,对象以及对象的每个属性(属性也是对象)都会占用...原创 2019-12-12 17:12:25 · 563 阅读 · 0 评论 -
高并发——流量削峰
一、同步转异步消息队列二、限流漏斗桶、令牌桶三、熔断服务降级原创 2019-12-10 13:56:39 · 411 阅读 · 0 评论 -
性能与指标记录
记录一些性能与指标,对规模有个大致的理解,方便以后进行估算。原创 2019-03-27 13:35:18 · 474 阅读 · 0 评论 -
监控中心设计思路
监控中心包括4个部分,一、防火墙将做成一个jar包可以接入到各个微服中,实际上是一个aop切面。功能:频率控制、黑名单和采集请求频率控制某个用户、设备、ip的请求频率不能超过多少黑名单某个用户、设备、ip的请求不允许通过请求队列记录经过防火墙的请求防火墙可以定义自己的请求需要经过哪些监察器(优化:可以在监察器之间采用与或非进行组合)二、监察中心组成部分:任务调度、线程池...原创 2019-11-20 10:01:46 · 707 阅读 · 0 评论