我想知道在跨数据中心运行Zookeeper时可用的现有方法吗?
我在做一些研究后发现的一种方法是让观察者.这种方法是在主数据中心只有一个有领导者和追随者的集合.并在备份数据中心拥有观察员.当主数据中心崩溃时,我们选择其他数据中心作为新的主数据中心,并手动将观察者转换为领导者/跟随者.
我想提出更好的方法来实现同样的目标.
谢谢
fault-tolerance high-availability distributed-computing apache-zookeeper
我正在使用 log4j-1.2.16.jar 和 apache-log4j-extras-1.2.17.jar。
我想启用在文件名后附加日期的滚动文件。但是显示此错误并且文件未按预期旋转。
我的 log4j.properties 文件看起来像这样。
zookeeper.root.logger=DEBUG, ROLLINGFILE
zookeeper.console.threshold=DEBUG
zookeeper.log.dir=/path/to/logs
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=DEBUG
zookeeper.tracelog.dir=.
zookeeper.tracelog.file=zookeeper_trace.log
log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}
log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}
log4j.appender.ROLLINGFILE.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.ROLLINGFILE.rollingPolicy.fileNamePattern=${zookeeper.log.dir}/app%d{yyyy-MM-dd}.log
log4j.appender.ROLLINGFILE.MaxFileSize=20KB
log4j.appender.ROLLINGFILE.MaxBackupIndex=100000
log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n
Run Code Online (Sandbox Code Playgroud) 我正在尝试真正从c ++ 98迁移到c ++ 11及更高版本。我已经把大部分新东西都包裹在头上了,但是我仍然不确定正确的用法unique_ptr
。
考虑下面的示例,其中类A有一个unique_ptr成员(我以前曾经用过裸指针!)。当用户需要时,可以通过在其他地方(不是类的一部分)调用函数来分配此成员变量。这是正确的用法吗?如果没有,最好的选择是什么?
class A {
private:
unique_ptr<MyType> mt;
public:
void initStuff() {
mt.reset(std::move(StaticFuncSomewhereElese::generateMyType()));
}
};
MyType* StaticFuncSomewhereElese::generateMyType() {
MyType* temp = new MyType(...);
//do stuff to temp (read file or something...)
return temp;
}
Run Code Online (Sandbox Code Playgroud) 我想写一个c ++函数,它将float转换为const char*.在此函数中,传递一个参数以指定输出值应表示的小数位.我已经提出了这个功能,它运行良好.
我想是否有更好的方法来编写这个函数?
static const char* getString(float value, int decimalPlaces)
{
char strValue[sizeof value];
sprintf(strValue, "%.%df", value, decimalPlaces);
return strValue;
}
Run Code Online (Sandbox Code Playgroud)