轻量级

吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Listener介绍

余生长醉 提交于 2020-02-25 22:21:01
<%-- 网站: <a href="http://www.crazyit.org">疯狂Java联盟</a> author yeeku.H.lee kongyeeku@163.com version 1.0 Copyright (C), 2001-2016, yeeku.H.Lee This program is protected by copyright laws. Program Name: Date: --%> <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <%@ page import="java.sql.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 测试ServletContextListener </title> <meta name="website" content="http://www.crazyit.org" /> </head

吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:JSP2的自定义标签

筅森魡賤 提交于 2020-02-25 22:13:37
<%-- 网站: <a href="http://www.crazyit.org">疯狂Java联盟</a> author yeeku.H.lee kongyeeku@163.com version 1.0 Copyright (C), 2001-2016, yeeku.H.Lee This program is protected by copyright laws. Program Name: Date: --%> <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <!-- 导入标签库,指定mytag前缀的标签, 由http://www.crazyit.org/mytaglib的标签库处理 --> <%@ taglib uri="http://www.crazyit.org/mytaglib" prefix="mytag"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>

轻量级微服务架构【读书笔记1】

二次信任 提交于 2020-02-23 11:49:48
1. 为什么要微服务架构(Why)  原因:传统的应用架构不合理,产生了新的架构模式。  1.1 传统应用架构的主要问题(Problems)   当一个系统中包含A、B、C三个业务模块,通过监控程序发现A和B累计消耗系统资源的20%,C却要占用80%时,系统运行一段时间后,C业务将会成为系统的瓶颈,从而降低系统的性能。   1.2 解决传统应用架构的问题(Solutions)   一般来看,只需要复制同样一份程序,并部署到另一台服务器上,只不过多台服务器上方通过负载均衡器将应用进行“水平扩展”。当请求资源时,先经过负载均衡器,通过路由算法(如轮询或哈希),将请求转发到后面的具体应用服务器上,这种方式也被成为反向代理。  1.3 其他问题(Others) 系统资源浪费(1.1中提到的) 部署效率太低(如果修改代码,需要部署整个应用) 技术选型单一(只能用一种语言) 2. 什么是微服务架构(What)  2.1 概念   应用满足一下要求,具体: 根据业务模块划分服务种类 每个服务可独立部署且项目隔离 通过轻量级 API 调用服务 服务需保证良好的高可用性  2.2 微服务交付流程   使用微服务架构开发应用,实际上是对一个个微服务进行设计、开发、测试、部署,每个服务之间没有彼此依赖。 3. 微服务有哪些特点和挑战  3.1 特点 微小度颗粒(根据业务功能来划分) 责任单一性

值得学习的C语言开源项目

时光毁灭记忆、已成空白 提交于 2020-02-22 13:03:03
1.Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接: https://github.com/LippiOuYang/WebBenchl 2.Tinyhttpd tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。 下载链接: https://github.com/LippiOuYang/Tinyhttpd 3.cJSON cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。 cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。 项目主页: http://sourceforge.net/projects/cjson/ 4.CMockery cmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧

轻量级RPC设计与实现第五版(最终版)

一世执手 提交于 2020-02-19 23:59:11
在最近一段时间里,通过搜集有关资料加上自己的理解,设计了一款轻量级RPC,起了一个名字 lightWeightRPC 。它拥有一个RPC常见的基本功能。主要功能和特点如下: 利用Spring实现依赖注入与参数配置 利用Netty来实现客户端与服务端的远程通信 利用Hessian来实现序列化 设置Zookeeper作为注册中心 新设监控器,通过心跳机制来判断服务端与监控器的网络连接状况,当出现不稳定时,认为服务端出现了问题,在注册中心删除相关的服务信息。 利用Netty的Promise来实现异步的传送 构建线程池来管理发送的请求线程 添加服务缓存机制,在注册中心宕机的情况下仍能进行服务消费。 支持服务扩展点发现机制(SPI),对Spring的SPI机制进行改进,解决了依赖注入问题。 在客户端从注册中心获取服务时,添加监听器,当注册中心对应节点发生变化时通知客户端修改本地缓存信息。 以上是 lightWeightRPC 的全部功能,本版本添加的内容就是最后一个功能,为服务节点添加监听器。 因为之前在本地添加了持久化的缓存,当服务消费时会先从缓存中查找信息,查不到再到注册中心查找,但是当服务地址等信息发生变化时,如果不对缓存信息进行修改就可能会发生错误。所以在本版本中为服务节点添加了监听器。 如何添加监听器 当客户端首次从注册中心获取服务信息时,会对有关服务节点添加监听器,具体方法在

java锁(转)

感情迁移 提交于 2020-02-17 17:13:23
Java中锁分类 锁的分类 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁(java.util.concurrent包下的几乎都是利用锁) CAS 它是解决轻微冲突的多线程场景下使用锁造成性能损耗的 一种机制 。先是 比较 ,如果不符合预期,则 重试 。它有三个操作因素: 内存位置 , 预期原值 与 新值 。如果内存位置的值与预期原值相等,则处理器将该位置值更新为新值,如果不相等,则获取当前值,然后进行不断的轮询操作直到成果达到某个阙值退出。 AQS AbstractQueuedSynchronizer 简称AQS是一个抽象同步框架,可以用来实现一个依赖状态的同步器。JDK1.5中提供的 java.util.concurrent 包中的大多数的同步器 (Synchronizer) 如 Lock, Semaphore, Latch, Barrier 等,它们都是基于 java.util.concurrent.locks.AbstractQueuedSynchronizer 这个类的框架实现的。 乐观锁/悲观锁 乐观锁 :乐观锁是一种乐观思想,认为 读多写少 ,遇到并发的可能性低,每次拿数据时候并 不会上锁 ,因为认为不会被别人修改。但是更新的时候会判断有没有人会更新这条数据,采取写的时候先 读取版本号然后加锁

