- Spring Cloud: Hystrix请求队列线程不足
MeazZa
在SpringCloud中,Feign可以实现本地化的微服务API调用,Hystrix可以实现调用失败时的fallback处理。问题描述:在实际生产环境中使用时,我们遇到了这样一个错误:"...,stacktrace:[com.netflix.hystrix.exception.HystrixRuntimeException:QueryNodeImpalaBdService#getQueryRes
- Hystrix&Feign
快乐肥翟z
hystrixjava运维
Hystrix1,概念Hystrix是一个用于处理分布式系统的延迟和容错的开源库,可以保证一个服务出现故障时,不会导致整个系统出现雪崩效应,以提高分布式系统弹性;作为“断路器”,在一个服务出现故障时,可以通过短路器监控,返回一个可以处理的响应结果,保证服务调用线程不会长时间被占用,避免故障蔓延。雪崩当一个服务器中要同时处理多个请求时,当一个请求无法正确响应,请求超时。会将请求阻塞到该服务的线程池中
- feign和hystrix
小林嘞
springcloudhystrixjavaspring
网上教程说feign中集成了hystrix,但是引入的最新版本的3.1.4版本的feign在运行程序时提示,feign中没有hystrix的实例.于是手动添加:org.springframework.cloudspring-cloud-starter-netflix-hystrix2.2.10.RELEASE同时需要注意,在使用时出现了很多教程说的开启hystrix的方法如下:#开启feign对h
- 一张图深入理解Hystrix断路器的工作原理
七叶笔记
image.png根据上图来理解下Hystrix断路器的工作原理。1、首先,经过断路器的流量需要超过一定的阈值【通过HystrixCommandProperties.circuitBreakerRequestVolumeThreshold()进行配置】,才会去判断要不要断路。看图中的例子,要求10s内经过断路器的请求达到50个才可能去触发判断断路,否则即使请求全失败也不会去判断要不要断路,比如图中
- Python请求数据,r = response.json(),提取字段报TypeError: list indices must be integers or slices, not str[已解决]
qq_41845402
pythonjson开发语言
#encoding:utf-8r={"atomicElapsed":74,"data":{"pageCount":0,"pageData":[{"batchLock":0,"batchNo":"882211080000016","companyCode":"CRV","createTime":"2022-11-0818:44:11","crowdWorkerID":""}]},"hystrixEl
- Hystrix 的隔离策略详解
码农爱java
【SpringCloud】Hystrix微服务SpringCloud熔断限流
前言:在微服务项目中,各个微服务相互调用,如果服务的服务接口异常、网络延迟、或高并发下某个节点被阻塞而导致整个服务的资源耗尽,这样就可能会导致整个服务资源耗尽,出现服务雪崩现象,对于这种情况我们可以使用Hystrix、Sentinel组件来进行限流熔断,避免服务雪崩,本篇我们主要介绍一下Hystrix的隔离策略。Hystrix的隔离策略熟悉Hystrix的都知道Hystrix有两种隔离策略,分别是
- feign调用走不走网关全局拦截_feign在服务间传递header
小葙
场景:用户登陆后,再次访问网页,将用户信息loginToken放在request的header中,首先经过网关,然后到达A服务,然后A服务调用B服务时如何把loginToken传递给B服务1.修改hytrix配置,配置hytrix的strategy为SEMAPHORE。Hystrix提供两种执行隔离策略(ExecutionIsolationStrategy):SEMAPHORE、THREADSEM
- Hytrix&Feign超时时间配置
鱼da王
Hytrix#默认为truehystrix.command.default.execution.timeout.enabled=true#默认为1000毫秒hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=500Feign#连接超时时间毫秒feign.client.config.default.conn
- 微服务架构 | 服务稳定性治理
问仙长何方蓬莱
微服务
INDEX§1目的§2常见手段§3熔断&降级§4限流&舱闭§1目的§2常见手段熔断降级隔离(限流/舱闭)热点鉴权动态开关§3熔断&降级§4限流&舱闭常用工具hystrixsentinelresilience4j常用限流算法令牌桶漏桶固定窗口滑动窗口
- Spring Cloud Neflix Hystrix应用实战详解
NullzzZ
微服务SpringCloud系列文章springcloudhystrixspringspringbootjava后端微服务
Hystrix实战OpenFeign整合Hystrix通常在复杂的分布式系统都存在不同服务之间的调用,OpenFeign作为SpringCloud的远程调用工具默认是已经集成了Hystrix。在一些老的版本中,默认是打开了Hysrix,但是在新的版本中,Hystrix是关闭的,需要手动打开。创建模块cloud-goods-serviceorg.springframework.cloudspring
- Spring Cloud Hystrix:服务容错与熔断
星光闪闪k
JavaSpringspringcloudhystrixjava后端spring架构
1.理解服务容错与熔断1.1服务容错的概念和重要性在分布式系统中,由于各种原因(例如网络延迟、服务故障等),服务之间的通信可能会出现故障或者延迟。为了提高系统的可用性和稳定性,需要实现服务容错机制,即在发生故障或延迟时,系统能够以一种可控的方式继续提供服务,而不会导致整个系统的崩溃。服务容错机制的重要性体现在以下几个方面:提高系统的可用性:及时处理服务故障,确保系统能够持续提供服务。提高系统的稳定
- 08-OpenFeign-结合Sentinel,实现熔断降级
宣晨光
sentinelopenfeign
当我们在对服务远程调用时,会因为服务的请求超时、抛出异常等情况,导致调用失败。如果短时间内,产生大量请求异常。引发上游的调用方请求积压,最终会引起整个调用链雪崩。为此我们需要对核心的调用过程进行监控,当产生异常时,可以采取相应的措施,确保服务的容错性、可用性。OpenFeign默认支持Hystrix,本文主要以alibaba相关中间件为参考。服务调用方以下配置结合了springcloud、spri
- 微服务常见面试题解析、问题说明及参考话术,实用干货
纵然间
Java分布式微服务java面试
一、SpringCloud常见组件有哪些?1.1问题说明这个题目主要考察对SpringCloud的组件基本了解1.2难易程度简单1.3参考话术SpringCloud包含的组件很多,有很多功能是重复的。其中最常用组件包括:注册中心组件:Eureka、Nacos等负载均衡组件:Ribbon远程调用组件:OpenFeign网关组件:Zuul、Gateway服务保护组件:Hystrix、Sentinel服
- 去虾皮面试,结果人都被问麻了!竟惨遭面试官的吊打
技术栈
最近有位读者去虾皮面试啦,所以今天给大家推荐一篇整理了15道虾皮面试真题答案的文章。文中比较长,大家可以收藏慢慢看。image.png排序链表对称与非对称加密算法的区别TCP如何保证可靠性聊聊五种IO模型hystrix工作原理延时场景处理https请求过程聊聊事务隔离级别,以及可重复读写的原理聊聊索引在哪些场景下会失效?什么是虚拟内存排行榜的实现,比如高考成绩排序分布式锁实现聊聊零拷贝聊聊sync
- 熔断机制解析:如何用Hystrix保障微服务的稳定性
java
微服务与系统的弹性设计大家好,我是小黑,在讲Hystrix之前,咱们得先聊聊微服务架构。想象一下,你把一个大型应用拆成一堆小应用,每个都负责一部分功能,这就是微服务。这样做的好处是显而易见的,更新快,容错性强,每个服务可以独立部署,挺美的对吧?但是,问题也随之而来,这些服务之间怎么通信?如果一个服务挂了怎么办?这就引出了“弹性设计”的概念。弹性设计,听起来就很有弹性,实际上也确实如此。它是一种让系
- SpringCloud
纸箱子的一
SpringCloudZuul路由网关Ribbon客户端的负载均衡IRuleEureka服务注册(AP原则)Feign服务调用(Fallback)Hystrix服务熔断,服务降级SpringCloudConfig集中配置中心(git)
- Hystrix与RestTemplate超时的坑
沉沦2014
1.问题描述ConnectTimeOut、SocketTimeOut、ReadTimeOut含义?当RestTemplate和Hystrix同时配置了超时时间,以谁为准?2.各种TimeOut含义解释一次http请求必定会有三个阶段,一:建立连接;二:数据传送;三,断开连接。当建立连接在规定的时间内(ConnectionTimeOut)没有完成,那么此次连接就结束了。后续的SocketTimeOu
- spring-cloud使用resilience4j实现熔断、限流
freeok
由于hystrix官方已经停止维护了,目前spring-cloud推荐使用resilience4j来代替hystrix实现熔断、限流。熔断一般指客户端调用服务端接口出现异常时客户端侧的处理,当然也可以是服务端的处理出现异常时熔断快速返回,可以暂时切断对下游服务的调用,是一种牺牲局部保全整体的有效措施(同时此客户端也可能是服务端)。限流一般是指限制在指定时间间隔内的请求量,避免因请求过多导致服务崩溃
- SpringCloud(一)-Ribbon负载均衡、Hystrix熔断机制、
So_ProbuING
接上篇文章:https://www.jianshu.com/p/dac81a7bde30负载均衡Ribbon什么是RibbonRibbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为,为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法、自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。我们也可以自定
- Hystrix系列之执行原理分析
美团Java
上文中介绍了Hystrix的由来,本文会深入分析Hystrix的执行过程。Hystrix的大部分逻辑基于RxJava,其实现让很热多人望而却步,停留在了仅仅使用的地步,从一个简单的HelloWorld开始。publicclassCommandHelloWorldextendsHystrixCommand{privatefinalStringname;publicCommandHelloWorld(
- 熔断机制解析:如何用Hystrix保障微服务的稳定性
宋小黑
hystrix微服务javaspringcloud后端
微服务与系统的弹性设计大家好,我是小黑,在讲Hystrix之前,咱们得先聊聊微服务架构。想象一下,你把一个大型应用拆成一堆小应用,每个都负责一部分功能,这就是微服务。这样做的好处是显而易见的,更新快,容错性强,每个服务可以独立部署,挺美的对吧?但是,问题也随之而来,这些服务之间怎么通信?如果一个服务挂了怎么办?这就引出了“弹性设计”的概念。弹性设计,听起来就很有弹性,实际上也确实如此。它是一种让系
- 从源码分析Hystrix工作机制
vivo互联网技术
一、Hystrix解决了什么问题?在复杂的分布式应用中有着许多的依赖,各个依赖都有难免在某个时刻失败,如果应用不隔离各个依赖,降低外部的风险,那容易拖垮整个应用。举个电商场景中常见的例子,比如订单服务调用了库存服务、商品服务、积分服务、支付服务,系统均正常情况下,订单模块正常运行。image但是当积分服务发生异常时且会阻塞30s时,订单服务就有有部分请求失败,且工作线程阻塞在调用积分服务上。ima
- 聊聊hystrix的BucketedCounterStream
go4it
序本文主要研究一下hystrix的BucketedCounterStreamBucketedCounterStreamhystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/metric/consumer/BucketedCounterStream.java/***Abstractclassthatimposesabucketingstructur
- Sping Cloud Hystrix
花开不合阳春暮
#分布式
SpringCloudHystrix防雪崩利器基于Netflix对应的Hystrix具备的功能:1.服务降级2.依赖隔离3.服务熔断4.监控(HystrixDashboard)服务降级优先核心服务,非核心服务不可用或弱可用通过HystrixCommand注解指定fallbackMethod(回退函数)中具体实现降级逻辑使用RestTemplate的简单实例:1.引入依赖org.springfram
- 【Sping Cloud】04--Hystrix dashboard 断路器仪表盘
DRHJ
SpringClouddashboardspringcloudnetflix
一,介绍1)Hystrix数据监控仪表盘2)Hystrix日志,是通过Actuator工具来暴露出来二,Actuator1.介绍springboot提供的一个项目指标工具,可以通过Actuator获取项目的各种日志数据健康状态spring容器中所有的对象springmvc映射的所有路径jvm堆内存镜像2.依赖Zuul中默认含有Actuator,所以无需添加3.暴露日志设置m.e.w.e.i="*"
- SpringCloud十八、豪猪服务监控hystrixDashboard。
详见附件
①什么是服务监控hystrixdashboard?除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(HystrixDashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监
- Sping Cloud Hystrix 参数配置、简单使用、DashBoard
山风wind
spring-cloudhystrixjava熔断spring-cloud
SpingCloudHystrix文章目录SpingCloudHystrix一、Hystrix服务降级二、Hystrix使用示例三、OpenFeignHystrix四、Hystrix参数HystrixCommand.Setter核心参数CommandPropertiesFallback降级配置CircuitBreaker熔断器配置Metrix健康统计配置RequestContext相关参数Coll
- 在实现openfeign的fallbackFactory<T>回调时,引入sentinel后报错:class org.springframework.cloud.openfeign.HystrixTa
爱看老照片
sentinelopenfeignfallbackFactory回调启动报错
问题:如题在实现openfeign的fallbackFactory<T>回调时,引入sentinel后报错:classorg.springframework.cloud.openfeign.HystrixTargeter$$EnhancerBySpringCGLIB$$bf1a2de1cannotaccessitssuperclassorg.springframework.cloud.openfe
- spring 熔断机制
木子0204
springjava后端
SpringCloudHystrix(服务容错保护)熔断的目的:为了保证服务高可用,不能因为系统中的一个小服务不可用,从而导致整个系统的崩溃。熔断的原理:对于使用相关注解的类或者方法,系统会监控其错误,如果多次出现同一错误,而且达到阈值,则打开熔断开关,熔断开关打开后,不在访问远程服务器,而是直接调用预先准备的失败方法。当熔断开关过期后、会尝试访问远程服务,这个时候的熔断开关是半开半闭状态的,有些
- Spring Cloud Neflix Hystrix入门使用
NullzzZ
springcloudhystrixspringspringbootjava后端微服务
1.概述Hystrix是Netflix开源的一个针对分布式系统容错处理的组件,Netflix公司的项目里大量用到了Hystrix,Hystrix单词意为:“豪猪”,浑身有刺来保护自己。Hystrix是一个延迟和容错库,旨在隔离远程系统、服务和第三方库,阻止级联故障,在复杂的分布式系统中实现恢复能力。设计目的对通过第三方客户端库访问的依赖项(通常是通过网络)的延迟和故障进行保护和控制。在复杂的分布式
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持