天天看点

4.28 实习Day3记录安恒实习Day3

安恒实习Day3

项目源码学习

git创建分支

  1. 执行git clone 将远程仓库代码拉取到本地
  2. 进入代码目录,通过git branch查询当前已存在分支.
  3. 通过git checkout指令,进入当前分支。

在Sql语句中加入 AND 1 =2 的原因

  • 是一种避免注入攻击的方式,即使在AND前的语句是正确的,因为 1 = 2 逻辑一定为假,导致前半段语句无法执行,避免注入攻击。

Redis缓存访问和删除

在本地对数据进行测试时,由于前一次访问进行了缓存,需要对redis缓存进行清除。

  1. 登录至指定端口的redis服务器 redis-cli -h 127.0.0.1 -p 6379
  2. 执行flushall 指令清除全部缓存 (如需要删除个别数据,先执行keys *查找全部key,然后执行del key 删除指定key)。

知识点拓展

SOA

什么是SOA理念(阿里Java开发手册中提到:暴露出来的服务一定是接口)

  • SOA全英文是Service_Oriented Architecture,中文意思是面向服务编程。
  • 用途:SOA解决多服务凌乱问题,SOA架构解决数据服务的复杂程度,SOA也称为服务治理。

应用场景

项目从统一到分布式的演变如下图:

随着业务的深入,对系统进行调整,分别是对数据和业务的拆分,最后每个子系统提供自己的服务。

多个子系统直接相互交互,相互调用非常凌乱,这时候就要用到SOA架构,帮助我们把服务之间调用的关系治理起来,提供统一的标准。将服务治理成下图所示。

什么是数据总线

相关概念 : 统一标准——各系统的协议、地址、交互方式。 新的交互方式:各个系统分别根据统一标准向数据总线进行注册,各子系统调用其他子系统时,我们并不关心如果找到其他子系统,我们只找数据总线,数据总线再根据统一标准找其他子系统,所以数据总线在这里充当一个只路人的作用。

也就是说,数据总线是起到调度服务的作用,数据总线不是集成服务,数据总线更新一个调度框架,每个服务需要根据约定向数据总线注册服务,那么如何注册那?其实数据总线就像一个字典结构,

数据总线里面一个key对于一个value,key指的是服务名,value则是服务的调度方式,还有一点需要说明的是,数据总线只是指路人,服务是不经过数据总线的,如上图的黄色线的路径。

 数据总线通过域名解析实现:一个域名绑定多台服务器,ajax也可以,dns也可以,解析域名嘛。

 其实数据总线还有一些高级应用,比如心跳检测,实现负载均衡等等,就不细说了,目前应用数据总线的有阿里的dubbo,还有zookeeper。
复制代码
           

SOA的好处

  1. 降低用户成本,用户不需要关心各服务之间是什么语言的、不需要知道如果调用他们,只要通过统一标准找数据总线就可以了。
  2. 程序之间关系服务简单
  3. 识别哪些程序有问题(挂掉) 缺点:提示了系统的复杂程度,性能有相应影响。

转载于:https://juejin.im/post/5cc5547cf265da0359487bc9