Acceptor或者Initiator能够为您维护尽可能多的FIX会话,因而FIX会话标识的唯一性非常重要。在QuickFIX/N中,一个FIX会话的唯一标识是由:BeginString(FIX版本号)、SenderCompID(发送方ID)及TargetCompID(目标方ID)等标识字符组合而成。通常还会加上SessionQualifier来保证会话的唯一性。

每个FIX会话可以有很多与它们相关联的配置信息。在编译的时候,有些配置可能还是未知的,因此可以通过类SessionSettings来设置或加载。 SessionSettings是一个数据字典,可以随意设置和查询配置信息。

SessionSettings有两个带参数构造函数,其中一个是System.IO.TextReader的参数,它能够解析TextReader的配置信息;另外一个构造参数是文件名,把配置文件的文件路径作为参数传入,它可以解析当中的配置信息 ​​。当然,你也可以自己定义组件(例如,一个特定的数据库存储),然后使用SessionSettings存储配置信息(SessionSettings提供了一个Set方法)。

配置文件当中有两个类型的配置节点: [DEFAULT],[SESSION]。[SESSION]定义一个会话。[DEFAULT]节点定义与会话相关,但没在会话当中明确定义的相关配置,比如连接对手方的IP、端口、心跳间隔等。QuickFIX/N并不会为所有必需配置的定义默认值。如果配置有任何一个QuickFIX/N必需的配置项缺失,它将抛出ConfigError异常,提示配置缺少或格式不正确。

1)      会话配置(SESSION)

配置

描述

有效值

默认

BeginString

会话使用的FIX版本号(发送和接收消息起始字符串)

FIXT.1.1

 

FIX.4.4

FIX.4.3

FIX.4.2

FIX.4.1

FIX.4.0

SenderCompID

会话当中定义本方的ID

区分大小写的字符串

 

SenderSubID

会话相关的本方的子ID号 (可选)

区分大小写的字符串

 

SenderLocationID

会话相关的本方的locationID号 (可选)

区分大小写的字符串

 

TargetCompID

本会话当中的对方ID

区分大小写的字符串

 

TargetSubID

本会话当中的对方SubID (可选)

区分大小写的字符串

 

TargetLocationID

本会话当中的对方locationID (可选)

区分大小写的字符串

 

SessionQualifier

附加的限定词,用于消除歧义,保证会话的唯一性

区分大小写的字符串

 

DefaultApplVerID

仅FIXT1.1(或以上版本)需要。忽略早期版本的传输。指定会话的默认应用程序的版本ID。ApplVerID的枚举值(请看ApplVerID字段详细介绍),或默认BeginString。

FIX.5.0SP2

-

FIX.5.0SP1

FIX.5.0

FIX.4.4

FIX.4.3

FIX.4.2

FIX.4.1

FIX.4.0

ConnectionType

定义会话当中本方的角色:acceptor或者r initiator

initiator

-

acceptor

StartTime

交易日的会话有效开始时间,这时FIX会话被激活

UTC时间,格式: HH:MM:SS,

-

EndTime

交易日的会话失效时间,FIX会话将被停止

同上

-

StartDay

对于为期一周的会话配置,一周会话开始的第一天。与STARTTIME结合使用。

使用一周中某天的英语任何缩写都是有效的(比如,mo, mon, mond, monda,Monday都是有效的)

-

EndDay

对于为期一周的会话配置,一周会话结束的最后一天。与EndTime结合使用。

同上

-

MillisecondsInTimeStamp

时间戳是否加入毫秒。FIX.4.2和更高版本可用。

Y

Y

N

ResetOnLogon

接收登录请求时,序列号是否要复位。只用于Acceptor

Y

N

N

ResetOnLogout

正常注销登录时,序列号是否要复位

Y

N

N

ResetOnDisconnect

连接异常断开后是否要将序列号重置为1

Y

N

N

RefreshOnLogon

确定是否应当从持久层登录时恢复会话状态。在创建热故障切换会话时有用。

Y

N

N

EnableLastMsgSeqNumProcessed

是否在header中添加最后一条消息的序列号(可选tag369)。

Y

N

N

MaxMessagesInResendRequest

设置一次重发请求的消息的最大消息数。

任何大于0的整数。使用0为无穷大(默认)。

0

SendLogoutBeforeDisconnectFromTimeout

指定是否因超时断开连接之前发送logout消息。

