技术点总结:
spring
springmvc,struts
mybatis,hibernate
redis
activemq,rabbit,kafka
solr
shiro,security
cas
dubbo
springboot
springcloud
esl
mycat
Highchart
Mysql,orecal
Canal
Davincibi
clickhouse
一、技术项目:
大宗资源交易系统
项目描述:该项目是公司新立的项目,主要为大宗资源商品交易提供平台。分app,pc端。主要用到shiro,cas,activemq,dubbo,solr, Springmvc ,spring, mybatis.mysql,redis,retrofit,activemq等
责任描述:负责项目架构设计,框架的搭建,模块的设计开发,技术框架的整合,难点的攻克。
架构的的设计:
用负载均衡的模式,通过ngix转发,到web。web,数据库,redis,tfs,activemq等都用了集群的模式,同时采用dubbo分布式的框架,尽可能避免单点的存在,提高服务的容错,和并发吞吐量
框架搭建:
我整合springmvc,spring,mybatis,按照dubbo的分布式要求,按照mvc的模式思想,把项目分成四块,
消费者:对应v,
服务者:对应c
核心包:对应m.包含bean,sevice接口,mapper文件
Maven管理模块
在搭建的初期就对项目的目录结构进行了较好的规划,是后期加入的开发人员快速上手,由于采用分布式方式,子项目较多,引入了cas单点登录,权限这块用的是shrio,所以将cas和shiro进行了整合,应业务需要我做的另一个子项目---洽谈,引入了activemq对消息进行缓存。在做搜索的这块我引入了solr,数据的导入是用solr自己的dataimporthandle,高亮处理也是用solr自己的highlighting,没有使用js的方式 。
下面我就一些技术点进行简要提点;
1,redis:在使用的时候可以用redis的模板硬编码操作缓存的增删改查(这种需要增加一个设置防止key名称是类似十六进制的格式),但是建议用@cacheable,@cacheableEvict,@cacheableput
Redis可以直接存对象(本质是存字节码)
2,active:一个系统即可以配置发送,也可以配置监听,一个发送短可以有多个监听端只要监听的id不同即可并且clientid要不同(否则报错,在开发模式容易出现这种问题),但是如果要监听一个服务端那么,监听的信道要是这个服务端的发送时用的队列
其中queue是队列,先到先得消费就没了,topic订阅,所有监听端都有一份相同的消息
3,cas这里我就强调下单点退出的监听要放在字符集编码监听配置的前面,否则会出现提交的中文数据乱码(但是如果在mvc文件中配置mappingJacksonHttpMessageConverter的字符集的时候就可以避免),另外cas服务端deployerConfigContext.xml应配置好数据库的地址。以及人证的处理类,一般选择QueryDatabaseAuthenticationHandler,写好sql,并配置好密码的加密方式
4,shrio的使用和security类似,这里我强调在修改用户权限之后为了避免重启服务器应调用这类权限框架的权限清除及重加载方法,security较为简单直接调用源码中的一个方法即可,shrio需要重写,重写的代码较为复杂…
这两种权限框架都有一个动态加载权限和静态加载之分,我们一般要用动态的权限加载(对于简单的项目可以直接用静态的权限—角色配置)
cas和shrio整合的时候,密码认证这块就交给了cas,权限这块就由shrio处理(这时和单独使用shrio进行密码认证配置有区别),集成cas时,把shrio中密码认证这块交由cas做(配置cas服务的地址,本web使用的cas过滤器,不再配置用户的密码验证过滤器(cas过滤器代替了))
二、技术项目:
行为日志采集
项目描述:该项目在于收集用户各个系统的访问,使用日志,然后应用BI工具对日志数据进行展现
责任描述:负责项目的架构设计,技术方案的选型,代码的编写落地,BI报表的展现
该项目是公司新立的项目,主要为大宗资源商品交易提供平台。 责任描述:负责项目架构设计,框架的搭建,模块的设计开发,技术框架的整合,难点的攻克。 架构的的设计: 用负载均衡的模式,通过ngix转发,到web。web,数据库,redis,tfs,activemq等都用了集群的模
该项目是麦当劳商品中心,负责麦当劳商品菜单的生成,为提高生成速度采用分布式架构,提供程序的计算速度 职位:开发组长