- 博客(50)
- 收藏
- 关注
转载 vhr——先跑起来再说
一,vhr项目宏观分析目的:实现机关和事业单位的人事管理信息系统。软件使用的对象:面向机关和事业单位内人事信息管理人员和在职开发人员。【架构选型】vhr面向的群体范围并不大,并非属于互联网应用,所以市面上鼓吹的高并发,高性能对于这个项目来说并不适用。盲目上微服务只会徒增成本。系统业务流程设计1.管理员对员工信息的操作首先,管理人员登陆进入系统,对员工信息进行增删改查,...
2019-09-24 13:21:00
4780
转载 SpringBoot集成JPA
在SpringBoot中,通过Spring Data JPA 和 Spring Data Rest可以快速构建出一个RESTFul应用。关于Spring Data JPA:JPA是一种规范,而Spring Data JPA可以有效简化关系型数据库访问代码。关于Spring Data:Spring Data是Spring的一个子项目,致力于简化数据库访问。JPA规范:JPA中有种...
2019-09-23 14:10:00
265
转载 B+Tree索引原理
什么是索引?索引是一种数据结构,具体表现在查找算法上。索引目的提高查询效率【类比字典和借书】如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的。去图书馆借书也是一样,如果你要借某一本书,一定是先找到对应的分类科目,再找到对应的编号,这是生活中活生生的例子,通用索引...
2019-09-23 00:56:00
373
转载 MySQL规范
一,设计规范三大范式第一范式1NF:属性不可分【反例:address可1分为国家,省市,地区】第二范式2NF:属性完全依赖主键【反例:订单编号和商品编号位于同一张表中,前者与订单信息强相关,后者与商品信息强相关】【该拆表了】第三范式3NF:不允许数据冗余【两张表很多属性相同】命名规范1,命名规范:小写+下划线,不能使用保留关键字【MySQL对象名默认规定大小写敏感,且在...
2019-09-23 00:14:00
193
转载 MySQL基础
关于MySQL官方文档:https://dev.mysql.com/doc/refman/8.0/en/MySQL是Oracle公司开发、发布和支持的最流行的开源SQL数据库管理系统。【主要特点】开源使用BTree索引支持多线程,对多核CPU性能可以达到更好的发挥用C和C++编写CentOS7.6 安装MySQL8.0环境准备卸载mariadbrpm -qa...
2019-09-21 12:30:00
192
转载 SpringBoot集成Redis缓存
关于Redis缓存为什么使用缓存?提升重复访问数据的访问效率。Redis的三个用途数据库,缓存,消息中间件Redis的应用场景(针对被重复访问的数据)页面缓存(图片,CSS,html等静态数据)——热点数据最新列表排行榜计数器session存储使用建议Redis 速度快是建立在内存数据库基础上的,但是一台服务器的内存要比磁盘金贵许多,所以在项目初期不要想...
2019-09-18 09:13:00
261
转载 [中秋]宇宙第一 IDE Visual Studio 了解一下
官网https://visualstudio.microsoft.com/zh-hans/vs/文档https://docs.microsoft.com/zh-cn/visualstudio/designers/getting-started-with-wpf?view=vs-2019https://docs.microsoft.com/zh-cn/dotnet/framew...
2019-09-17 10:52:00
194
转载 SpringBoot集成Druid连接池
关于数据库连接池早期数据库访问(也没多少人上网) ①装载数据库驱动程序; ②通过jdbc建立数据库连接; ③访问数据库,执行sql语句; ④断开数据库连接。对于并发量大的网站,会导致以下问题:每一次web请求都要建立一次数据库连接,在同样的步骤下重复占用系统资源不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去如连接过多,也可能导致内存泄漏,服务...
2019-09-17 10:28:00
293
转载 [SpringBoot——Web开发(使用Thymeleaf模板引擎)]
【文字只能描述片段信息,具体细节参考代码】https://github.com/HCJ-shadow/SpringBootPlus引入POM依赖 <properties> <java.version>1.8</java.version> <thymeleaf.version>3.0.11.RELEAS...
2019-09-16 16:40:00
401
转载 SpringBoot——Web开发(静态资源映射)
静态资源映射SpringBoot对于SpringMVC的自动化配置都在WebMVCAutoConfiguration类中。其中一个静态内部类WebMvcAutoConfigurationAdapter实现了WebMvcConfigurer接口。(361)WebMvcConfigurer接口中定义了addResourceHandlers处理静态资源的默认映射关系.(500)ad...
2019-09-12 16:36:00
242
转载 SpringBoot——HelloWorld
微服务和单体应用的宏观理解微服务:一组小型应用通过HTTP的方式进行沟通的开发思想单体应用:ALL IN ONE单体应用的不足:随着业务逻辑的不断更新和迭代开发,起初的小型应用会不断膨胀,当应用达到一定规模量时,敏捷开发和部署维护的效率就会举步维艰。也就是说,单体应用的可持续性能力较弱。微服务的解决方案:通过分解巨大的单体式应用使得可持续性开发和优化等扩展能力增强。自由的...
2019-09-12 13:11:00
166
转载 《从零开始学架构》读后感
2019.9.9到9.10,花了两天的时间通读了《从零开始学架构》。在互联网的浪潮下,技术迭代如此之快,不免心生疑惑,有些迷茫。大三下学完Spring+SpringMVC以及MyBatis的组合框架以为终于能歇一歇了,SpringBoot和SpringCloud映入眼帘。了解完SpringCloud组件后对单体和微服务之间产生了极强的主观偏见,分布式,集群,高性能,高可用这些名词在...
2019-09-10 13:42:00
285
转载 《从零开始学架构》笔记——第四部分:架构实战
第十五章 互联网架构演进互联网的浪潮下,各种技术层出不穷,是跟上时代的步伐,还是固守坚固的城池....技术选型的问题决定软件项目的大方向,新旧技术之争是永恒的焦点。“不识庐山真面目,只缘身在此山中”,跳出技术的范畴,用业务发展的角度去审视技术,答案就会非常清晰。1000以内的加减乘除用计算器就足够了,不必使用曙光超级计算机。技术的权衡本质是在业务和成本之间寻求一个平衡点。淘...
2019-09-10 12:02:00
215
转载 《从零开始学架构》笔记——第三部分:可扩展架构模式
第十章 分层架构(面向流程拆分)保证各层的差异足够清晰,边界足够明显隔离关注点层层传递例如:MVC:分离数据处理,视图显示,业务逻辑第十一章 SOA架构(面向服务拆分)背景:企业内部的IT系统重复建设且效率低下。企业各部门都有独立的IT系统,人力资源部门,财务部门,销售部门....当一个员工离职后,需要很多部门同时注销信息。(冗余)业务发展,各部门合作的复杂度升高...
2019-09-10 10:34:00
184
转载 《从零开始学架构》笔记——第二部分:高性能和高可用架构模式
第四章 存储高性能关系数据库读写分离(减轻访问压力)基本原理:将数据库读写操作分散到不同节点上,减小单个数据库的访问压力,提高访问效率。基本实现:数据库服务器搭建主从集群,一主一从或者一主多从。数据库主机负责读写操作,从机负责读操作。数据库主机通过复制将数据同步到从机。业务服务器将读写发送到主机,将读发送到从机。事务问题:一致性。【问题】如何保证主机和从机的...
2019-09-10 09:23:00
197
转载 《从零开始学架构》笔记——第一部分:概念和基础
第一章 架构基础模块与组件模块:从逻辑角度拆分,主要目的是职责分离组件:从物理角度拆分,主要目的是单元复用框架与架构框架:组件规范(开发规范),提供基础功能的产品。架构:对软件系统结构的描述架构设计的目的是什么?软件架构的历史第一次软件危机——结构化程序设计登场2000名程序员历时一年,花费原子弹1/4的投入,生产100w行代码。最终以失败告终。第二次软件危机...
2019-09-09 23:52:00
263
转载 前后端分离的一点思考
前后端分离顾名思义,就是前端和后端分开。为什么需要分离?其一是效率,前后端分离的开发模式可以理解为多核CPU的并行计算能力,如果前端和后端可以同时开发,本来6个月的软件周期,可以缩短至4个月甚至更短,但是在前后端耦合的时代,前端往往依赖后端的接口。其二,是分工明确带来的高质量成果。在前后端耦合的时代,有这样一句话,做前端的要懂点后端,做后端的要懂点前端,不然没办法去合作。从前后...
2019-09-06 14:58:00
169
转载 JVM类加载机制
描述JVM如何加载Class字节码文件。类加载过程加载连接验证准备解析初始化加载获取类的二进制字节流加载到内存(比如从Zip包,网络,反射中读取)将字节码的静态数据结构转换成运行时数据结构在内存中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口验证保证字节流的信息符合JVM规范。(JVM的自我保护机制)正常运行...
2019-09-03 16:20:00
150
转载 JVM参数配置&&命令工具
JVM参数配置大致方向:JVM调优的目的是保证在一定吞吐量的情况下尽可能的减少GC次数,从而减少系统停顿时间,提高服务质量和效率。其中减少GC次数的原则:将新生代转换成老年代的数量降至最少(及时进行Minor GC回收新生代)减少Full GC 次数常用参数-XX:+PrintGCDetails:打印GC的详细信息(冒号之后的+表示打印,-表示不打印)-XX:+U...
2019-09-03 00:47:00
313
转载 GC回收算法&&GC回收器
GC回收算法什么是垃圾?类比日常生活中,如果一个东西经常没被使用,那么就可以说是垃圾。同理,如果一个对象不可能再被引用,那么这个对象就是垃圾,应该被回收。垃圾:不可能再被引用的对象。finalize方法在对象没有被引用时调用在Object类里定义新生代与老年代IBM公司的研究表明,在新生代中的对象 98% 是朝生夕死的。在实际的 JVM 新生代划分中,不是采用...
2019-09-01 15:18:00
191
转载 JVM宏观认知&&内存结构
JVM宏观认知1.什么是虚拟机?虚拟机是一种软件。可分为系统虚拟机(仿真物理机)和程序虚拟机(执行单个计算机程序,比如JVM)。2.什么是Java虚拟机(JVM)?JVM是一种将字节码转化为机器码的软件。(同上)历经时间的迭代,目前广泛应用的Java虚拟机是Oracle的HotSpot VM。3.JVM有什么用?理论:加深对Java底层运行机制的了解和认知实践:自...
2019-09-01 06:00:00
131
转载 SpringCloud阶段总结
组件列表服务注册:Eureka客户端负载均衡:Ribbon客户端调用工具:Feign熔断器:Hystrix熔断监控:TurbineAPI网关:Zuul分布式调用链监控:Spring Cloud Sleuth + Zipkin分布式配置中心Apollo参考资料清单视频:腾讯课堂:https://ke.qq.com/course/280057#term_...
2019-08-29 16:55:00
136
转载 分布式配置中心Apollo——QuickStart
分布式配置中心剥离配置文件,实现动态修改,自动更新。【假设没有分布式配置中心,修改配置文件后都需要重启服务,对于数量庞多的微服务开发来说,就会非常繁琐】分布式配置中心有哪些disconf(依赖zookeeper)zookeeperdiamond (阿里巴巴)ApolloRedisxxl-job为什么选择ApolloApollo除了功能完备之外,在国内的普...
2019-08-29 01:43:00
298
转载 了解敏捷开发
什么是敏捷开发?敏捷开发以用户的需求变化为核心,采用迭代、循序渐进的方法进行软件开发。敏捷开发模式的分类XP极限编程(eXtreme Programming)SCRUM水晶方法动态系统开发方法精益开发其中XP和SCRUM最为流行。极限编程极限编程是一种轻量,高效,弹性的软件开发方式。四大核心价值观沟通:完善的流程和详细的文档用于团队协作虽然能够保证一致性...
2019-08-28 23:27:00
201
转载 枚举类&&注解&&反射
什么是枚举类?枚举类是优化定义固定对象的一种特殊的类。换句话说,在需要类的实例为一个或者多个并且相对固定的时候,使用枚举类。(枚举类可扩展)类的实例相对来说固定的有日期,客观不变的一些数字等等。enum WorkDay{ MONDAY, THUEDAY, WEDNESDAY , THURSDAY , FRIDAY;}public class Main { ...
2019-08-25 14:58:00
177
转载 服务链路跟踪 && 服务监控
服务链路跟踪背景微服务以微出名,在实际的开发过程中,涉及到成百上千个服务,网络请求引起服务之间的调用极其复杂。当请求不可用或者变慢时,需要及时排查出故障服务点成为了微服务维护的一大难关。服务链路跟踪技术应运而生。ZipKinZipkin 是一个开放源代码分布式的跟踪系统,由Twitter公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存...
2019-08-24 20:22:00
392
转载 数据读写API——IO流
理清一些概念1.Java 中的IO是干啥的?IO指的是Input和Output,主要目的是实现数据在存储介质之间的传输。【流:数据流,类比与水流的流动】2.IO分类按照操作单元来划分,可以分为字节流和字符流。4.字节流和字符流的区别字节流顾名思义操作的数据单元是1个字节,也就是8位;那么问题来了,一个中文字符用GBK编码占用两个字节,用UTF-8占用三个字符。字节...
2019-08-24 17:28:00
285
转载 Nginx+Zuul集群实现高可用网关
代码参考:https://github.com/HCJ-shadow/Zuul-Gateway-Cluster-NginxZuul的路由转发功能前期准备搭建Eureka服务注册中心服务提供者msc-provider-5001【提供一个hello请求做测试】创建gateway-7001pom依赖<dependency> <groupId...
2019-08-24 04:30:00
603
转载 动态引用存储——集合&&精确的集合定义——泛型
前言:对于面向对象的语言来说,为了方便对多个对象进行操作,就必须要对对象进行存储。使用数组来存储对象的最大问题就是数组长度的固定性。(不灵活,难扩展)Java集合又称容器,可以动态的将对象的引用存储在容器中。(灵活可扩展)集合和数组区别数组:可以存储同一类型的基本数据类型或者引用数据类型长度固定集合:可以存储不同类型的元素,但必须是引用数据类型长度可变...
2019-08-23 19:09:00
226
转载 自定义侧边栏博客目录
参考:<!-- 目录索引列表生成 --><script language="javascript" type="text/javascript">function GenerateContentList(){ if ($('#cnblogs_post_body').length == 0) { return; } var jquery_h...
2019-08-22 19:49:00
755
转载 熔断监控Turbine
step1:修改hosts的ip地址映射,创建eureka集群可参考:https://www.cnblogs.com/noneplus/p/11374883.htmlstep2:创建服务提供者pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.or...
2019-08-22 19:09:00
255
转载 熔断器Hystrix
什么是服务雪崩?单个服务发生故障,占用过多的系统资源,从而导致级联故障的情况称为服务雪崩。什么是Hystrix?在分布式环境中,许多服务依赖项中的一些必然会失败。(服务挂了)Hystrix是一个库,通过添加延迟容忍和容错逻辑,控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。容错...
2019-08-22 17:40:00
140
转载 Java面向对象特性总结
1.面对对象与面对过程的区别什么是封装?我看到过这样一个例子:我要用洗衣机洗衣服,只需要按一下开关和洗涤模式就可以了。有必要了解洗衣机内 部的结构吗?有必要碰电动机吗?有必要了解如何通电的吗?如果是对于面向过程来说,这些你都得知道。“吾生也有涯,而知也无涯”,面向对象的封装与庄子的思想遥相呼应:用有限的时间去做更适合的事情。面对过程是软件开发的先驱者,但其局限性不能满足当今的...
2019-08-22 08:01:00
133
转载 Java基础语法总结
Content1.win10安装JDK82.数据类型与变量3.运算符4.程序流程控制5.数组1.win10安装JDK8jdk8下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html【下载的这个安装包主要包含JDK,JRE,JavaFx包...
2019-08-21 22:34:00
143
转载 为什么需要定义数据类型???
变量和数据类型难舍难分,思考了好久,得出下面这个结论:变量是内存中的一个存储区域。而数据类型的定义决定了这块存储区域的大小。【变量与数据类型的关系】为什么需要定义变量存储区域的大小?以结果为导向来分析:Java的整数类型分为4种:byte,short,int,long。四种的区别在于占用的存储空间不一样。byte占用1个字节,short占用2个字节,int占用4个字节,...
2019-08-21 19:54:00
1930
转载 集成Ribbon的客户端调用工具——Feign
什么是Feign?客户端调用工具Ribbon+RestTemplateFeignFeign特性:Feign本身包含RibbonFegin是一个采用基于接口的注解的声明式客户端调用工具,更加简便基于上个环境来做一些改造:https://github.com/HCJ-shadow/Ribbon创建msc-consumer-feign-80工程pom依赖...
2019-08-19 19:38:00
197
转载 Ribbon实现客户端负载均衡
什么是Ribbon?客户端负载均衡组件。前期准备:搭建一个Eureka集群和一个注册服务https://www.cnblogs.com/noneplus/p/11374883.html创建服务提供者msc-provider-5002,msc-provider-5003创建消费者msc-consumer-80pom依赖服务提供者msc-provider-500...
2019-08-19 05:39:00
159
转载 服务注册组件——Eureka高可用集群搭建
什么是Eureka?服务注册组件:将微服务注册到Eureka中。为什么需要服务注册?微服务开发重点在一个"微"字,大型应用拆分成微型服务,意味着服务的数量不可能少。服务之间存在调用关系,假设没有服务注册,微服务之间的调用关系就会是这个样子:微服务的部署可能不会在同一台服务器上,而是需要通过远程调用,然后就涉及到IP地址了。理论上来说,直接通过IP地址直接通信也没有什么问题...
2019-08-19 02:17:00
134
转载 结构型模式————装饰器模式(3.1)
什么是装饰器模式?【先吃三颗栗子:】1.PC=主机+显示器+键盘+鼠标+鼠标垫主机是核心,而其他的组成部分都是装饰。2.手抓饼=饼+鸡蛋+培根+黄瓜饼是核心,鸡蛋,培根是可选的,可以理解为装饰。3.咖啡=咖啡+牛奶+冰+方糖咖啡是核心,牛奶等可选。比喻虽然形象生动,但是与实际或多或少会产生偏差。抽象的解释:装饰器模式的目的——核心部分和装饰部分可以自由组合。...
2019-08-13 19:49:00
130
转载 创建型模式总结(2.x)
顾名思义,创建型模式的聚焦点在如何创建对象能够将对象的创建与使用最大化的分离从而降低系统的耦合度。创建型模式可分为:单例模式:一个类只能有一个实例对象工厂模式:简单工厂模式:聚焦单个产品种类的创建(客户端无法扩展)工厂方法模式:聚焦单个产品种类的创建(客户端可自扩展具体的产品)抽象工厂模式:聚焦多个产品种类的创建(客户端可自扩展固定产品种类下的产品)原型模式:创建一...
2019-08-13 17:55:00
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人