Y

N

N

IgnorePossDupResendRequests

当PossDupFlag(tag 43)设置为true时,是否忽略一次重发请求,

Y

N

N

2)      验证配置

配置

描述

有效值

默认

UseDataDictionary

告诉会话是否使用数据字典,或不希望使用数据字典。 如果你要使用repeating group,你必须使用DataDictionary

Y

Y

N

DataDictionary

XML定义文件用于验证传入的FIX消息。如果没有提供DataDictionary,只会做基本消息的验证。 

有效的XML数据字典文件。QuickFIX/N 配备默认的协议字典数据

-

该配置只用于比FIXT.1.1还老的版本。详细参考FIXT.1.1的TransportDataDictionary和AppDataDictionary的配置。

FIX44.xml

FIX43.xml

FIX42.xml

FIX41.xml

FIX40.xml

TransportDataDictionary

XML定义文件用于验证传入的管理消息。如果没有提供DataDictionary,只会做基本消息的验证。该配置只用于FIXT.1.1(或更高版本)的会话。 

有效的XML数据字典文件。QuickFIX/N 配备默认的协议字典数据

-

更多信息请参考(FIX.4.0到 FIX.4.4)的DataDictionary。

 FIXT1.1.xml

AppDataDictionary

用于验证应用层消息的XML定义文件。仅对FIXT.1.1(或更高版本)的会话有效。

更多信息请参考(FIX.4.0到 FIX.4.4)的DataDictionary。

该配置可以为每个会话指定一个自定义应用的数据字典。该配置仅用于FIXT.1.1或更新的传输协议。使用FIXT传输时,该配置可以作为指定多个应用的数据字典的前缀。例如: 

DefaultApplVerID=FIX.4.2 # For default application version ID AppDataDictionary=FIX42.xml # For nondefault application version ID # Use BeginString suffix for app version AppDataDictionary.FIX.4.4=FIX44.xml 

有效的XML数据字典文件。QuickFIX/N 配备默认的协议字典数据

-

FIX50SP2.xml

FIX50SP1.xml

FIX50.xml

FIX44.xml

FIX43.xml

FIX42.xml

FIX41.xml

FIX40.xml

ValidateFieldsOutOfOrder

如果设置为N,字段放置区域错误(例如,body字段在header区域内,或在header字段在body区域内)将不会被拒绝。用于连接字段要求不严格的系统。

Y

Y

N

ValidateFieldsHaveValues

如果设置为N,没有值的字段将不会被拒绝。用于连接到系统不当发送空标签。

Y

Y

N

ValidateUserDefinedFields

如果设置为N,用户自定义的字段将不会被拒绝,即使没有在数据字典中定义,或没出现在消息中。

Y

Y

N

1) Initiator

设置

描述

有效值

默认

ReconnectInterval

尝试重新连接的时间间隔(秒)。仅用于 initiator。

正整数

30

HeartBtInt

心跳间隔(秒)。仅用于initiator。

正整数

-

LogonTimeout

登录超时时间间隔(秒)

正整数

10

LogoutTimeout

注销登录超时时间间隔(秒)。

正整数

2

SocketConnectPort

Socket服务端口,用于建立会话。仅用于 initiator

正整数

-

SocketConnectHost

连接主机.仅用于 initiator

x.x.x.x格式IP地址或域名

-

SocketConnectPort<n>

一组备用Socket端口,用于连接会话的故障转移,n是正整数。SocketConnectPort1,SocketConnectPort2 ... 必须是连续的,并有一个与之相匹配的数组SocketConnectHost<n>

正整数

-

SocketConnectHost<n>

一组备用Socket服务主机,用于连接会话的故障转移,n是正整数。SocketConnectHost1, SocketConnectHost2...  必须是连续的,并有一个与之相匹配的数组SocketConnectPort<n>

x.x.x.x格式IP地址或域名

-

SocketNodelay

连接是否禁用Nagle算法。在[DEFAULT]配置节点定义。

Y

Y

N

注:Nagle算法的目的是避免TCP发送大量的小数据包。TCP在接收到前一个小段的ACK消息之前,一直保存小数据包。然而Nagle算法和TCP的延迟确认策略间的交互会因一段暂时性的“死锁”而使应用程序产生严重的性能下降。

2) acceptor

设置

描述

有效值

默认

SocketAcceptPort

监听接入连接Socket端口。仅用于acceptor

