项目中所用技术汇总
soa架构
- 分布式架构,对应着垂直式架构
zookeeper
- 注册中心,分布式应用管理程序
dubbo
- 分布式框架,rpc实现框架,简单来说就是跨应用掉方法的框架
angularjs
- MVC前端框架,可以在前端写大量业务代码
- body标签要加 ng-app;要引入核心包
- 页面要展示数据要用两个大括号{{表达式或变量}}
- angularjs 在input中用ng-model指令融合id与name ; ng-model的值放入当前页面的$scope域保存
- $scope是angularjs的内置对象,$scope中有请求的数据,有响应的数据还有方法都放进去了,作用域是当前页面
- 在body中用 初始化指令 来赋值 列:ng-init="myname='小明'"
- ng-click鼠标单击指令-----》事件
- 指令 ng-repeat = "变量名 in 要遍历的数组"
- $http是angularjs的内置对象,主要作用是发ajax请求,‘$http.get’就是get请求,post同理
- $event是angularjs中的内置对象, 作用是从$event当中可以获取当前操作的事件是什么.例如如果是复选框那么可以中里面知道是勾选还是取消勾选
- $watch是angularjs的内置对象,作用是监听$scope域中的某个遍历发生了值的改变
springSecurity框架
- 如果要用户名密码去数据库验证需要自己实现UserDetailService类
- dubbo的bug之一,扫描的唯一一个包只能扫包下面一层,如需扫描其他包则要直接bean标签
FastDFS
- 分布式文件系统,可以统一管理存储服务器集群, 统一管理存储读取文件.
Redis
- nosql数据库
- 流程:获取数据时从redis中直接获得,不用去数据库,获取不到就去数据库查询,然后在redis中存一份
- 持久化方案:
- rdb(默认) 分时持久化:可以在配置文件中设定, 多长时间持久化一次, 持久化次数少也就是操作硬盘的次数少,
速度快. 但是如果在没有完成持久化前, 如果服务器断电, 则内存中没有持久化的数据会丢失.
- aop 实时持久化:每次向redis中做增删改操作, 都会将数据持久化到硬盘上, 数据可靠性高, 不会丢失,
但是速度慢
- redis在互联网项目中一般作为分布式缓存用
- redis中数据类型: string, set, zset, list, hash
Solr
- 什么是solr:
solr是一个apache的全文检索引擎系统, 就是个war包,可以放在tomcat中运行
solr底层是lucene
使用solrj可以操作solr服务器
- 作用:
对于大数据量搜索或者是查询, 速度非常快, 并且不会随着数据量的增大而减缓查询速度.
主要应用于大型的互联网项目中, 做大规模数据查询.
- solrhome:
solrhome就是solr的家, 一个solr服务器只能有一个solrhome, 一个solrhome中可以有多个solr实例, 里面的collection1
文件夹就是默认的solr实例, 一个solrhome中可以同时有多个实例, 实例中有索引库, 实例和实例之间是互相隔离的 ( 类似于数据库 )
- springDataSolr:
底层用的是solrj
spring Data Solr里面的Criteria对象中的方法, is和contains的区别:
contains: 类似mysql中的like模糊查询,将关键字当成一个整体
is:把关键字使用对应域的分词器进行且分词,然后将切分出来的每个词, 进行查询
freemarker模板引擎
- 作用:freemaker模板引擎可以通过模板和数据生成静态化页面.
- 优点:
- 提前根据数据和模板生成静态化页面并通过io流写道硬盘上,访问时可直接访问硬盘而不用访问数据库,大大的提高并发读取性能
- 提前生成好页面,提高访问的速度
- 由于html不需要tomcat解析浏览器可以直接访问, 所以给tomcat降低高并发访问压力
- 使用场景:页面有固定的样式, 并且一次生成多次读取, 尽量少的改动数据
- freemarker生成静态化页面:
1. 页面 = 模板 + 数据
2. 模板: 模板在freemarker中是以.ftl为后缀名的文件, 在模板中可以使用html标签, css, js,图片等静态资源,模板中可以使用el表达式获取数据, 但是无法使用jstl标签来判断和循环, 所以模板引擎会有自己的一套标签库
3. 数据:数据一般存储在关系型数据库或者redis
springBoot框架
介绍:简单来说就是一个后端全栈框架
作用:提倡零配置, 不用整合框架结构, 直接编写业务代码, 给企业提供人员利用率, 提高开发效率. 但是springboot只适合小项目使用.