技术杂记

来源:互联网 发布:淘宝转人工服务电话 编辑:程序博客网 时间:2024/05/21 09:46
----------------------------做技术的人还是纯粹些得好-----------


《电商相关技术》
1.业务垂直拆分
a.根据属性
b.根据作用的优先级
2.服务化,将功能模块/功能,进行抽取/封装成一个公共的服务


3.消息队列,解决系统间的耦合,实现异步,高可用,高性能的系统,主要场景(购物~配送)
涉及到的技术Active MQ,Rabbit MQ,Zero MQ,MS MQ等,Spring 已经提供了Active MQ的支持,使用很方面


4.数据库集群(读写分离,分库分表)
中间件:


Cobar(阿里,目前已不在维护)


TDDL(阿里),


Atlas(奇虎360),


MyCat(在Cobar基础上,国内很多牛人,号称国内第一开源项目)


5.单点登录(分布式session)多个子系统之间的会话管理,一般采用Session同步
流程说明:
1.用户第一次登录时,将会话信息(用户id和用户信息)写入分布式Session


2.用户再次登录时,首先会去检测分布式Session中是否存在该用户的信息,如果没有则跳转至登录界面


3.一般采用Cache中间件 如(Redis,memcached)因为它有持久化功能,方便分布式Session宕机后,可以从持久化存储中加载会话信息;


4.存入会话时,可以设置会话保持的时间,比如15分钟,超过后自动超时;


6.缓存(Redis,memcached等)
一级缓存:本地缓存/二级缓存:分布式缓存


一级缓存,缓存数据字典,和常用热点数据等基本不可变/有规则变化的信息,


二级缓存缓存需要的所有缓存。当一级缓存过期或不可用时,访问二级缓存的数据。如果二级缓存也没有,则访问数据库。


缓存策略:
1.自动过期
2.触发过期


7.应用集群部署(分布式/集群/负载均衡)




《服务器之间的Session共享问题》
1.写入客户端Cookie(不安全,如果客户端禁用Cookie的话)
2.Session数据同步(Zookeeper实现双向同步)
3.NFS共享Session(性能低,不稳定)
4.数据库存储Session
5.缓存框架memcached Session复制或Session集中存储


《Spring的优势》
1.IOC管理对象的生命周期
2.AOP 面向切面编程
3.模板类,减少冗余代码
4.容器,集成框架


《Ajax的原理》
a.使用css和xml表示
b.使用DOM模型来交互和动态显示
c.使用XMLHttpRequest和服务器进行异步的通信
d.使用JavaScript绑定和通信


《ORM技术》
Hibernate 
一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库


Mybatis
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统 设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义


JDBC


Spring Data JPA




《Spring中涉及到的设计模式》
代理模式:AOP 比如JdkDynamicAopProxy和CglibAopProxy。 
单例模式:Bean
模板方法:JdbcTemplate/RestTemplate等
工厂模式:BeanFactory
适配器模式:AOP中的Advisor链需要MethodInterceptor对象
包装器模式:一种是类名中含有Wrapper,另一种是类名中含有Decorator
观察者模式:listener的实现。如ApplicationListener。 
策略模式:不同对象之间的转换


《XML的作用》
1.把数据从HTML分离
2.简化数据共享
3.简化数据传输
4.简化平台变更
5.配置文件 如Spring.xml /Struts2.xml等
6.数据存储


《XML格式的解析》
DOM:一次性将数据从文档结构树加载到内存中,十分的耗资源
SAX:基于事件驱动读取数据 性能较好
JDOM 性能不佳
DOM4J 性能最好


《java IO/NIO》
IO:面向流处理
NIO:面向缓冲区 由一个专门的线程处理所有IO事件并负责分发
NIO中的几个关键技术:
1.Channel 通道
2.Buffer  缓冲区
3.Selector 选择器


《前端框架》
jQuery /javaScript/EasyUI/BootStrap/Ext/AngularJS/HTML/CSS 尽量提取公共JS供功能模块调用


《分布式RPC》
DUBBO
Zookeeper


《搜索工具》
lucene
Solor
ElasticSearch
Hibernate Search 5.0


程序最好还是:约定由于配置


《产品的定义》


1.使用人群;
2.主要功能;
3.产品特色
用户需求:
1.目标用户
2.用户目标
3.使用场景


《OOA/OOD/OOP》
OOA:面向对象的分析
OOD:面向对象的设计
OOP:面向对象编程


分析是为了设计,设计是为了编程


《大数据相关技术》
Hadoop/Spark/Hbase/Storm/等


《项目管理工具》
Maven/SVN/Git/等


数据分析:从数据中发现现有的问题,从而形成现有产品有效地优化建议




------------------------坚持---信念 ---梦想-------
0 0
原创粉丝点击