正整数,有效的、开放的套接字端口

-

SocketAcceptHost

监听接入连接的Socket服务的主机。如果不提供,acceptor将监听所有网络端口(0.0.0.0)

有效的x.x.x.x格式IP地址

0.0.0.0

SocketNodelay

连接是否禁用Nagle算法。在[DEFAULT]配置节点定义。

Y

Y

N

3) Storage

设置

描述

有效值

默认

PersistMessages

如果设置为N,被不会保存消息。这样将迫使quickfix总是发送GapFills,而不是重新发送消息。如果你知道你永远不需要重新发送消息,使用此配置。有用的市场数据流。

Y

Y

N

4) File  Storage

设置

描述

有效值

默认

FileStorePath

存储序列号和消息的文件目录。

有效的文件存储目录,必须有写入权限。

-

5) Logging

设置

描述

有效值

默认

FileLogPath

存储日志的目录。

有效的文件存储目录,必须有写入权限。

-

6) 配置文件的样例

(1) Initiator 配置文件的样例

只能用一个[DEFAULT]节点,可以有多个[SESSION]节点,多个[SESSION]节点是定义多个会话。

#定义会话的默认配置(default节点,对于全部会话有效,当然允许 SESSIION节点重写)
[DEFAULT]
FileStorePath=store
FileLogPath=log
ConnectionType=initiator
ReconnectInterval=60
SenderCompID=TW
 
# session定义
[SESSION]
# FileStorePath,FileLogPath,ConnectionType, 
#    ReconnectInterval and SenderCompID 等配置延用 default的配置
BeginString=FIX.4.1
TargetCompID=ARCA
StartTime=12:30:00
EndTime=23:30:00
HeartBtInt=20
SocketConnectPort=9823
SocketConnectHost=123.123.123.123
DataDictionary=somewhere/FIX41.xml
 
[SESSION]
BeginString=FIX.4.0
TargetCompID=ISLD
StartTime=12:00:00
EndTime=23:00:00
HeartBtInt=30
SocketConnectPort=8323
SocketConnectHost=23.23.23.23
DataDictionary=somewhere/FIX40.xml
 
[SESSION]
BeginString=FIX.4.2
TargetCompID=INCA
StartTime=12:30:00
EndTime=21:30:00
# 自定义ReconnectInterval时间间隔值,不用default配置节点的配置,仅本会话有效
ReconnectInterval=30
HeartBtInt=30
SocketConnectPort=6523
SocketConnectHost=3.3.3.3
# (可选)连接端口及连接服务主机列表, 用于故障恢复时自动切换
SocketConnectPort1=8392
SocketConnectHost1=8.8.8.8
SocketConnectPort2=2932
SocketConnectHost2=12.12.12.12
DataDictionary=somewhere/FIX42.xml

(2)      Acceptor 配置文件的样例

# 定义会话的默认配置(default节点)
[DEFAULT]
FileStorePath=store
FileLogPath=log
ConnectionType=acceptor
ReconnectInterval=60
SenderCompID=ARCA
 
# session definition
[SESSION]
# FileStorePath,FileLogPath,ConnectionType, 
#    ReconnectInterval and SenderCompID 等配置延用 default的配置
BeginString=FIX.4.1
TargetCompID=TW
StartTime=12:30:00
EndTime=23:30:00
HeartBtInt=20
SocketAcceptPort=9823
DataDictionary=somewhere/FIX41.xml
 
[SESSION]
BeginString=FIX.4.0
TargetCompID=TW
StartTime=12:00:00
EndTime=23:00:00
HeartBtInt=30
SocketAcceptPort=8323
DataDictionary=somewhere/FIX40.xml
 
