- 博客(32)
- 收藏
- 关注
原创 同一服务器多个mysql服务安装及配置
1. 正常流程安装一个端口号为3306的mysql程序;2. 下载相同版本mysql的压缩版安装包,解压;3.复制第一个mysql服务的my.ini文件到解压后的根目录下,并修改下列配置内容:4. 创建配置文件中数据存放等路径目录5. cmd->进入解压后的bin目录,输入以下命令(执行成功如下图):mysqld --defaults-file=D:\mysql-5.7.38-winx64\my.ini --initialize --console6. 注册服务
2022-05-09 11:00:21
686
原创 SpringCloud
Spring Cloud简介Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,如服务发现、服务网关、服务路由、链路追踪等。Spring Cloud 并不重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。Spring Cloud 提供了构建分布式系统所需的“全家桶”。Spring Boot官方文档Spring
2021-11-30 14:46:04
223
原创 Redis
Redis简介REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。总体来说, Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 通常被称为数据
2021-11-30 13:40:40
799
原创 Sentinel(一)
Sentinel(一)Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。Sentinel组成流量规则配置服务感知机制服务架构预案
2021-11-30 13:28:31
815
原创 系统健壮性设计(三)
系统健壮性设计(三)代码健壮性需要参数校验的场合所有的POJO类属性必须使用包装数据类型;定义DO/DTO/VO等POJO类时,不要设定任何属性默认值;定义数据对象DO类时,属性类型要与数据库字段类型相匹配;getter/setter方法中,不要增加业务逻辑;禁止在POJO类中,同时存在对应属性xxx的isXxx()和getXxx()方法;构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在init方法中。关于异常处理代码的封装封装是一种对象功能内聚的表现形式,主要是被封装
2021-11-30 01:02:10
490
原创 系统健壮性设计(二)
系统健壮性设计(二)定义系统的健壮性(软件的健壮性)一般指软件在异常情况、特殊环境、超限情况下的稳定运行的能力。健壮性度量(维度)环境:混沌工程,异地多活架构:负载均衡,容灾能力代码:参数校验,异常处理,分支覆盖负载均衡负载均衡是防止服务或数据热点问题的出现,使得集群内的所有服务器的负载水位在同一个水平线上。负载均衡常用实现方法:轮询法:按顺序轮流分配到各个服务器上(可加权)随机法:流量随访分发IP哈希法:保证IP地址请求到同一服务器上(就地/最近连接)最小连接数法:根据服务
2021-11-30 00:23:36
1215
原创 系统健壮性设计(一)
系统健壮性设计代码评审烂代码如何评估你将要面对的代码是否是一堆烂代码,可以从以下两个方面评估人的视角:维护者脏话的频率高,且内容丰富;存在动粗的可能性面向离职编程代码的视角:不遵守代码规约;代码像迷宫;代码流程脚踩西瓜皮代码执行效率低;代码行数与bug数不成正比代码的恶性循环#mermaid-svg-QOI4DQiDXuJ8uaL5 .label{font-family:'trebuchet ms', verdana, arial;font-family:var
2021-11-29 23:30:11
547
原创 RBAC(一)
介绍 RBAC(基于角色的权限控制,role base access control)是一种设计模式,用于设计和管理权限相关数据的一种模型。 RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为What、How的问题,Who、What、How构成了访问权限三元组。 组成 RBAC的组成主要有三个部分:用户、角色和权限用户:每个用户都有唯一的id识别,并赋予不同的角色。角色:不同角..
2021-11-27 20:09:26
759
原创 系统安全规约(二)
SQL注入 SQL注入是指通过把SQL命令插入到web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 动态生成的SQL语句时,没有对用户输入的数据进行验证是SQL注入攻击成功的主要原因。 防御方法: 过滤危险字符 使用预编译语句 参数化查询 Mybatis框架SQL注入漏洞场景 使用“$”输入参数 模糊查询like后的参数拼接 in之后的参数 order by 之后 XSS跨站脚本攻击(Cross Site Scripting..
2021-11-27 17:36:50
3158
原创 系统安全规约
权限管理越权访问(Broken Access Control, BAC)是Web应用程序中比较常见漏洞,其作用范围广、危害大,被OWASP列为Web应用十大安全隐患的第二名。分为垂直越权和水平越权。水平越权:是指基于数据的访问控制设计缺陷引起的漏洞。特别警惕:当不同用户之间属于同一角色,但服务器在处理用户请求时,无判断数据所属的人员/部门,而导致的数据越权访问防范措施:前、后端同时对用户输入的信息进行校验,实现双重校验机制。 调用前,验证用户是否有权限。 执行关键操作前,验证用户的身份与权限;
2021-11-22 23:33:33
2521
原创 项目中的单元测试
软件测试:通过手工或工具对被测试对象进行测试操作,以此来验证实际结果与预期之间是否存在差异:验证软件的正确性 找出软件中的bug单元测试是对软件组成单元进行的测试。其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元:模块,又称模块测试单元测试的好处:提高软件质量 促进代码优化 提升研发效率AIR原则(单元测试整体必须遵守)A: 自动化(automatic),单元测试应该是全自动执行的,并且非交互式的。测试用例通常是被定期执行的,执行过程必须完全自动化才有意义。
2021-11-17 23:49:24
338
原创 JWT(一)
简介JWT(Json web token),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。JWT组成Header(头部) : 包含两部分,使用Base64编码组成,token类型和采
2021-11-16 17:56:32
3467
原创 OAuth2.0(二)
常用各种授权验证架构 单体架构--cookie session机制 分布式架构方案1--session共享 分布式架构方案2--基于token cookie session 和token的区别: cookie是不能跨域的,前后端分离分布式架构实现多系统SSO非常困难 移动端应用没有cookie,所以对于移动端支持不好 token基于header传递,部分解决了CSRF攻击(CSRF一般指跨站请求伪造。 跨站请求伪造(英语:Cross-site request..
2021-11-15 23:13:25
108
原创 OAuth2.0(一)
什么是OAuth2OAuth2是目前最流行的一种授权协议,常用于用户授权第三方应用获取用户数据。具有多种编程语言版本。OAuth2.0和OAuth1.0的区别注:OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0,即完全废止了OAuth1.0。工作流程实例OAuth2.0授权模式授权码模式(authorization code)用户访问客户端(如京东),后者(京东)将前者(用户)导向认证服务器(QQ),假设用户给予授权,认证服务器将用户导向客户端
2021-11-15 22:47:43
674
原创 集合与并发
集合--数据结构的载体 数据结构:指逻辑意义上的数据组织方式及其相应的处理方式 数据组织方式: 线性组织、树结构、图结构、哈希结构等 数据处理方式:以某种特定的算法实现数据的增、删、改、查。 数据结构的优化与运算规模有关,也与调用频率有关 从最好的到最坏的时间复杂度: 常数级O(1),对数级O(logN),线性级(N),线性对数级O(NlogN),平方级O(N^2),指数级O(2N), 阶乘级(N!) HashMap的基本概念 哈希类集合的三个基本存储概念 名称 ..
2021-11-13 17:49:26
410
原创 Java开发避坑总结2
控制语句 在if/else/for/while/do语句中必须使用大括号; 表达异常的分支时,少用if-else方式处理分支(容易出现错漏、也不便于代码的阅读) 不要在其它表达式(尤其是条件表达式)中,插入赋值语句 不要在条件判断中执行其它复杂的语句,以提高可读性; 避免采用取反逻辑运算符(除一些特殊场景除外) 关于switch的使用建议 每个case要么通过continue/break/return等来终止 如果case中没有终止的控制,需要注释来说明程序将继续执行到哪个..
2021-11-13 16:28:23
525
原创 Java开发避坑总结1
浮点数据所有的货币都以最小单位且整型类型来进行存储(可以10的小数位的个数次方进行处理,变为整数) 由于浮点数据容易出现精度丢失的问题,所以在mysql中尽量使用decimal(M,D)进行存储(M指十进制中小数点左右两边的总个数,D指十进制中小数点右侧的数字个数,同时M>D, D默认为0);当数据库字段使用decimal类型,java同样使用decimal类型。 若数据无法使用decimal定义数据时,可考虑字符串或转为整数进行存储或运算。 浮点数之间、基本数据类型的等值判断,都不能用“=
2021-11-10 23:35:16
340
原创 T31Day13
一周总结 主要学习了关于后端开发方面关于项目结构、项目中不同部分技术选型、编码方面的一下设计规范,同时也评讲了一下前一周中关于UML图设计的要点。常用UML图表达的设计要点总结: 用例图:角色(有什么角色)和行为(不同角色的行为是什么)。 类图:模型的抽象、模型的属性和行为及不同模型之间的关系。 时序图:参与协作的对象是什么,随着时间的推进系统的行为是什么。 状态图:系统有多少状态、状态触发的条件(图中的同心圆表示:一条状态变化路线已到结束状态,不可...
2021-11-08 23:36:29
787
原创 T31Day12
对编码进行规约的好处减少代码的维护成本 改善可读性 提高团队开发的合作效率 锻炼出更加严谨的思维代码格式与命名风格 命名体现代码元素特征 抽象类命名使用Abstract或Base开头 异常类命名使用Exception结尾 测试类命名以它要测试的类名开始,以Test结尾 类型与中括号紧挨相连来定义数组 枚举类名带上Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开 命名最好望文知义,不要使用不知意义的缩写及拼音命名变量。 如何定义常量不允许魔法值及
2021-11-07 19:03:14
174
原创 T31Day11
数据访问层选型: 目的: 1.数据库连接管理问题 2.处理数据库查询数据和java对象高效映射 方向: 1. JDBC 2.数据库连接池(JDBC连接池)--建立数据库连接(TCP连接)、关闭连接、连接复用的问题。标准接口-javax.sql.DataSource ORM框架: mybatis:我的SQL我做主 mybatisplus:...
2021-11-06 16:27:41
301
原创 T31Day10
需要技术选型的原因:降低开发成本、提高研发效率技术选型的顺序问题:先整体再局部,先底层后高层巨石应用(第一代单体应用) 巨石应用:将所有模块打包到一起部署运行,如打包一个war包放到tomcat下运行的。 优势:对于小项目而言,易于调试、部署,运维方便。 缺点: 1.不可靠。如何一个bug都会拖垮整个应用。 2.单维扩展。只能通过运行更多的服务器水平扩展,而不同的应用服务对资源的需求不同。 3.不可持续发展。引入新的框架或语...
2021-11-06 15:28:58
185
原创 T31Day9
T31训练营开始进入实战环节了,虽然这几天工作比较忙而且也经常加班,但关于实战的项目也有自己动手搭建中,之前由于完全没有接触过springcloud的方面的项目,所以现在自己动手时有点无所适从,尤其是在于服务的模块项目划分及各模块中关于maven依赖配置文件pom.xml的编辑、application.xml的内容无法确定。我确认依赖不确定是由于对该项目使用的技术栈还不熟悉所造成,在动手搭建admin-service及ticket-service及多刷了几遍视频后,虽然admin-servic...
2021-11-04 16:52:05
163
原创 T31Day8
常用UML图表达的重点内容总结: 用例图:角色(有什么角色)和行为(不同角色的行为是什么)。 类图:模型的抽象、模型的属性和行为及不同模型之间的关系。 时序图:参与协作的对象是什么,随着时间的推进系统的行为是什么。 状态图:系统有多少状态、状态触发的条件(图中的同心圆表示:一条状态变化路线已到结束状态,不可逆转) 活动图:多少个系统参与协作;每个处理流程的瞬间判断、循环是这样进行的项目分层的好处: 隐藏下层业务的复杂度 ...
2021-11-04 12:26:41
152
原创 T31Day7
在T31训练营中已经上了3节课,从上课到现在已有一周的时间了,在这一周时间内,我们按照正常项目开发进行前期工作的流程讲解及其中开发中需要注意的规约,及一些实际开发中真正使用的知识点。 一个项目的开发前期尽可能的进行以下工作,从而避免开发中因目标的不明确造成的部分重复、无用的工作,导致项目后期开发的不确定性:了解项目的目的,用户的需求,项目运行的故事场景。分析需求的必要性,确认真实的用户需求。 根据需求目标,确定系统技术的架构,系统的架构图,系统相关的UML行为图(如系...
2021-11-02 00:42:18
184
原创 T31Day6
今天根据前天关于异常及日志的学习,进行T31项目的错误码、异常及日志的自主设计,在设计的过程中虽然有意识的向课中所讲的规范进行靠拢,但在设计的文档编写过程中还是会有很多不足及理解不深的地方:1. 错误码的设计分级原则是按系统服务划分还是其他的划分规则;2. 各类异常自定义封装类中有由于相同异常信息而触发的异常处理接口情况时,是否需要将不同自定义异常类中相同的异常信息处理提取出来额外封装成一个公共异常类;3. 输出到日志文件的信息中包含用户部分的操作失败的日志记录是否使用ERROR级...
2021-11-02 00:01:01
170
原创 T31Day5
目录心得体会前言一、异常java异常处理流程java异常处理机制java异常体系抛出与捕获的原则:try with resource流程解析(JDK7及以上功能)特殊异常场景及其处理对策二、日志日志的功能日志时效规约日志记录规约日志输出规约扩展日志的设计与规约三、错误码错误码的功用错误码规约心得体会 关于T31项目的第三节课主要讲解了异常与日志的使用对我们项目运行的作用,如何正确的运用异常的捕捉及日志的使用。在还没上.
2021-10-31 21:36:29
184
原创 T31Day4
感想 今天是参加孤尽训练营的第4天,在此上完的第二节课中,了解了在实际开发中关于数据库相关的一些设计、使用中规则(在上一篇文章中已进行整理记录),今天主要是记录进行E-R图设计过程中笔记。由于之前进行项目开发时,设计数据库阶段只有建表内容的文档编写,E-R图是完全未进行编写,所以下面的内容可能有所不足,会在后期的不断学习中修正以及补充完善。 笔记 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的...
2021-10-30 14:48:29
186
原创 T31Day3
一、表的约束1. 表、字段命名1. 必须使用小写字母或数字2. 禁止数字开头3. 禁止两个下划线中间只出现数字(禁用day_3_day)4. 不使用复数名词5. 禁用保留字6. 是与否概念的字段,必须使用is_xxx的方式命名,字段类型使用tinyint(1),字段值只能为1(是)或0(否)2. 数据类型1. 小数类型为decimal。2. 货币数据使用最小货币单位,数据类型为bigint。3. 字符串长度几乎相等使用char,注意不足长度时,将在字符末尾...
2021-10-29 15:22:30
252
原创 T31Day2
## UML行为图 行为图属于系统的动态部分,另一部分是系统的结构图。行为图捕捉系统的静态方面。## UML中的行为图主要包括: 1. 用例图:描述角色以及角色与用例之间的连接关系。说明使用系统的对象,及对象能通过系统做什么;用例元素包括:角色(使用者),用例(实现的功能),关系(关联、依赖、泛化、实现)。 2. 时序图:显示角色执行某项功能所要经历的时间顺序,即对象间的交换顺序。 3. 协作图:与时序图类似,也是一种交互图,但协作图更强调上下关系。 4. 状态图:...
2021-10-27 23:30:30
234
原创 T31项目Day1
之前负责项目都是直接听客户需求,整理后就直接动手,所以坑也掉了不少,但今天听完一节关于需求分析及设计的课后,感受最深是那一句话-- 架构是一种能力,而不是一个职位,如果之前自身有一种好的架构能力,感觉之前的有很多的坑都可以避免,例如一些的需求重复进行修改,业务接口代码的功能混乱,造成的后面进行查错和优化的困难。同时,有时在应对用户及领导两方需求不一致时的无助及妥协,到最终进行重复的工作,浪费自己的时间及精力。日后这种情况时,就像孤尽老师所说,不仅要在第一时间响应领导的想法,告诉领导这件事要不要...
2021-10-26 23:30:36
204
原创 T31项目Day0
感想及目的 T31项目在最初报名时,我只想拼一把,将现在项目设计及构建结构的无序及代码上的混乱进行自我的提升。今天听取了一节课后,我无比庆幸当初的拼一把想法,一个明确、清晰的项目实施原则,明确的计划尤为重要,尤其对比我现在负责的从项目设计到实施时混乱,需求的一改再改,代码的胡乱添加这样的感受最为突出,我希望从这个项目的学习实践中吸取经验,避免下一个工作项目同样嵌入现在负责的项目的泥潭中。1. 关于项目立项的STAR法则STAR法则是情景(situation)、任务(t...
2021-10-24 23:28:28
225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