蒙戈
从这个资源我明白为什么 mongo 不是A(Highly Available)基于下面的陈述
MongoDB 支持“单主”模型。这意味着您有一个主节点和许多从节点。如果 master 宕机,其中一个 slave 会被选为 master。此过程会自动发生,但需要时间,通常为 10-40 秒。在这个新的leader选举期间,你的副本集宕机了,无法写入
是否出于同样的原因,据说 Mongo 是Consistent(因为写入没有发生,所以返回系统中的最新数据)而不是Available(不可用于写入)?
直到重新选举发生并且写操作处于挂起状态,从机返回是否可以执行读操作?选择 master 后,用户是否再次重新启动写入操作?
但我从另一个角度不明白为什么 Mongo 是highly consistent
如上所述mongodb 在 CAP 定理中的立场?,
Mongo 是
consistent默认情况下所有读取都转到主服务器的情况。
但事实并非如此。如果在主/从模式下,所有读取都将转到主服务器,那么从服务器有什么用?它进一步说 If you optionally enable reading from the secondaries then MongoDB becomes eventually consistent where it's possible to read out-of-date results.这意味着 mongo 可能与主/从不一致(前提是我在返回之前没有配置对所有节点的写入)。如果所有读取和写入都进行主要操作,那么说 mongo 是一致的对我来说是没有意义的。在这种情况下,每个其他数据库(如 cassandra)也将是一致的。不是吗?
Cassandra
从这个资源 我明白为什么 CassandraA(Highly Available )基于下面的陈述 …
浏览HTTP 响应代码.. 并了解这些响应代码(rcodes)代表什么
但我不确定在下面的情况下将向客户端/消费者(例如浏览器)发送什么 rcode。我使用 NGINX 作为反向代理,使用 Apache 作为 HTTP 服务器,在 NGINX 后面运行 Web 应用程序(例如应用程序)。
几个场景
应用程序中发生运行时错误,抛出 rcode 为 500(默认情况下运行时错误代码)。我的理解是nginx会继续抛出500而不将其转换为502?
应用程序已关闭或不可用。我的理解是 nginx 在这种情况下会抛出 503 而不是 502 ?
应用程序花费的时间比 nginx 默认连接超时时间还要长。我的理解是nginx在这种情况下会抛出504?
如果以上所有点都正确,不确定 nginx 何时会抛出 502 ?NGINX何时会认为从上游服务器收到的响应为无效响应?
web-applications nginx httpresponse http-response-codes nginx-reverse-proxy
我想构建项目,以便最终jar包含单个jar文件中的所有依赖项(如果不可能包括从jar文件中的依赖项的类)我跟随线程包含Maven的jar中的依赖项但是包含了依赖项我甚至没有在我的pom中提到过.这是我的POM,只有两个依赖项.
我希望在构建final时,它包含它在pom中提到的特定依赖项(在类或jar形式中)
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.myProject</groupId>
<artifactId>utils</artifactId>
<version>1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud) 我在项目中看到了以下方法的用法
JAXBContext jc = JAXBContext.newInstance("org.test.customer");
Run Code Online (Sandbox Code Playgroud)
org.test.customer软件包名称在哪里。
这是否意味着我们可以编组所属的班级org.test.customer?
我的理解是基于 http://docs.oracle.com/javaee/5/api/javax/xml/bind/JAXBContext.html#newInstance(java.lang.String)
使用 oracle/JPA Hibernate。我以下面的方式导入了在学生表下具有值的模式。这是例子
100
85
80
70
1
Run Code Online (Sandbox Code Playgroud)
我有以下代码:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
long id;
Run Code Online (Sandbox Code Playgroud)
现在,当插入新学生时,它不会插入最大值,即 101 (max + 1)。但是在两者之间插入一些可用的值,例如 90。我不确定它怎么可能?
Hibernate 是否在内部创建一些数据库序列并使用然后使用最后创建的值加 1
我用的是oracle 12G
\n\n当我@F:\\update.sql从 sql plus 运行时,它显示重音字符\xc3\xa9运行时,当我从 sqlplus 或 sql Developer 检索时,它会将重音字符显示为垃圾字符
当从 sql plus 运行单个语句时。现在,如果我从 sqlplus 检索它,它会显示正确的字符,但是当我从 sqldeveloper 检索它时,它再次显示垃圾字符。
\n\nupdate.sql内容是这样的
\n\nupdate employee set name =\'\xc3\xa9\' where id= 1;\nRun Code Online (Sandbox Code Playgroud)\n\n我想要的是当我运行 @F:\\update.sql 时,它应该以正确的格式插入/更新/检索它,无论它是来自 sqlplus 还是任何其他工具?
\n\n信息:- 当我跑步时
\n\n SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE \'%CHARACTERSET%\' \nRun Code Online (Sandbox Code Playgroud)\n\n我得到以下信息
\n\nPARAMETER VALUE\n------------------------------ ----------------------------------------\nNLS_CHARACTERSET WE8MSWIN1252\nNLS_NCHAR_CHARACTERSET AL16UTF16\nRun Code Online (Sandbox Code Playgroud)\n\n当我@.[%NLS_LANG%]从命令提示符运行时我看到
SP2-0310: unable to open file ".[AMERICAN_AMERICA.WE8MSWIN1252]"\nRun Code Online (Sandbox Code Playgroud)\n 我知道在Mongo中,我们可以有一个主机和多个从机,其中主机将用于写操作,而从机将用于读取操作。假设M1,M2,M3是以M1作为主节点的节点
但是我读到Cassandra据说是一种无大师模式。据说每个节点都是主节点。我没有得到什么意思?
假设M1,M2,M3是Mongo中以M1作为主节点的节点,而M2,M3是Mongo中的从节点,我相信写入将始终进入M1,而读取将始终进入M2,M3
说C1,C2,C3是Cassandra中的节点,在这里我相信写入和读取请求可以到达任何节点。这就是为什么它被称为无主模型。
在我的新公司中,这是我们的 OAuth 流程
现在我计划将其转移到基于 JWT 的身份验证。根据我对不同教程的理解,JWT 令牌本身包含可以在没有任何存储(缓存或数据库)的情况下进行验证的签名。我的问题是关于到期时间增量的处理。由于每次用户访问站点时我都需要增加会话时间,这意味着我需要生成新的 JWT 令牌并使前一个令牌过期。生成新的 JWT 令牌很容易,不确定如何使现有的 JWT 令牌过期?
我可以将包含 user_id 和最新 JWT 令牌的地图保存在缓存中。其余代币将被视为无效。但这种基于缓存的方法违背了 JWT 令牌的目的,即不应有任何存储需求。
以下是ActiveMQ HelloWorld的代码片段, 用于使用ActiveMQ创建队列
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost");
// Create a Connection
Connection connection = connectionFactory.createConnection();
connection.start();
// Create a Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination (Topic or Queue)
Destination destination = session.createQueue("TEST.FOO");
Run Code Online (Sandbox Code Playgroud)
此工具适用于客户端需要动态操作队列标识的罕见情况
看起来开发人员不应该使用createQueue创建队列.如果是,开发人员应该如何创建队列?他应该用ui还是其他方式创造而不是用编程方式来做?
然后它进一步说
此方法不适用于创建物理队列.队列的物理创建是一项管理任务,不能由JMS API启动.
我没有得到上述声明的意思?根据我的理解,开发人员应该手动编写队列.通过web ui或命令提示符.createQueue方法只返回与手动创建的队列关联的对象?
大多数文章描述了Kafka在读/写吞吐量方面比ActiveMQ等其他消息代理(MB)更好。每位矿工在偏移的帮助下理解读/写可以使其更快。但是我不清楚偏移量如何使它更快?
在阅读了Kafka架构之后,基于以下几点,我有了一些了解,但不清楚是什么使Kafka可扩展和高吞吐量:-
大概有了偏移量,客户端就知道需要读取的确切消息,这可能是使其具有较高性能的因素之一。
在其他MB的情况下,经纪人需要在消费者之间进行协调,以便仅将消息传递给消费者。但这仅适用于队列,而不适用于主题。然后,是什么使Kafka主题比其他MB主题更快。
Kafka提供分区以实现可伸缩性,但其他消息代理(MB)(例如ActiveMQ)也提供群集。那么Kafka如何适合大数据/高负载?
在其他MB中,我们可以有监听器。因此,一旦收到消息,代理将传递消息,但是如果是Kafka,我们需要进行轮询,这意味着代理/客户端双方都有更多负载?