- 微服务治理:Nacos, Zookeeper, consul, etcd, Eureka等 5 个常用微服务注册工具对比
surfirst
架构微服务zookeeperconsul
当然!下面是Nacos、Zookeeper、Consul、etcd和Eureka这五个常用的注册中心的详细对比:Nacos:Nacos是由HashiCorp开发的高度可扩展和可靠的服务发现、配置管理和服务网格解决方案。它的架构基于一组服务器代理形成的共识组和与服务器交互的许多客户端代理。主要特点包括:服务发现:服务在Nacos中注册,客户端可以通过DNS或HTTPAPI发现服务及其位置。健康检查:
- 微服务之服务注册与发现:Etcd、Zookeeper、Consul 与 Nacos 比较
陌北v1
微服务etcdzookeeperConsulNacos
在微服务架构中,服务注册与发现是实现服务动态管理和负载均衡的关键。本文将对四款主流的服务注册与发现工具——Etcd、Zookeeper、Consul、Nacos进行深入对比,从功能、性能、一致性、生态集成、应用场景等多个维度展开分析,帮助您选择最适合的工具。核心概念服务注册:服务实例启动时将自身信息(IP地址、端口、健康状态等)注册到注册中心。服务发现:服务消费者通过注册中心查询所需服务的地址列表
- 微服务架构下的服务治理实现方案详解
星辰@Sea
系统架构架构微服务云原生
在微服务架构中,服务治理是确保系统稳定运行、提高服务间通信效率和灵活性的关键环节。它涉及服务的发现、负载均衡、容错、监控等多个方面。本文将深入探讨几种常见的服务治理实现方案:Zookeeper、Nacos、Consul、以及Eureka,分析它们的特点、工作原理及应用场景,帮助开发者根据实际需求选择合适的工具。一、服务治理概述服务治理,简而言之,就是对微服务架构中的服务进行有效管理的过程,包括服务
- 从招聘要求看SAP顾问需要具备怎样的技能
syounger
SAP其他制造
最近我接收到一些小伙伴的询问怎么样提升自己,我觉得要找准提升方向的最好方式是看看各大公司招聘的要求,看看各大公司需要什么样的顾问,对比以下自己还欠缺什么,那么提升的方向就有了。今天我就和大家一起来看下,我随机抽取了猎聘上几个招聘广告跟大家分享一下。分享之前,我先说一下SAP顾问的职位名称,每个公司招聘的时候可能不尽相同,除了传统意义上的SAP顾问、SAPConsultant,还有Applicati
- Prometheus的consul自动发现
HB199753
监控类
目录前言一、概述1、简介2、引入consul的好处3、Prometheus支持的多种服务发现机制二、Prometheus的服务发现机制1、基于文件的服务发现2、基于Consul的服务发现三、Consul的服务发现1、docker安装2、docker-compose安装3、基于docker的consul集群4、使用接口注册服务5、修改prometheus使用consul服务发现6、验证总结前言使用P
- 96、Python消息队列与事件驱动:架构设计与实战案例
多多的编程笔记
架构kongconsul
Python开发:熟悉API网关和服务发现(如Kong、Consul)引言在当今的软件开发领域,微服务架构已经成为了一种趋势。而在微服务架构中,API网关和服务发现机制扮演着至关重要的角色。本文将为大家介绍Python开发中如何熟悉API网关和服务发现,并以Kong和Consul为例,深入解析其应用场景和实用技巧。API网关什么是API网关API网关是一种服务器,作为客户端和后端服务之间的接口。它
- springboot下consul+zuul网关使用简例
mjnkj03
springcloudzuulconsulspringboot网关router
**springboot下consul+zuul网关使用简例zuul网关使用简例pom.xml:添加zuul,服务发现任选这里使用的是consul。配置文件properties:设置consuldiscovery.prefer-ip-address=true;配置zuul的网关路由:path为路径,service-id是其他的服务的spring.application.name的命名。/test1
- sponge创建的服务与dtm连接使用etcd、consul、nacos进行服务注册与发现
zhuyasen
golangrpcetcdconsul微服务服务发现
本文介绍sponge创建的transfer服务(grpc)如何与dtm使用服务注册与发现连接的。此示例在同一台机器上运行的服务,默认IP地址为127.0.0.1。如果服务运行在不同的机器上,请在transfer和dtm的配置文件中,将127.0.0.1替换为相应的主机IP或域名。构建transfer服务transfer服务(grpc)代码由开发框架sponge自动生成(选择⓸基于protobuf创
- ASP.NET Core 微服务初探[1]:服务发现之Consul
weixin_34015336
运维ui数据结构与算法
在传统单体架构中,由于应用动态性不强,不会频繁的更新和发布,也不会进行自动伸缩,我们通常将所有的服务地址都直接写在项目的配置文件中,发生变化时,手动改一下配置文件,也不会觉得有什么问题。但是在微服务模式下,服务会更细的拆分解耦,微服务会被频繁的更新和发布,根据负载情况进行动态伸缩,以及受资源调度影响而从一台服务器迁移到另一台服务器等等。总而言之,在微服务架构中,微服务实例的网络位置变化是一种常态,
- 【微服务】Etcd实现服务器注册和发现|Etcd、Eureka、Consul、Zookeeper 比较
bdview
分布式数据库大数据etcdpython
目录Etcd、Eureka、Consul、Zookeeper的比较Etcd服务注册与发现的必要:etcd简介etcd分布式一致性算法etcd应用场景etcd安装服务注册与发现实例(go语言)服务注册的简单实现1:服务注册的简单实现2:都是key-value存储,redis可以代替etcd吗?为什么选择Etcd而不选择Zookeeper附录附录1:etcd基本使用(数据库CURD和持久化等)数据库操
- 2024SpringCloud学习笔记
wang__n
微服务学习笔记
远程调用RestTemplate服务注册与发现&分布式配置管理Consul下载安装官网https:/ldeveloper.hashicorp.com/consul/downloads开发者模式启动consulagennt-dev浏览器访问本地端口:8500服务注册与发现Maven引入org.springframework.cloudspring-cloud-starter-consul-disco
- 在Spring Cloud中使用Consul的服务健康检查与监控
勤劳兔码农
springcloudconsulspring
在SpringCloud中使用Consul的服务健康检查与监控在微服务架构中,服务的稳定性和健康状态是保证系统可靠性的关键。SpringCloud作为一套流行的微服务开发框架,提供了丰富的服务治理功能,而Consul作为一种强大的服务发现和配置管理工具,能够帮助实现对服务的健康检查和监控。本课程将深入探讨如何在SpringCloud中使用Consul进行服务健康检查与监控,包括Consul的基础功
- 揭示灵活分布式云平台的速效降本之道
Akamai中国
云计算分布式服务器云服务云计算云原生云存储Akamai
如果没有云计算,商业产业会发展到何种程度?很可能至今仍然是实体产业为主。云计算和多云战略的出现使在线购物经历了一场革命。然而,如今多云本身所固有的复杂性也成为该产业的主要痛点。商业IT领袖需要改善性能控制云成本。2023年,Akamai委托ForresterConsulting进行了一项研究,重点关注了商业企业如何通过分布式云架构满足自己的各项需求。本文我们就一起看看这项研究的主要成果。“底线”是
- SpringCloud--LoadBalancer负载均衡服务调用
梦尘(0_O)
负载均衡springcloud
目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务名称调用三、负载均衡算法替换1、默认算法轮询(相同服务名下的所有服务枚举调用)2、替换随机算法(相同服务名下的所有服务随机调用)总结前言LoadBalancer是Ribbon的未来替换方案一、LoadBalancer是什么?LB负载均衡(LoadBalance)是什么简单的说就是将用户的请求平摊
- Spring Cloud Consul入门:服务发现与配置管理的最佳实践
勤劳兔码农
springcloudconsul服务发现
SpringCloudConsul入门:服务发现与配置管理的最佳实践在微服务架构中,服务发现和配置管理是两个核心的需求。SpringCloudConsul作为一个开源的工具,为开发者提供了简单、高效的服务发现和配置管理方案。本文将详细介绍SpringCloudConsul的基础知识,并提供在服务发现与配置管理方面的最佳实践。一、什么是SpringCloudConsul?SpringCloudCon
- [java][集群]consul集群安装
awonw
javajava-consuljavaconsul
/usr/local/bin/consulagent-server-data-dir=/tmp/consul-node=server-1-bind=192.168.3.110-bootstrap-expect3-client=0.0.0.0-ui/usr/local/bin/consulagent-server-data-dir=/tmp/consul-node=server-2-bind=192
- Spring Cloud Consul面试题
丁爸
大数据consul
SpringCloudConsul是SpringCloud生态系统中的一个组件,它基于HashiCorpConsul提供服务治理功能。Consul是一个开源的工具,用于实现服务发现、健康检查和键值存储等功能。SpringCloudConsul通过整合Consul的功能,为SpringCloud应用程序提供了一个易于使用的服务治理方案。以下是一些关于SpringCloudConsul的面试题及答案:
- 15道Spring Cloud Consul精选面试题
liyy614
consul
《SpringCloudConsul面试题精选》1.什么是Consul,它在微服务架构中扮演什么角色?-Consul是一个开源工具,提供服务发现、配置和协调服务。在微服务架构中,Consul主要作为服务注册与发现的中心,帮助微服务之间进行通信和协调。2.如何在SpringCloud应用中集成Consul进行服务注册与发现?-通过在pom.xml中添加SpringCloudConsul依赖,配置ap
- Spring Cloud Consul精选面试题及答案
AI逍遥子
consul
SpringCloudConsul面试题及答案:1.什么是SpringCloudConsul?答:SpringCloudConsul是一个基于SpringBoot和SpringCloud的微服务框架,用于实现服务发现、配置中心和负载均衡等功能。Consul是HashiCorp公司开源的一款提供服务注册与发现的开源软件。2.Consul中的服务发现是如何工作的?答:在Consul中,每个微服务实例都
- Spring Cloud Consul中文文档(Consul和springCloud整合快速上手)
子酷兒233
springcloudjava-consulconsul
SpringCloudConsul1.2.0.RELEASE介绍该项目通过自动配置并绑定到Spring环境和其他Spring编程模型成语,为SpringBoot应用程序提供Consul集成。通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用基于Consul的组件构建大型分布式系统。提供的模式包括服务发现,控制总线和配置。智能路由(Zuul)和客户端负载平衡(Ribbon),断路器
- 【Spring Cloud】Consul
程序者王大川
springbootconsulspringcloud后端学习springjava
官网介绍:SpringCloudConsul该项目为SpringBoot应用程序提供了与Consul的集成,通过自动配置和绑定到Spring环境以及其他Spring编程模型习语。通过几个简单的注解,您可以在应用程序内部快速启用和配置常见模式,并使用基于Consul的组件构建大型分布式系统。提供的模式包括服务发现、控制总线和配置。通过与其他SpringCloud项目的集成,提供了智能路由和客户端负载
- SpringCloud微服务架构之注册中心 | Consul、Nacos
java技术爱好者_R
javajava
思维导图文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary一、前言伴随着Eurka2.0版本已停止维护,开始要考虑使用微服务新一代的开源的注册中心替代Eureka。目前据我了解,Consul和Nacos是比较流行的两种替代方案。这篇文章就介绍一下这两种注册中心在微服务中的简单使用,希望对读者有所帮助。二、注册中心的作用
- cicd
https
定义需要部署的资源K8SKustomization方式部署deployment.yaml定义一组pod的资源,可以由多个pod组成容器组,不过一般不建议这么做,而是各个服务独立开来主要定义的资源image使用的镜像(从公司harbor读取)env环境变量(consul的地址和token)ports对外暴露服务的端口resources资源限制(hpa扩容的依据)readinessProbe,live
- 基于容器的后端服务架构
在探索kubernetes的应用时,调研了几个gateway,发现fabio支持发现服务,自动生成路由,结合consul,registrator,可以很容易的部署一套服务,比较轻量,很容易玩起来。结构大致为:StartConsul安装consul,如果检测到多个privateip,会报错,可以用-advertise指定一个ip.//config.json,指定DNSport{"recursors"
- prometheus基于consul的服务发现
运维@小兵
监控prometheusconsul服务发现
文章目录一、基础二、安装consul下载地址启动consul访问consul三、编写服务发现文件nodes.json四、prometheus配置consul发现修改prometheus.yml重启Prometheus参考一、基础二、安装consul下载地址https://developer.hashicorp.com/consul/install启动consulmkdir-p/app/consul
- 政府人员的职位翻译
浮海纪一朝
政府人员的职位翻译SecretaryofCommissionforInspectingDisciplineofNanning市纪检委书记VicechairmanofNanningPeople’sPoliticalConsultative市政协副主席ChairmanofNanningForeignTrade&EconomicCooperationBureau市外经局局长ChairmanofNanni
- 在Ubuntu 14.04上使用Consul服务发现系统的介绍
白如意i
linuxubuntuconsul服务发现
简介Consul是一个分布式、高可用、数据中心感知的服务发现和配置系统。它可以用来呈现服务和节点,提供灵活和强大的接口,使客户端始终能够获取其所属基础设施的最新视图。Consul提供了许多不同的功能,用于提供关于基础设施的一致和可用信息。这包括服务和节点发现机制、标记系统、健康检查、基于共识的选举例程、系统范围的键/值存储等。通过在组织内利用consul,您可以轻松地为您的应用程序和服务构建复杂的
- 时间去哪App技术支持
一个不愿意透露姓名的人
iOS技术支持网址:有问题的可以留言。邮箱地址:
[email protected]联系电话:13162266601谢谢iOSprogramdesign&systemconsultationifyouhaveanyquestion,pleasecontactmewithnohesitateEmail:
[email protected]:13162266601Than
- Nacos、Eureka、Zookeeper、Consul对比
神也在Copy
架构eurekazookeeperNacos
开发中,经常需要对微服务进行管理,所以需要引入一些服务治理的中间件,用于注册、发现服务,常见的服务治理中间件为服务治理中间件【1】Nacos【2】Eureka【3】Zookeeper【4】Consul(Consul所在的HashiCorp公司宣布,不允许中国境内使用该公司旗下的产品和软件。)对比一览表名称NacosEurekaZookeeperConsul开发语言JavaJavaCJava功能特性
- Docker部署Consul(一)
高达汤
介绍该系列文章会出十期,总结自己学习Consul以及在项目中Consul的应用,该系列已实战为主,中间会介绍项目中使用的技术栈及技术要点,希望能够帮助到大家,中间出现的错误欢迎大家指正。准备开发环境阿里云服务器,操作系统Centos6.5默认你本地环境已经部署Docker服务Consul镜像使用Docker服务中提供的最新版本(latest)操作步骤DockerpullConsul镜像docker
- 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独立出来,数据持