发表于: 2019-11-10 20:03:13
1 1007
一、今天完成的事
1.完成小课堂
1.SOA,SCA,微服务解决的问题
实现了业务组件和传输协议的分离,可以处理各种平台组件的集成。
使构建在各种各样的系统中的服务,以一种统一和通用的方式进行交互
松散程序耦合度,对应用组件进行分布式部署,组合和使用
2.什么是SOA
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
SOA的实施具有几个鲜明的基本特征。实施SOA的关键目标是实现企业IT资产的最大化作用。要实现这一目标,就要在实施SOA的过程中牢记以下特征:
可从企业外部访问
随时可用
粗粒度的服务接口分级
松散耦合
可重用的服务
服务接口设计管理
标准化的服务接口
支持各种消息模式
精确定义的服务契约
SOA服务具有平台独立的自我描述XML文档。
SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。
在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成(UDDI, Universal Description, Definition, and Integration)是服务登记的标准。
每项SOA服务都有一个与之相关的服务品质(QoS, quality of service)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信(译注:可靠消息是指,确保消息“仅且仅仅”发送一次,从而过滤重复信息。),以及谁能调用服务的策略。
3.什么是SCA
简单来说SCA就是一套符合SOA思想的规范
4.什么是微服务
1)一组小的服务(大小没有特别的标准,只要同一团队的工程师理解服务的标识一致即可)
2)独立的进程(java的tomcat,nodejs等)
3)轻量级的通信(不是soap,是http协议)
4)基于业务能力(类似用户服务,商品服务等等)
5)独立部署(迭代速度快)
6)无集中式管理(无须统一技术栈,可以根据不同的服务或者团队进行灵活选择)
5.SOA和微服务的区别
SOA和微服务的主要区别:
微服务剔除SOA中复杂的ESB企业服务总线,所有的业务智能逻辑在服务内部处理,使用Http(Rest API)进行轻量化通讯
SOA强调按水平架构划分为:前、后端、数据库、测试等,微服务强调按垂直架构划分,按业务能力划分,每个服务完成一种特定的功能,服务即产品
SOA将组件以library的方式和应用部署在同一个进程中运行,微服务则是各个服务独立运行。 传统应用倾向于使用统一的技术平台来解决所有问题,微服务可以针对不同业务特征选择不同技术平台,去中心统一化,发挥各种技术平台的特长。
SOA架构强调的是异构系统之间的通信和解耦合;(一种粗粒度、松耦合的服务架构)
微服务架构强调的是系统按业务边界做细粒度的拆分和部署。
2.解决昨天的问题
找了半天的bug,每次登录之后还是跳转到login页面。
在配置类中配置拦截url加入login/0,原来是拦截了
filterChainDefinitionMap.put("/login/0","anon");
登录之后能正常显示了
shiroConfig中再加入一段注销的代码
filterChainDefinitionMap.put("/logout","logout");
然后再加入一段logout的配置类,
public class SystemLogoutFilter extends LogoutFilter {
@Override
protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
//在这里执行退出系统前需要清空的数据
Subject subject=getSubject(request,response);
String redirectUrl=getRedirectUrl(request,response,subject);
ServletContext context= request.getServletContext();
try {
subject.logout();
context.removeAttribute("error");
}catch (SessionException e){
e.printStackTrace();
}
issueRedirect(request,response,redirectUrl);
return false;
}
}
该配置类继承了LogoutFilter类
这个类的描述
实现了注销功能
二、遇到的问题
三、收获
四、明天的计划
加入数据库的实现
评论