[

Acceptor或者Initiator能够为您维护尽可能多的FIX会话,因而FIX会话标识的唯一性非常重要。在QuickFIX/N中,一个FIX会话的唯一标识是由:BeginString(FIX版本号)、SenderCompID(发送方ID)及TargetCompID(目标方ID)等标识字符组合而成。通常还会加上SessionQualifier来保证会话的唯一性。

每个FIX会话可以有很多与它们相关联的配置信息。在编译的时候,有些配置可能还是未知的,因此可以通过类SessionSettings来设置或加载。 SessionSettings是一个数据字典,可以随意设置和查询配置信息。

SessionSettings有两个带参数构造函数,其中一个是System.IO.TextReader的参数,它能够解析TextReader的配置信息;另外一个构造参数是文件名,把配置文件的文件路径作为参数传入,它可以解析当中的配置信息 ​​。当然,你也可以自己定义组件(例如,一个特定的数据库存储),然后使用SessionSettings存储配置信息(SessionSettings提供了一个Set方法)。

配置文件当中有两个类型的配置节点: [DEFAULT],[SESSION]。[SESSION]定义一个会话。[DEFAULT]节点定义与会话相关,但没在会话当中明确定义的相关配置,比如连接对手方的IP、端口、心跳间隔等。QuickFIX/N并不会为所有必需配置的定义默认值。如果配置有任何一个QuickFIX/N必需的配置项缺失,它将抛出ConfigError异常,提示配置缺少或格式不正确。

1)      会话配置(SESSION)

配置

描述

有效值

默认

BeginString

会话使用的FIX版本号(发送和接收消息起始字符串)

FIXT.1.1

 

FIX.4.4

FIX.4.3

FIX.4.2

FIX.4.1

FIX.4.0

SenderCompID

会话当中定义本方的ID

区分大小写的字符串

 

SenderSubID

会话相关的本方的子ID号 (可选)

区分大小写的字符串

 

SenderLocationID

会话相关的本方的locationID号 (可选)

区分大小写的字符串

 

TargetCompID

本会话当中的对方ID

区分大小写的字符串

 

TargetSubID

本会话当中的对方SubID (可选)

区分大小写的字符串

 

TargetLocationID

本会话当中的对方locationID (可选)

区分大小写的字符串

 

SessionQualifier

附加的限定词,用于消除歧义,保证会话的唯一性

区分大小写的字符串

 

DefaultApplVerID

仅FIXT1.1(或以上版本)需要。忽略早期版本的传输。指定会话的默认应用程序的版本ID。ApplVerID的枚举值(请看ApplVerID字段详细介绍),或默认BeginString。

FIX.5.0SP2

-

FIX.5.0SP1

FIX.5.0

FIX.4.4

FIX.4.3

FIX.4.2

FIX.4.1

FIX.4.0

ConnectionType

定义会话当中本方的角色:acceptor或者r initiator

initiator

-

acceptor

StartTime

交易日的会话有效开始时间,这时FIX会话被激活

UTC时间,格式: HH:MM:SS,

-

EndTime

交易日的会话失效时间,FIX会话将被停止

同上

-

StartDay

对于为期一周的会话配置,一周会话开始的第一天。与STARTTIME结合使用。

使用一周中某天的英语任何缩写都是有效的(比如,mo, mon, mond, monda,Monday都是有效的)

-

EndDay

对于为期一周的会话配置,一周会话结束的最后一天。与EndTime结合使用。

同上

-

MillisecondsInTimeStamp

时间戳是否加入毫秒。FIX.4.2和更高版本可用。

Y

Y

N

ResetOnLogon

接收登录请求时,序列号是否要复位。只用于Acceptor

Y

N

N

ResetOnLogout

正常注销登录时,序列号是否要复位

Y

N

N

ResetOnDisconnect

连接异常断开后是否要将序列号重置为1

Y

N

N

RefreshOnLogon

确定是否应当从持久层登录时恢复会话状态。在创建热故障切换会话时有用。

Y

N

N

EnableLastMsgSeqNumProcessed

是否在header中添加最后一条消息的序列号(可选tag369)。

Y

N

N

MaxMessagesInResendRequest

设置一次重发请求的消息的最大消息数。

任何大于0的整数。使用0为无穷大(默认)。

0

SendLogoutBeforeDisconnectFromTimeout

指定是否因超时断开连接之前发送logout消息。

Y

N

N

IgnorePossDupResendRequests

当PossDupFlag(tag 43)设置为true时,是否忽略一次重发请求,

Y

N

N

2)      验证配置

配置

描述

有效值

默认

UseDataDictionary

告诉会话是否使用数据字典,或不希望使用数据字典。 如果你要使用repeating group,你必须使用DataDictionary

Y

Y

N

DataDictionary

XML定义文件用于验证传入的FIX消息。如果没有提供DataDictionary,只会做基本消息的验证。 

有效的XML数据字典文件。QuickFIX/N 配备默认的协议字典数据

-

该配置只用于比FIXT.1.1还老的版本。详细参考FIXT.1.1的TransportDataDictionary和AppDataDictionary的配置。

