ESB企业服务总线

最近用到了ActiveMQ,感觉这种消息队列非常好用,也接触到了ESB这种高级点的技术,有时间很值得多研究。

公司内部用的是封装过的esb,是基于ActiveMQ的,router就是封装的Camel,估计当初进行封装的人拿这个来练手的。基于这个esb,我对寄送信息推送这一块进行了重构,由原来的使用http方式直接推送改为了使用消息队列,好处就是消息队列里的消息可以异步推送,比之前那种依赖于http连接的方式效率和数据完整性上要好多了。

后期也可以把邮件发送的功能也集成到esb这边来,可以摆脱对C#的Gaea服务的依赖。

Apache还有个ServiceMix项目,对ActiveMQ和Camel进行了集成,也可以关注下。

ActiveMQ官网

MyBatis小结

数据持久化层,公司的框架是封装的JDBC,几乎用法是一样的,现在应该流行用ORM框架吧,今天看了下MyBatis,相比较与Hibernate那样无法写SQL语句,更喜欢MyBatis这样可调整的方式,而且还能通过优化SQL来优化数据库访问,还能练习SQL语法,一举多得啊。

Filter过滤器总结

1. 介绍

  Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
  
  它主要用于对用户请求进行预处理,也可以对HttpServletResponse 进行后处理。使用Filter 的完整流程:Filter 对用户请求进行预处理,接着将请求交给Servlet 进行处理并生成响应,最后Filter 再对服务器响应进行后处理。
  
  Filter功能:

MVC与前后端分离

SpringMVC除了众所周知的好处,有个问题也是要说的:渲染视图的过程是在服务端完成的,最终呈现给浏览器的是带有模型的视图页面,性能上是要打一点折扣的。前后端分离正好可以解决这个问题:浏览器端使用Ajax发起请求,服务器端根据请求返回JSON数据,由浏览器负责渲染界面。

关于服务的一些想法

这次说的是58的Gaea服务,据说是SCF的开源版本。

Gaea是支持跨平台具有高并发、高性能、高可靠性,并提供异步、多协议、事件驱动的中间层服务框架。相对于其它重量级的中间件,比如淘宝的dubbo,Gaea只做一件事,因此没有过多的项目依赖。目前来看是比较符合我们单工程架构的服务要求的,性能上足够了。

从SVN转到Git

年后来了,部门要求版本控制工具都统一使用Git,之前学的终于可以派上用场了,哈哈。

除了常规的add,commit,push,poll,branch,merge, 其他一些不常用的也已经忘记了,今天发现个介绍的比较详细的文档,学习了。

Git使用文档见这里

Java垃圾回收机制

垃圾回收(Garbage Collection,GC),在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?在目前的商业虚拟机中,有哪些典型的垃圾收集器?
一.垃圾回收要解决的问题(哪些内存需要回收?什么时候回收?如何回收?)
二.典型的垃圾回收算法
三.典型的垃圾回收器
四.垃圾收集器参数总结

从Android到JavaWeb

很久没有写博客了。。。。

最近工作又忙了起来,从Android也开始转为Java Web开发,估计最近是没安卓项目可以做了。服务端的事好杂好多,不像移动端那么得心应手,总之学到了不少东西,很多思路还需要再整理,回头分篇整理下。