??xml version="1.0" encoding="utf-8" standalone="yes"?> 单理解四层和七层负蝲均衡: ① 所谓四层就是基于IP+端口的负载均衡;七层是ZURL{应用层信息的负载均衡;同理Q还有基于MAC地址的二层负载均衡和ZIP地址的三层负载均衡?换句换说Q二层负载均衡会通过一个虚拟MAC地址接收hQ然后再分配到真实的MAC地址Q三层负载均衡会通过一个虚拟IP地址接收hQ然后再分配到真实的IP地址Q四层通过虚拟IP+端口接收hQ然后再分配到真实的服务器;七层通过虚拟的URL或主机名接收hQ然后再分配到真实的服务器?/p> ② 所谓的四到七层负蝲均衡Q就是在对后台的服务器进行负载均衡时Q依据四层的信息或七层的信息来决定怎么栯{发流量?比如四层的负载均衡,是通过发布三层的IP地址QVIPQ,然后加四层的端口P来决定哪些流量需要做负蝲均衡Q对需要处理的量q行NAT处理Q{发至后台服务器,q记录下q个TCP或者UDP的流量是由哪台服务器处理的,后箋q个q接的所有流量都同样转发到同一台服务器处理。七层的负蝲均衡Q就是在四层的基上(没有四层是绝对不可能有七层的Q,再考虑应用层的特征Q比如同一个Web服务器的负蝲均衡Q除了根据VIP?0端口辨别是否需要处理的量Q还可根据七层的URL、浏览器cd、语a来决定是否要q行负蝲均衡。D个例子,如果你的Web服务器分成两l,一l是中文语言的,一l是英文语言的,那么七层负蝲均衡可以当用户来访问你的域名时Q自动L别用戯aQ然后选择对应的语a服务器组q行负蝲均衡处理?/p> ③ 负蝲均衡器通常UCؓ四层交换机或七层交换机。四层交换机主要分析IP层及TCP/UDP层,实现四层量负蝲均衡。七层交换机除了支持四层负蝲均衡以外Q还有分析应用层的信息,如HTTP协议URI或Cookie信息?/p> 1、负载均衡分为L4 switchQ四层交换)Q即在OSIW?层工作,是TCP层啦。此ULoad Balance不理解应用协议(如HTTP/FTP/MySQL{等Q。例子:LVSQF5?/p> 2、另一U叫做L7 switchQ七层交换)QOSI的最高层Q应用层。此Ӟ该Load Balancer能理解应用协议。例子: haproxyQMySQL Proxy?/p> 注意Q上面的很多Load Balancer既可以做四层交换Q也可以做七层交换?/p> Q二Q?/p> 负蝲均衡讑֤也常被称?四到七层交换?Q那么四层和七层两者到底区别在哪里Q?/strong> W一Q技术原理上的区别?/strong> 所谓四层负载均?/strong>Q也是主要通过报文中的目标地址和端口,再加上负载均衡设备设|的服务器选择方式Q决定最l选择的内部服务器?/p> 以常见的TCPZQ负载均衡设备在接收到第一个来自客L的SYN hӞ即通过上述方式选择一个最佳的服务器,q对报文中目标IP地址q行修改(改ؓ后端服务器IPQ,直接转发l该服务器。TCP的连接徏立,即三ơ握手是客户端和服务器直接徏立的Q负载均衡设备只是vC个类D\由器的{发动作。在某些部v情况下,Z证服务器回包可以正确q回l负载均衡设备,在{发报文的同时可能q会Ҏ文原来的源地址q行修改?/p> 所谓七层负载均?/strong>Q也UCؓ“内容交换”Q也是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设|的服务器选择方式Q决定最l选择的内部服务器?/p> 以常见的TCPZQ负载均衡设备如果要Ҏ真正的应用层内容再选择服务器,只能先代理最l的服务器和客户端徏立连?三次握手)后,才可能接受到客户端发送的真正应用层内容的报文Q然后再Ҏ该报文中的特定字D,再加上负载均衡设备设|的服务器选择方式Q决定最l选择的内部服务器。负载均衡设备在q种情况下,更类g一个代理服务器。负载均衡和前端的客L以及后端的服务器会分别徏立TCPq接。所以从q个技术原理上来看Q七层负载均衡明昄对负载均衡设备的要求更高Q处理七层的能力也必然会低于四层模式的部|方式?/p> W二Q应用场景的需求?/strong> 七层应用负蝲的好处,是得整个网l更"?/strong>"。例如访问一个网站的用户量Q可以通过七层的方式,对囄cȝh转发到特定的囄服务器ƈ可以使用~存技术;对文字cȝh可以转发到特定的文字服务器ƈ可以使用压羃技术。当然这只是七层应用的一个小案例Q从技术原理上Q这U方式可以对客户端的h和服务器的响应进行Q意意义上的修改,极大的提升了应用pȝ在网l层的灵zL。很多在后台Q例如Nginx或者Apache上部|的功能可以前移到负载均衡设备上Q例如客戯求中的Header重写Q服务器响应中的关键字过滤或者内Ҏ入等功能?/p> 另外一个常常被提到功能?strong style="margin: 0px; padding: 0px; color: #333333;">?/strong>安全性。网l中最常见的SYN FlooddQ即黑客控制众多源客LQ用虚假IP地址对同一目标发送SYNdQ通常q种d会大量发送SYN报文Q耗尽服务器上的相兌源,以达到Denial of Service(DoS)的目的。从技术原理上也可以看出,四层模式下这些SYNd都会被{发到后端的服务器上;而七层模式下q些SYNd自然在负载均衡设备上截止,不会影响后台服务器的正常q营。另外负载均衡设备可以在七层层面讑֮多种{略Q过滤特定报文,例如SQL Injection{应用层面的特定d手段Q从应用层面q一步提高系l整体安全?/p> 现在?层负载均衡,主要q是着重于应用HTTP协议Q所以其应用范围主要是众多的|站或者内部信息^台等ZB/S开发的pȝ?4层负载均衡则对应其他TCP应用Q例如基于C/S开发的ERP{系l?/p> W三Q七层应用需要考虑的问题?a target="_blank" style="margin: 0px; padding: 0px; color: #1a64a2; text-decoration: none;"> 1Q是否真的必?/strong>Q七层应用的可以提高流量智能化Q同时必不可免的带来讑֤配置复杂Q负载均衡压力增高以及故障排查上的复杂性等问题。在设计pȝ旉要考虑四层七层同时应用的杂情c?/p> 2Q是否真的可以提高安全?/strong>。例如SYN FlooddQ七层模式的将q些量从服务器屏蔽Q但负蝲均衡讑֤本n要有强大的抗DDoS能力Q否则即使服务器正常而作Z枢调度的负蝲均衡讑֤故障也会D整个应用的崩溃?/p> 3Q是否有_的灵zd。七层应用的优势是可以让整个应用的流量智能化Q但是负载均衡设备需要提供完善的七层功能Q满_h据不同情늚Z应用的调度。最单的一个考核是能否取代后台Nginx或者Apache{服务器上的调度功能。能够提供一个七层应用开发接口的负蝲均衡讑֤Q可以让客户Ҏ需求Q意设定功能,才真正有可能提供强大的灵zL和性?/p> Q本节出?“ADC技术博?#8221; 博客Q请务必保留此出处http://virtualadc.blog.51cto.com/3027116/591396Q?/p> Q三Q?/p> 负蝲均衡四七层介l? 负蝲均衡QLoad BalanceQ徏立在现有|络l构之上Q它提供了一U廉h效透明的方法扩展网l设备和服务器的带宽、增加吞吐量、加强网l数据处理能力、提高网l的灉|性和可用性?/p> 负蝲均衡有两斚w的含义:首先Q大量的q发讉K或数据流量分担到多台节点讑֤上分别处理,减少用户{待响应的时_其次Q单个重负蝲的运分担到多台节点讑֤上做q行处理Q每个节点设备处理结束后Q将l果汇总,q回l用Ppȝ处理能力得到大幅度提高?/p> 本文所要介l的负蝲均衡技术主要是指在均衡服务器群中所有服务器和应用程序之间流量负载的应用Q目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键d服务器上的Internet服务器程序的可用性和可~性?/p> 负蝲均衡技术分c?/strong> 目前有许多不同的负蝲均衡技术用以满不同的应用需求,下面从负载均衡所采用的设备对象、应用的|络层次Q指OSI参考模型)及应用的地理l构{来分类?/p> ?g负蝲均衡 软g负蝲均衡解决Ҏ是指在一台或多台服务器相应的操作pȝ上安装一个或多个附加软g来实现负载均衡,如DNS Load BalanceQCheckPoint Firewall-1 ConnectControl{,它的优点是基于特定环境,配置单,使用灉|Q成本低廉,可以满一般的负蝲均衡需求?/p> 软g解决Ҏ~点也较多,因ؓ每台服务器上安装额外的Y件运行会消耗系l不定量的资源,是功能强大的模块,消耗得多Q所以当q接h特别大的时候,软g本n会成为服务器工作成|的一个关键;软g可扩展性ƈ不是很好Q受到操作系l的限制Q由于操作系l本w的BugQ往往会引起安全问题?/p> g负蝲均衡解决Ҏ是直接在服务器和外部|络间安装负载均衡设备,q种讑֤我们通常UC载均衡器Q由于专门的讑֤完成专门的Q务,独立于操作系l,整体性能得到大量提高Q加上多样化的负载均衡策略,化的量理Q可辑ֈ最佳的负蝲均衡需求?nbsp; 负蝲均衡器有多种多样的Ş式,除了作ؓ独立意义上的负蝲均衡器外Q有些负载均衡器集成在交换设备中Q置于服务器与Internet链接之间Q有些则以两块网l适配器将q一功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网l上?/p> 一般而言Q硬件负载均衡在功能、性能上优于Y件方式,不过成本昂贵?/p> 负蝲均衡从其应用的地理结构上分ؓ本地负蝲均衡(Local Load Balance)和全局负蝲均衡(Global Load BalanceQ也叫地域负载均?Q本地负载均衡是指对本地的服务器做负蝲均衡Q全局负蝲均衡是指对分别放|在不同的地理位|、有不同|络l构的服务器间作负载均衡?/p> 本地负蝲均衡能有效地解决数据量q大、网l负药重的问题Qƈ且不需p昂贵开支购|性能卓越的服务器Q充分利用现有设备,避免服务器单Ҏ障造成数据量的损失。其有灵zdL均衡{略把数据流量合理地分配l服务器内的服务器共同负担。即使是再给现有服务器扩充升U,也只是简单地增加一个新的服务器到服务群中,而不需改变现有|络l构、停止现有的服务?nbsp; 全局负蝲均衡主要用于在一个多区域拥有自己服务器的站点Qؓ了全球用户只以一个IP地址或域名就能访问到自己最q的服务器,从而获得最快的讉K速度Q也可用于子公司分散站点分布q的大公叔R过IntranetQ企业内部互联网Q来辑ֈ资源l一合理分配的目的?/p> |络层次上的负蝲均衡 针对|络上负载过重的不同瓉所在,从网l的不同层次入手Q我们可以采用相应的负蝲均衡技术来解决现有问题?nbsp; 随着带宽增加Q数据流量不断增大,|络核心部分的数据接口将面瓉问题Q原有的单一U\很难满需求,而且U\的升U又q于昂贵甚至难以实现Q这时就可以考虑采用链\聚合QTrunkingQ技术?/p> 一个成熟的大型|站Q如淘宝、京东等Q的pȝ架构q不是开始设计就具备完整的高性能、高可用、安全等Ҏ,它L随着用户量的增加Q业务功能的扩展逐渐演变完善的,在这个过E中Q开发模式、技术架构、设计思想也发生了很大的变化,p技术h员也从几个h发展C个部门甚至一条品线。所以成熟的pȝ架构是随业务扩展而完善出来的Qƈ不是一y而就Q不同业务特征的pȝQ会有各自的侧重点,例如淘宝Q要解决量的商品信息的搜烦、下单、支付,例如腾讯Q要解决C的用户实时消息传输,癑ֺ它要处理量的搜索请求,他们都有各自的业务特性,pȝ架构也有所不同。尽如此我们也可以从这些不同的|站背景下,扑և其中q的技术,q些技术和手段可以q泛q行在大型网站系l的架构中,下面通过介绍大型|站pȝ的演化过E,来认识这些技术和手段?/p> 最初的架构Q应用程序、数据库、文仉部v在一台服务器上,如图Q?/p> 随着业务的扩展,一台服务器已经不能满性能需求,故将应用E序、数据库、文件各自部|在独立的服务器上,q且Ҏ服务器的用途配|不同的gQ达到最佳的性能效果?/p> 在硬件优化性能的同Ӟ同时也通过软gq行性能优化Q在大部分的|站pȝ中,都会利用~存技术改善系l的性能Q用缓存主要源于热Ҏ据的存在Q大部分|站讉K都遵?8原则Q即80%的访问请求,最l落?0%的数据上Q,所以我们可以对热点数据q行~存Q减这些数据的讉K路径Q提高用户体验?/p> ~存实现常见的方式是本地~存、分布式~存。当然还有CDN、反向代理等Q这个后面再讌Ӏ本地缓存,思义是将数据~存在应用服务器本地Q可以存在内存中Q也可以存在文gQOSCache是常用的本地缓存组件。本地缓存的特点是速度快,但因为本地空间有限所以缓存数据量也有限。分布式~存的特ҎQ可以缓存v量的数据Qƈ且扩展非常容易,在门L|站中常常被使用Q速度按理没有本地~存快,常用的分布式~存是Membercache、Redis?/p> 应用服务器作为网站的入口Q会承担大量的请求,我们往往通过应用服务器集来分担h数。应用服务器前面部v负蝲均衡服务器调度用戯求,Ҏ分发{略请求分发到多个应用服务器节炏V?/p> 常用的负载均衡技术硬件的有F5Qh格比较贵QY件的有LVS、Nginx、HAProxy。LVS是四层负载均衡,Ҏ目标地址和端口选择内部服务器,Nginx和HAProxy是七层负载均衡,可以Ҏ报文内容选择内部服务器,因此LVS分发路径优于Nginx和HAProxyQ性能要高些,而Nginx和HAProxy则更具配|性,如可以用来做动静分离Q根据请求报文特征,选择静态资源服务器q是应用服务器)?/p> 随着用户量的增加Q数据库成ؓ最大的瓉Q改善数据库性能常用的手D|q行d分离以及分表Q读写分顾名思义是数据库分ؓd和写库,通过d功能实现数据同步。分库分表则分ؓ水^切分和垂直切分,水^切换则是对一个数据库特大的表q行拆分Q例如用戯。垂直切分则是根据业务不同来切换Q如用户业务、商品业务相关的表放在不同的数据库中?/p> 假如我们的服务器都部|在成都的机房,对于四川的用h说访问是较快的,而对于北京的用户讉K是较慢的Q这是由于四川和北京分别属于电信和联通的不同发达地区Q北京用戯问需要通过互联路由器经q较长的路径才能讉K到成都的服务器,q回路径也一P所以数据传输时间比较长。对于这U情况,常常使用CDN解决QCDN数据内容缓存到q营商的机房Q用戯问时先从最q的q营商获取数据,q样大大减少了网l访问的路径。比较专业的CDNq营商有蓝汛、网ѝ?/p> 而反向代理,则是部v在网站的机房Q当用户h辑ֈ旉先访问反向代理服务器Q反向代理服务器缓存的数据q回l用P如果没有没有~存数据才会l箋走应用服务器获取Q也减少了获取数据的成本。反向代理有SquidQNginx?/p> 用户一天天增加Q业务量来大Q生的文g来多Q单台的文g服务器已l不能满需求。需要分布式的文件系l支撑。常用的分布式文件系l有NFS?/p> 对于量数据的查询,我们使用nosql数据库加上搜索引擎可以达到更好的性能。ƈ不是所有的数据都要攑֜关系型数据中。常用的NOSQL有mongodb和redisQ搜索引擎有Lucene?/p> 随着业务q一步扩展,应用E序变得非常臃肿Q这时我们需要将应用E序q行业务拆分Q如癑ֺ分ؓ新闻、网c图片等业务。每个业务应用负责相对独立的业务q作。业务之间通过消息q行通信或者同享数据库来实现?/p> q时我们发现各个业务应用都会使用C些基本的业务服务Q例如用h务、订单服务、支付服务、安全服务,q些服务是支撑各业务应用的基本要素。我们将q些服务抽取出来利用分部式服务框架搭建分布式服务。淘宝的Dubbo是一个不错的选择?/p> 大型|站的架构是Ҏ业务需求不断完善的Q根据不同的业务特征会做特定的设计和考虑Q本文只是讲qC个常规大型网站会涉及的一些技术和手段?br /> 首先我们说一下Win键,也就是键盘上的那个微软徽标键Q在Win8专用键盘上,也已l采用了最新的微YLOGOQ自从我们接触WindowspȝQ就会经常用到这个功能键Q比如按Win键打开开始菜单,昄比你使用鼠标Ud到桌面的左下角要来得快。但在Win7pȝ里,通过Win键与其他键的l合使用Q还可以实现更多的功能,下面几个Q不知道你正在用的是哪个? 1、Win + X Q打开Ud中心 2、Win + I格Q显C桌?/p> ?#8220; Win + I格?#8221;Q仅仅实CW一U,卛_速预览显C桌面,其动作是Q按下快捷键昄桌面Q松开后恢复;W二U完全显C桌面,我们可以使用“ Win + D ”键,按下后,直接最化所有窗口,昄桌面Q再ơ按下即打开刚才的所有窗口?/p> 3、Win + Tab Q?DH口的切?/p> 其实在Win7pȝ里,关于H口的操作有很多Q比如窗口的预览Q窗口的切换Q显C的效果也不相同,但都是ؓ了快速浏览ƈ打开需要的H口?/p> q里q有一个组合键Q?Alt + Tab Q也是窗口切换,其显C的效果如下Q?/p> 4、Win + 数字1-0 (主键盘字母区上方? q套快捷键可以启动Windows 7d栏上从左L一个到W十个程序,若对应程序已l启动则可以切换到该E序的窗口,假如q个H口有多个相似窗口,重复按同一个数字可以在q些H口里@环?/p> q些l合键可以说是配合Windows 7d栏而专门设计的。不知道有多朋友把Windows 7的Q务栏物尽其用了,如果q像以前那样d栏在没有E序q行d下一片空白的话,有点可惜了。把堆放在桌面上常用E序快捷方式Udd栏上dQ以后要启动什么程序,只要按一?Win + 对应的数字就可以了?/p> 5、Win + Home Q最化当前H口背后的窗?/p> 听上L些拗口。一般我们会打开多个H口Q想要最化其中的一部分H口Q只能一个个最化Q但可能你正在专心于一个PS的设计,其他H口也许会媄响到你,不妨按下Win + Home Q除了你的PSQ其他窗口都让他们最化吧?/p> 6、Win + ?#8593; / ?#8595; Q方向键Q:H口最大化、最化、还原的切换 q组快捷键,应该是实现了三U功能:当前H口若是最大化Q按 “Win + ↓ ”可以q原到窗口状态;再按一ơ,则最化CQ务栏Q当前窗口若是可调节状态,按Win + ↑ 则可最大化H口?/p> H口最化后,该组快捷键不可再恢复H口?/p> Win + ?#8592; / ?#8594; Q方向键Q?/p> 对于l常要比对两份文档的朋友来说Q善用这个快捷键可以避免文档之间来回切换问题Q用这个功能对昄器稍许有一点要求,最好有1440*900或者更高的宽屏分L?1680*1050是个比较理想的分辨率)Q这样可以让文档内容完整昄出来而不需要左叛_动?/p> 关于Win键,我们主要说了与窗口相关的应用Q当Ӟ它还有其他应用,但就快捷高效来说Q了解这些已l十分脓心。下面我们再来看看其他与效率相关的快捷键?/p> 7、Alt + P Q在资源理器里 开?关闭预览H格 除了用作查看囄外,该预览窗D可以对多U文档进行即旉览,包括 TXT文本QWord、Excel{Office文档(前提是已安装了Office)。如果说囄预览q有很多看图cY件可以代替的话,那么文档预览功能无疑要更为实用,L某䆾文档的时候也不用逐个打开来L别了?/p> 8、Ctrl + Shift + N Q新建文件夹 在文件夹H口中按下Ctrl + Shift + Nl合键,可以快速徏立一个文件夹Q如果是在IE9览器中按下q组键,则是在新H口中打开新标{?/p> 9、Ctrl+Shift+EscQ快速打开Windowsd理?/p> 10、Ctrl + Shift + Enter(或鼠标双?Q以理员n份运?/p> Windows 7一个比较特D的地方在于Q会l常要用?#8220;以管理员w䆾q行”E序Q一般我们会通过右键选择Q如果不想用右键的话,在双ȝ序前Q按?Ctrl + Shift 再点ȝ序就能直接以理员n份运行?a style="padding: 0px; margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; text-decoration: none; color: #000000;"> 在默认情况下QTomcat Manager是处于禁用状态的。准地_Tomcat Manager需要以用户角色q行dq授权才能用相应的功能Q不qTomcatq没有配|Q何默认的用户Q因此需要我们进行相应的用户配置之后才能使用Tomcat Manager?/p> Tomcat Manager的用户配|是?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">Tomcat安装目录/conf/tomcat-users.xml文g中进行管理的?/p> Tomcat Manager的用户配|非常简单,下面我们以一个具体的配置ZQ?/p> 如上所C,我们只需要在 E加思考,我们应该猜到Q?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">rolename的属性值ƈ不是随意的内容,否则Tomcat怎么能够知道我们随便定义?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">rolename表示什么样的权限呢。实际上QTomcat已经为我们定义了4U不同的角色——也就??code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">rolenameQ我们只需要用Tomcat为我们定义的q几U角色就_满我们的工作需要了?/p> 以下是Tomcat Manager 4U角色的大致介绍(下面URL中的*为通配W?Q?/p> 从Tomcat Manager内部配置文g中可以得知, hibernate.cfg.xml ?/span>hibernate.hbm2ddl.auto配置节点如下Q?/span> <properties> Hibernate Reference Documentation 3.3.1解释如下Q?/span> 其实q个hibernate.hbm2ddl.auto参数的作用主要用于: 自动创徏|更新|验证数据库表l构?/span> 如果不是此方面的需求徏议不配置该条语句?/span> 每次加蝲hibernate旉会删除上一ơ的生成的表Q然后根据你?/span>modelcd重新来生成新表,哪怕两ơ没有Q何改变也要这h行,q就是导致数据库表数据丢q一个重要原因?/span> 每次加蝲hibernate时根?/span>modelcȝ成表Q但?/span>SessionFactory一关闭,表就自动删除?/span> 最常用的属性,W一ơ加?/span>hibernate时根?/span>modelcM自动建立赯的结构(前提是先建立好数据库Q,以后加蝲hibernate时根?/span> modelc自动更新表l构Q即使表l构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部|到服务器后Q表l构是不会被马上建立h的,是要{?/span> 应用W一ơ运行v来后才会?/span> 每次加蝲hibernateӞ验证创徏数据库表l构Q只会和数据库中的表q行比较Q不会创建新表,但是会插入新倹{?/span> 当我们把hibernate.hbm2ddl.auto=create?/span>hibernate先用hbm2ddl来生成数据库schema?/span> 当我们把hibernate.cfg.xml文g?/span>hbm2ddl属性注释掉Q这h们就取消了在启动时用hbm2ddl来生成数据库schema。通常只有在不断重复进行单元测试的时候才需要打开它,但再ơ运?/span>hbm2ddl会把你保存的一切都删除掉(dropQ?/span>---- create配置的含义是Q?#8220;在创?/span>SessionFactory的时候,?/span>scema?/span>drop掉所以的表,再重新创建它?#8221;?/span> 我们在项目中使用Hibernate映射oracle的视囄时候,发现会出现某U特D条件下hibernate自动创徏了一张和视图同名?/span>TableQ导致获取视图信息时Q实际上获取的LI中的内容?/span> 注意Q很?/span>Hibernate新手在这一步会p|Q我们不时看到关?/span>Table not found错误信息的提问。但是,只要你根据上面描q的步骤来执行,׃会有q个问题Q因?/span>hbm2ddl会在W一ơ运行的时候创建数据库schemaQ?/span> 后箋的应用程序重启后q能l箋使用q个schema。假若你修改了映,或者修改了数据?/span>schema,你必Lhbm2ddl重新打开一ơ?/span>
http://archive.ics.uci.ed
http://aws.amazon.com/dat
http://crawdad.org/
http://platform.newscred.
http://data.cityofchicago
http://data.govloop.com
http://data.gov.uk/
http://data.medicare.gov
http://data.seattle.gov
http://data.sunlightlabs.
http://developer.yahoo.co
http://econ.worldbank.org
http://en.wikipedia.org/w
http://factfinder.census.
http://ftp.ncbi.nih.gov/
http://gettingpastgo.socr
http://googleresearch.blo
http://www.kasabi.com
http://linkeddata.org/
http://medihal.archives-o
http://ngrams.googlelabs.
http://public.resource.or
http://rechercheisidore.f
http://reddit.com/r/datas
https://datamarket.azure.
http://snap.stanford.edu/
http://timetric.com/publi
http://www2.jpl.nasa.gov/
http://www.archives.gov/r
http://www.bls.gov/
http://www.crunchbase.com
http://www.dartmouthatlas
http://www.data.gov/
http://www.datakc.org
http://www.delicious.com/
http://www.factual.com/
http://www.freebase.com/
http://www.google.com/pub
http://www.guardian.co.uk
http://www.infochimps.com
http://www.kaggle.com/
http://www.nationalarchiv
http://www.nyc.gov/html/d
http://www.ordnancesurvey
http://www.philwhln.com/h
http://build.kiva.org/
http://www.imdb.com/inter
https://wist.echo.nasa.go
http://imat-relpred.yande
http://www.dados.gov.pt/p
]]>
]]>一、最开始的|站架构
二、应用、数据、文件分?/h2>
三、利用缓存改善网站性能
四、用集改善应用服务器性能
五、数据库d分离和分库分?/h2>
六、用CDN和反向代理提高网站性能
七、用分布式文gpȝ
八、用NoSql和搜索引?/h2>
九、将应用服务器进行业务拆?/h2>
十、搭建分布式服务
结
原文链接
]]>
原文地址Q?br />
]]><tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<user username="admin" password="123456" roles="manager-script"/>
</tomcat-users>tomcat-users
节点中配|相应的role
(角色/权限)?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">user(用户)卛_。一?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">user节点表示单个用户Q属?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">username?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">password分别表示d的用户名和密码,属?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">roles表示该用h具备的权限?/p>user
节点?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">roles属性grole
节点?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">rolename属性值相对应Q表C当前用户具备该role节点所表示的角色权限。当Ӟ一个用户可以具备多U权限,因此属?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">roles的值可以是多个rolename
Q多?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">rolename之间以英文逗号隔开卛_?/p>manager-gui
?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">manager-script?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">manager-jmx均具?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">manager-status的权限,也就是说Q?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">manager-gui?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">manager-script?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">manager-jmx三种角色权限无需再额外添?code style="margin: 0px 3px; padding: 1px 4px; border: 1px solid #e1e1e8; outline: 0px; vertical-align: baseline; font-family: Consolas, Monaco, Menlo, 宋体; color: #dd1144; border-radius: 3px; background: #f7f7f9;">manager-status权限Q即可直接访问\?q style="margin: 0px; padding: 0px; border: 1px dotted #778855; outline: 0px; vertical-align: baseline; background: none 0px 0px repeat scroll #f5f5f5;">/manager/status/*?/p>hibernate.hbm2ddl.auto配置详解
一?span style="font-weight: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';"> 配置使用方式
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="create" />
</properties>二?span style="font-weight: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';"> 官方解释
Automatically validate or export schema DDL to the database when the SessionFactory is created.With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly.
eg. validate | update | create | create-drop三?span style="font-weight: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';"> 自己理解
1. createQ?/span>
2. create-drop Q?/span>
3. updateQ?/span>
4. validate Q?/span>
四?span style="font-weight: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';"> 结
]]>
“让我们面对它Qȝ来说数学是不Ҏ的,但当你征服了问题Qƈ辑ֈ新的理解高度Q这是它给你的回报?#8221;
——Danica McKellar
数学是很隄学科Q但因ؓ它是U学家用数学来解释宇宙的语言Q我们无可避免的要学习它。看看下面的q些 GIF 动图Q它们提供了视觉的方式来帮助你理解各U数学技巧?/p>
1、椭圆的L
2、杨辉三角问?Pascal triangles)解法
3、?#8220;FOIL”L的解决二式乘法
4、对数解法技?/strong>
5、矩阵{|的技?/strong>
6、勾股定?/strong>
7、多边Ş的外角之和L{于 360 ?/strong>
8、圆周率π
9、一弧度是长度刚好{于半径的一D圆弧所对的圆心?/strong>
10、在Y轴上使用正u(U色)Q在X轴上使用余u(蓝色)Q则?XY 轴^面上d的环形如下图(黑色)
11、同前一原理Q但更简?/strong>
12、这是将 sin ?cos q用C角Ş?/strong>
13、余弦是正u的衍生物
14、正切线
15、同上,但翻个面看,更容易理?/strong>
16、将一个公式从W卡坐标{换成轴坐?/strong>
17、画抛物U?/strong>
18、黎曼和(Riemann sum)U等于其曲线下的面积
19、双曲线
20、将双曲U表现成 3D 形式Q也怽不相信,它完全是用直U画成的
你甚臛_以做成这L效果Q?/p>
E序源代码中的注释经常是一个卧虎藏龙的地方Q来看看q一辑国外某公司产品中的注释。注意:看的时候严喝水或q食?/p>
亲爱的代码维护h员:
当您试优化q段代码但发现这是一个极端错误的军_的时候,请修改下面的计时器,以便警示后h?/p>
总计费在这D代码的旉 = 16时?/p>
谨以此代码献l我的妻子达琻I感谢她一直支持我Q还有我三个孩子和一只狗?/p>
你可能会认ؓ你读得懂以下的代码。但是你不会懂的Q相信我吧?/p>
要是你尝试玩弄这D代码的话,你将会在无尽的通宵中不断地咒骂自己Z么会认ؓ自己聪明到可以优化这D代码?/p>
好了Q现在请关闭q个文gȝ点别的吧?/p>
E序?(?002q???Q在登陆界面临时加入一些调试代?/p>
E序?(?007q??2?Q你个屁啊
要理解什么是递归的话Q请参考本文g的底?/p>
(在文件的底部)
狂插两下; //痛啊
亲爱的未来的我自己,请原谅我?/p>
我有着难以表达的歉意?/p>
我不对以下代码负责?/p>
是他们逼我写的Q是q背我意愿的?/p>
疯了?Ƣ迎来到斯巴达?/p>
要是你能修正q个问题的话Q我会把72个处女中的两个送给你?/p>
没有注释留给你,隑ֆ的代码必定难?/p>
有待修正?修正什么啊?
要是再让我看到这U代码,我会带着枪来上班?/p>
有只龙在q里……
在你阅读以下代码Ӟ你要先搞懂ؓ什么我在这样做?/p>
我想d一个根节点下面所有的子节点,以便控制根节点不会显C在选择框上。但那个傻逼的DBA找了一些某些傻逼的借口不让我用索引去读取这些数据,而要求我用他们傻逼的q代器。所以有了以下代码?/p>
当我写这D代码的时候,只有老天和我自己知道我在做什么?/p>
现在Q只剩老天知道了?/p>
在DOS的批处理中,有时候需要知道当前的路径。在DOS中,有两个环境变量可以跟当前路径有关Q一个是%cd%, 一个是%~dp0?/p>
q两个变量的用法和代表的内容一般是不同的?/p>
1. %cd% 可以用在批处理文件中Q也可以用在命o行中Q展开后,是驱动器盘符:+当前目录Q如Q?/p>
?c:\dir 下,
昄为,
%cd%的时间内Ҏ可以被改变的Q比如CD命o可以改变它的内宏V?/p>
2. %~dp0 只可以用在批处理文g中,它是由它所在的批处理文件的目录位置军_的,是批处理文g所在的盘符:+路径。在执行q个批处理文件的q程中,它展开后的内容是不可以改变的?/p>
比如在D盘下有个批处理文Ӟdirshow.bat:
在C:\ 下执行它Q输ZؓQ?/p>