FIX44.xml

FIX43.xml

FIX42.xml

FIX41.xml

FIX40.xml

TransportDataDictionary

XML定义文件用于验证传入的管理消息。如果没有提供DataDictionary,只会做基本消息的验证。该配置只用于FIXT.1.1(或更高版本)的会话。 

有效的XML数据字典文件。QuickFIX/N 配备默认的协议字典数据

-

更多信息请参考(FIX.4.0到 FIX.4.4)的DataDictionary。

 FIXT1.1.xml

AppDataDictionary

用于验证应用层消息的XML定义文件。仅对FIXT.1.1(或更高版本)的会话有效。

更多信息请参考(FIX.4.0到 FIX.4.4)的DataDictionary。

该配置可以为每个会话指定一个自定义应用的数据字典。该配置仅用于FIXT.1.1或更新的传输协议。使用FIXT传输时,该配置可以作为指定多个应用的数据字典的前缀。例如: 

DefaultApplVerID=FIX.4.2 # For default application version ID AppDataDictionary=FIX42.xml # For nondefault application version ID # Use BeginString suffix for app version AppDataDictionary.FIX.4.4=FIX44.xml 

有效的XML数据字典文件。QuickFIX/N 配备默认的协议字典数据

-

FIX50SP2.xml

FIX50SP1.xml

FIX50.xml

FIX44.xml

FIX43.xml

FIX42.xml

FIX41.xml

FIX40.xml

ValidateFieldsOutOfOrder

如果设置为N,字段放置区域错误(例如,body字段在header区域内,或在header字段在body区域内)将不会被拒绝。用于连接字段要求不严格的系统。

Y

Y

N

ValidateFieldsHaveValues

如果设置为N,没有值的字段将不会被拒绝。用于连接到系统不当发送空标签。

Y

Y

N

ValidateUserDefinedFields

如果设置为N,用户自定义的字段将不会被拒绝,即使没有在数据字典中定义,或没出现在消息中。

Y

Y

N

1) Initiator

设置

描述

有效值

默认

ReconnectInterval

尝试重新连接的时间间隔(秒)。仅用于 initiator。

正整数

30

HeartBtInt

心跳间隔(秒)。仅用于initiator。

正整数

-

LogonTimeout

登录超时时间间隔(秒)

正整数

10

LogoutTimeout

注销登录超时时间间隔(秒)。

正整数

2

SocketConnectPort

Socket服务端口,用于建立会话。仅用于 initiator

正整数

-

SocketConnectHost

连接主机.仅用于 initiator

x.x.x.x格式IP地址或域名

-

SocketConnectPort<n>

一组备用Socket端口,用于连接会话的故障转移,n是正整数。SocketConnectPort1,SocketConnectPort2 ... 必须是连续的,并有一个与之相匹配的数组SocketConnectHost<n>

正整数

-

SocketConnectHost<n>

一组备用Socket服务主机,用于连接会话的故障转移,n是正整数。SocketConnectHost1, SocketConnectHost2...  必须是连续的,并有一个与之相匹配的数组SocketConnectPort<n>

x.x.x.x格式IP地址或域名

-

SocketNodelay

连接是否禁用Nagle算法。在[DEFAULT]配置节点定义。

Y

Y

N

注:Nagle算法的目的是避免TCP发送大量的小数据包。TCP在接收到前一个小段的ACK消息之前,一直保存小数据包。然而Nagle算法和TCP的延迟确认策略间的交互会因一段暂时性的“死锁”而使应用程序产生严重的性能下降。

2) acceptor

设置

描述

有效值

默认

SocketAcceptPort

监听接入连接Socket端口。仅用于acceptor

正整数,有效的、开放的套接字端口

-

SocketAcceptHost

监听接入连接的Socket服务的主机。如果不提供,acceptor将监听所有网络端口(0.0.0.0)

有效的x.x.x.x格式IP地址

0.0.0.0

SocketNodelay

连接是否禁用Nagle算法。在[DEFAULT]配置节点定义。

Y

Y

N

3) Storage

设置

描述

有效值

默认

PersistMessages

如果设置为N,被不会保存消息。这样将迫使quickfix总是发送GapFills,而不是重新发送消息。如果你知道你永远不需要重新发送消息,使用此配置。有用的市场数据流。

Y

Y

N

