当前位置: 首页 > 文档资料 > Zebra 中文文档 >

常见问题 FAQ

优质
小牛编辑
117浏览
2023-12-01

1.沟通常见问题

1.1 Zebra是什么,主要的应用场景是什么

A: Zebra介绍 Zebra是什么

1.2 Zebra支持哪些语言

A: 由于Zebra组件是以jar包的形式使用,所以仅支持java及其他使用jvm语言(Scala,Groovy...)。

1.3 mysql-connector-java版本的选择

A: 当前推荐版本是5.1.40+,目前官方mysql-connector-java 存在3个大版本 5.1.x, 6.0.x, 8.0.x。

5.1.x作为推荐版本 美团点评公司当前99.9%的应用都使用此类版本,可以保证兼容性和一致性。

6.0.x禁止使用 该版本号只有几个release,已经有一段时间不维护且与5.1.x存在一些兼容性的问题。

8.0.x尚未经过验证 该版本主要为了兼容mysql8.0 用户酌情使用。

如需了解driver详细Release请参考 Mysql Connector/J Release Notes

xml依赖

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>${version}</version>
</dependency>

接入时问题

2.1 如何在jdbcurl中添加额外的参数

在初始化DataSource时由每一个客户端自行定义,比如在spring的xml的bean中添加一个额外的参数:extraJdbcUrlParams,按照param1=value1&param2=value2的格式配置,但是在xml中,需要对 “&” 进行转义 &

<bean id="dataSource" class="com.dianping.zebra.group.jdbc.GroupDataSource" init-method="init" destroy-method="close">    
    <!--添加额外的jdbc url的参数-->  
    <property name="extraJdbcUrlParams" value="param1=value1&amp;param2=value2" /> 
</bean>

2.2 如何支持utf8mb4字符集

A1: 检查连接mysql的版本 如果是mysql5.7或mysqlserver的collation_server为utf8_general_ci, 将mysql-connector-java升级到5.1.33及以上版本后可以直接支持。

A2: 一般情况下,业务方在使用这个参数时,都是设置编码方式:"set names utf8mb4"。

<bean id="dataSource" class="com.dianping.zebra.group.jdbc.GroupDataSource" init-method="init" destroy-method="close">
    <property name="poolType" value="druid" />
    <!--除了c3p0之外的其他连接池都可以支持connectionInitSql-->
    <property name="connectionInitSql" value="set names utf8mb4" />
</bean>

2.3 如何支持在数据源上修改事务的隔离级别

A: 通过 connectionInitSql的方式设置, 整个数据源的生命周期内生效。

<bean id="dataSource" class="com.dianping.zebra.group.jdbc.GroupDataSource" init-method="init" destroy-method="close">
    <property name="poolType" value="druid" />
    <!--除了c3p0之外的其他连接池都可以支持connectionInitSql-->
    <property name="connectionInitSql" value="set session transaction isolation level read committed" /> 
</bean>