轻量级Java_EE企业应用实战-Spring容器中的bean

跟風遠走 提交于 2020-02-16 09:57:49
1.1Spring中BeanFactory与ApplicaitonContext的区别 1.2bean设置普通属性值(int double等) 采用value来引入 1.2.1配置合作者bean 1.2.2使用自动装配注入合作者Bean 1.3注入嵌套Bean 1.4注入集合值 <bean id="Chinese" class="xxx"> <property name="schools"> <!-- 为List属性配置属性值 --> <list> <!--每个value、ref、bean都配置一个List元素 --> <value>小学</value> <value>中学</value> <value>大学</value> </list> </property> <property name="scores"> <map> <entry key="数学" value="87"/> <entry key="英语" value="89"/> <entry key="语文" value="82"/> </map> </property> <property name="axes"> <set> <value>普通的字符串</value> <bean class="xxx" /> <ref local="stoneAxe"/> </set> <property> </bean> 1

基于.NET平台常用的框架整理

拟墨画扇 提交于 2020-02-12 04:14:17
分布式缓存框架: Microsoft Velocity :微软自家分布式缓存服务框架。 Memcahed :一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。 Redis :是一个高性能的KV数据库。 它的出现很大程度补偿了Memcached在某些方面的不足。 EnyimMemcached :访问Memcached最优秀的.NET客户端,集成不错的分布式均衡算法。 开源的.NET系统推荐: OXITE :微软ASP.NET MVC案例演示框架。 PetShop :微软ASP.NET宠物商店。 Orchard :国外一个MVC开源的博客系统。 SSCLI :微软在NET Framework 2.0时代的开源代码。 DasBlog :国外一个基于ASP.NET的博客系统。 BlogEngine.NET :国外一款免费开源的博客系统。 Dotnetnuke.NET :一套非常优秀的基于ASP.NET的开源门户网站程序。 Discuz.NET :国内开源的论坛社区系统。 nopCommerce和Aspxcommerce :国外一套高质量的开源B2C网站系统。 JumboTCMS和DTCMS :国内两款开源的网站管理系统: 日志记录异常处理: Log4Net.dll :轻量级的免费开源.NET日志记录框架。 Enterprise Library Log Application

.NET平台常用的框架整理

孤者浪人 提交于 2020-02-12 04:13:05
分布式缓存框架: Microsoft Velocity :微软自家分布式缓存服务框架。 Memcahed :一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。 Redis :是一个高性能的KV 数据库 。 它的出现很大程度补偿了Memcached在某些方面的不足。 EnyimMemcached :访问Memcached最优秀的.NET客户端,集成不错的分布式均衡 算法 。 开源的.NET系统推荐: OXITE :微软ASP .NET MVC案例演示框架。 PetShop :微软ASP .Net 宠物商店。 Orchard :国外一个MVC开源的博客系统。 SSCLI :微软在NET Framework 2.0时代的开源代码。 DasBlog :国外一个基于ASP.NET的博客系统。 BlogEngine.NET :国外一款免费开源的博客系统。 Dotnetnuke.NET :一套非常优秀的基于ASP.NET的开源门户网站程序。 Discuz.NET :国内开源的论坛社区系统。 nopCommerce和Aspxcommerce :国外一套高质量的开源B2C网站系统。 JumboTCMS和DTCMS :国内两款开源的网站管理系统: 日志记录异常处理: Log4Net.dll :轻量级的免费开源.NET日志记录框架。 Enterprise Library Log

轻量级单点登录系统最佳实践(五)——第4章 轻量级单点登陆系统简介

谁说我不能喝 提交于 2020-02-12 03:41:16
轻量级单点登录系统解决方案包括以下项目: l 公共组件 SSOLab.SSOServer.Components l 单点登录系统 SSOLab.SSOServer.WebApp l 企业门户系统系统演示 SSOLab.Portal.WebApp l 人力资源管理系统演示 SSOLab. APP1. WebApp l 财务管理系统演示 SSOLab. APP2. WebApp l 网上办公系统演示 App3 ( Java ) Visual Studio 2008解决方案图 Eclipse项目图 整个解决方案运行过程如下: 1、访问企业门户系统 http://localhost:7772/Portal /Default.aspx。 由于用户还没有在单点登录系统上登录过,所以跳转到单点登录系统用户登录页面http://localhost:7771/SSOSite/SignIn.aspx 2、输入正确的用户名和密码,跳转到企业门户系统首页面 http://localhost:7772/Portal/Default.aspx ,显示当前登陆用户的用户名和应用系统地址 3.选择人力资源管理系统,打开人力资源管理系统首页面 http://localhost:7773/App1/Default.aspx ,显示当前登陆用户的用户名。 4.选择财务管理系统,打开财务管理系统首页面 http:/