4) File  Storage

设置

描述

有效值

默认

FileStorePath

存储序列号和消息的文件目录。

有效的文件存储目录,必须有写入权限。

-

5) Logging

设置

描述

有效值

默认

FileLogPath

存储日志的目录。

有效的文件存储目录,必须有写入权限。

-

6) 配置文件的样例

(1) Initiator 配置文件的样例

只能用一个[DEFAULT]节点,可以有多个[SESSION]节点,多个[SESSION]节点是定义多个会话。

#定义会话的默认配置(default节点,对于全部会话有效,当然允许 SESSIION节点重写)
[DEFAULT]
FileStorePath=store
FileLogPath=log
ConnectionType=initiator
ReconnectInterval=60
SenderCompID=TW
 
# session定义
[SESSION]
# FileStorePath,FileLogPath,ConnectionType, 
#    ReconnectInterval and SenderCompID 等配置延用 default的配置
BeginString=FIX.4.1
TargetCompID=ARCA
StartTime=12:30:00
EndTime=23:30:00
HeartBtInt=20
SocketConnectPort=9823
SocketConnectHost=123.123.123.123
DataDictionary=somewhere/FIX41.xml
 
[SESSION]
BeginString=FIX.4.0
TargetCompID=ISLD
StartTime=12:00:00
EndTime=23:00:00
HeartBtInt=30
SocketConnectPort=8323
SocketConnectHost=23.23.23.23
DataDictionary=somewhere/FIX40.xml
 
[SESSION]
BeginString=FIX.4.2
TargetCompID=INCA
StartTime=12:30:00
EndTime=21:30:00
# 自定义ReconnectInterval时间间隔值,不用default配置节点的配置,仅本会话有效
ReconnectInterval=30
HeartBtInt=30
SocketConnectPort=6523
SocketConnectHost=3.3.3.3
# (可选)连接端口及连接服务主机列表, 用于故障恢复时自动切换
SocketConnectPort1=8392
SocketConnectHost1=8.8.8.8
SocketConnectPort2=2932
SocketConnectHost2=12.12.12.12
DataDictionary=somewhere/FIX42.xml

(2)      Acceptor 配置文件的样例

# 定义会话的默认配置(default节点)
[DEFAULT]
FileStorePath=store
FileLogPath=log
ConnectionType=acceptor
ReconnectInterval=60
SenderCompID=ARCA
 
# session definition
[SESSION]
# FileStorePath,FileLogPath,ConnectionType, 
#    ReconnectInterval and SenderCompID 等配置延用 default的配置
BeginString=FIX.4.1
TargetCompID=TW
StartTime=12:30:00
EndTime=23:30:00
HeartBtInt=20
SocketAcceptPort=9823
DataDictionary=somewhere/FIX41.xml
 
[SESSION]
BeginString=FIX.4.0
TargetCompID=TW
StartTime=12:00:00
EndTime=23:00:00
HeartBtInt=30
SocketAcceptPort=8323
DataDictionary=somewhere/FIX40.xml
 
[SESSION]
BeginString=FIX.4.2
TargetCompID=TW
StartTime=12:30:00
EndTime=21:30:00
#自定义ReconnectInterval时间间隔值,不用default配置节点的配置,仅本会话有效
ReconnectInterval=30
HeartBtInt=30
SocketAcceptPort=6523
# (可选) 仅监听指定主机的连接请求
SocketAcceptHost=127.0.0.1
DataDictionary=somewhere/FIX42.xml
SESSION]
BeginString=FIX.4.2
TargetCompID=TW
StartTime=12:30:00
EndTime=21:30:00
#自定义ReconnectInterval时间间隔值,不用default配置节点的配置,仅本会话有效
ReconnectInterval=30
HeartBtInt=30
SocketAcceptPort=6523
# (可选) 仅监听指定主机的连接请求
SocketAcceptHost=127.0.0.1
DataDictionary=somewhere/FIX42.xml

QuickFIX/N入门:(三)如何配置QuickFIX/N的更多相关文章

  1. SpringBoot入门 (三) 日志配置

    上一篇博文记录了再springboot项目中读取属性文件中配置的属性,本文学习在springboot项目中记录日志. 日志记录在项目中是很常见的一个功能了,对排查问题有很大帮助,也可以做分类分析及统计 ...

  2. springboot 入门三- 读取配置信息二(读取属性文件方式)

    在上篇文章中简单介绍自带读取方式.springboot提供多种方式来读取 一.@ConfigurationProperties(value="my") 支持更灵活的绑定及元数据的支 ...

  3. Hadoop入门进阶步步高(三)-配置Hadoop

    三.配置Hadoop 1.设置$HADOOP_HOME/conf/hadoop-env.sh 这个文件里设置的是Hadoop运行时须要的环境变量,在1.2.1版中共同拥有19个环境变量.例如以下:   ...

  4. 【原创】NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战

    前言 本文将演示一个iOS客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo.服务端将分别用MINA2和Netty4进行实现,而通信时服务端你只需选其一就行了.同 ...

  5. Debian 入门安装与配置2

    Debian 入门安装与配置2 1. C/C++开发必装软件 atp-get install gcc    这个不用说,用来编译C程序 apt-get install g++ 用来编译C++程序 ap ...

  6. 微服务(入门三):netcore ocelot api网关结合consul服务发现

    简介 api网关是提供给外部调用的统一入口,类似于dns,所有的请求统一先到api网关,由api网关进行指定内网链接. ocelot是基于netcore开发的开源API网关项目,功能强大,使用方便,它 ...

  7. git入门三(远程、标签)

    git 入门三 (远程.标签)     分布式版本控制管理系统本地仓库和中心服务器仓库数据是本地的镜像仓库,中心服务器数据仓库的是为了多用户数据合并和获取同步的中心,多人协作需要管理这些远程仓库,以便 ...

  8. redis入门(三)

    目录 redis入门(三) 目录 前言 事务 原理 Lua脚本 安装 脚本命令 集群搭建工具 redis-trib.rb redis官方集群搭建 集群横向扩展 故障转移 redis管理 参考文档 re ...

  9. Jmeter Web 性能测试入门 (三):Jmeter 常用组件说明

    线程组:用来设置并发的数量和模式.是用来模拟用户并发的组件.JMeter 的每个任务都是用线程来处理的. 线程数:要并发的请求数量. Ramp-Up Period: 在多次时间内把这些并发的请求发送完 ...

随机推荐

  1. 将数据导入PostGIS

    #!/usr/bin/env python # -*- coding: utf-8 -*- import subprocess # database options db_schema = " ...

  2. 转-Nmap扫描原理与用法

    1     Nmap介绍 操作系统与设备类型等信息. Nmap的优点: 1.      灵活.支持数十种不同的扫描方式,支持多种目标对象的扫描. 2.      强大.Nmap可以用于扫描互联网上大规 ...

  3. Wifite.py 修正版脚本代码

    Kali2.0系统自带的WiFite脚本代码中有几行错误,以下是修正后的代码: #!/usr/bin/python # -*- coding: utf-8 -*- """ ...

  4. 【Openlayers3】在地图上添加highcharts图表

    今天试用了一下ol3,效果很是不错! ol3中有个ol.Overlay,使用这个类我们可以在地图中添加各种html要素. 下面我们在地图中添加一个饼图 html中添加一个div容器: <div ...

  5. 【转载】安卓APP架构

    注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历 ...

  6. 单独编译Android系统模块并替换进系统

    例如,我修改了frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java文件,进入frame ...

  7. 一起来学习Android自定义控件1

    概述 Android已经为我们提供了大量的View供我们使用,但是可能有时候这些组件不能满足我们的需求,这时候就需要自定义控件了.自定义控件对于初学者总是感觉是一种复杂的技术.因为里面涉及到的知识点会 ...

  8. JQuery制作简单的网页导航特效

    使用JQuery中hover()方法,使其根据鼠标的移动简单的改变背景颜色; hover();用于模拟鼠标指针悬停事件,当鼠标指针移动到元素上时,会触发指定的第一个函数,当鼠标指针移除这个元素时,会触 ...

  9. 示例详解:UIScrollview 与 Autolayout 的那点事

    前言 自从写了介绍Masonry那篇文章以后 就一直有人对UIScrollView的那个例子不是很理解 UIView *container = [UIView new]; [scrollView ad ...

  10. iOS 导航栏实现总结

    目标: 在UI界面中实现 整体效果的导航栏, 比如1 首页无导航条,次页有导航条, 2 导航条中不包含下方不包含黑边 3 导航条包含多个筛选项 等等 问题: 用系统带的NavigateBar 来实现时 ...