提交 4e6b9311 编写于 作者: W wizardforcel

2020-06-08 16:44:51

上级 4b82e512
......@@ -4,7 +4,7 @@
在我们工作的组织中,朋友经常不允许甚至访问必要的开发人员工具,例如本地数据库安装。 这也可能是由于相当正当的原因(有时似乎只是荒谬的)。 在此 **Hiberate 内存数据库**教程中,我提供了一个无需安装任何数据库即可测试您的 Hiberate 代码的示例。
这可以帮助您编写应用程序的单元测试用例,因为某些架构师将数据库访问视为依赖。
这可以帮助您编写应用的单元测试用例,因为某些架构师将数据库访问视为依赖。
## 1\. 内存数据库实现
......
......@@ -85,7 +85,7 @@ module.service('DemoService', function() {
});
```
#### 使用`module.factory('factoryName', function(){})`
#### 使用`module.factory('factoryName', function(){})`
当您使用`module.factory()`创建服务时,作为第二个参数传递的`function()`**返回值**将成为 AngularJS 注册并稍后在需要时注入到其他服务/控制器的服务对象。
......
......@@ -339,7 +339,7 @@ function ajaxSyncRequest(reqURL)
显而易见,如今,ajax 是使网页具有高度交互性和用户友好性的非常流行的技术。 为了简化与 Ajax 相关组件的开发,当今市场上的开发人员可以使用各种框架。 好消息是它们都可以免费使用。
#### 6.1 jQuery 查询
#### 6.1 jQuery
[**jQuery**](https://jquery.com/ "jquery") 可能在其替代品中很受欢迎。 它拥有自己的开发者社区,该社区也非常活跃。 使用 jquery 发送 ajax 请求的示例代码如下:
......
# JavaScript – 相等(`==`)与相同(`===`)运算符
# JavaScript – 相等(`==`)与身份(`===`)运算符
> 原文: [https://howtodoinjava.com/javascript/javascript-equality-vs-identity-operators/](https://howtodoinjava.com/javascript/javascript-equality-vs-identity-operators/)
如果您使用过 JavaScript,那么您一定已经注意到这两个运算符可以比较值。 许多开发人员不了解他们在特定情况下使用的正确版本。 正确的决定是基于对它们实际工作原理的了解。 让我们来了解一下。
请记住,在执行比较时,**相等运算符(`==`)将在继续进行操作之前尝试使数据类型具有相同的**。 另一方面,**身份运算符(`===`)要求两种数据类型相同,作为前提条件**
请记住,在执行比较时,**相等运算符(`==`)将在继续进行操作之前尝试使数据类型相同**。 另一方面,**身份运算符(`===`)要求两种数据类型相同,作为前提条件**
让我们看一个例子。 参见下面的代码:
......
......@@ -30,7 +30,7 @@ console.log(foo); //I am GLOBAL foo
```
#### 在任何函数中定义的变量 - 无需使用“`var`”关键字
#### 在任何函数中定义的变量 - 使用“`var`”关键字
```java
//'foo' is function local variable
......
......@@ -18,7 +18,7 @@ Table of Contents
```
## 1\. Jasmine 安装程序配置
## 1\. Jasmine 起步配置
首先[下载 Jasmine 框架](https://github.com/jasmine/jasmine/releases)并将其解压缩到您的项目文件夹中。 我建议在应用中可能已经存在的`/js``/javascript`文件夹下创建一个单独的文件夹`/jasmine`
......
# JavaScript 日志 – JSON 中的掩码敏感信息
# JavaScript 日志 – 在 JSON 中屏蔽敏感信息
> 原文: [https://howtodoinjava.com/javascript/mask-sensitive-info-json-logs/](https://howtodoinjava.com/javascript/mask-sensitive-info-json-logs/)
......
......@@ -6,7 +6,7 @@
![Android](img/a0863406fd61a3fc5f02c890d258b841.png)
## Android 应用程式
## Android 应用
用户可以从 [Google Play 商店](https://play.google.com/store)安装 Android 应用,也可以从互联网上的任何远程位置(甚至也可以从本地系统)将其下载到设备上。 该应用**应该具有一些用户界面**,并且可能还有一些其他代码旨在在该应用的后台工作。 在这里,我假设您对 Android 设备有一定的动手经验,因此您熟悉诸如 HOME 和 BACK 之类的按钮,内置设置,主屏幕和启动器的概念,等等。 如果您从未使用过 Android 设备,我强烈建议您购买一台并使用该设备和已安装在设备上的应用/或从应用商店下载的应用。 这将帮助您了解经过如此艰苦工作后将要构建的内容。
......
......@@ -34,7 +34,7 @@
![Filled New Android Application Screen - Wizard One](img/54c34eb85e41a7068aaea604c63c3cff.png)
填写好的新 Android 应用程序屏幕 – 向导一
填写好的新 Android 应用屏幕 – 向导一
......@@ -42,7 +42,7 @@
![Blank New Android Application Screen - Wizard Two](img/92422bd5e7dd6e995aeee5d4f9576fe5.png)
空白的新 Android 应用程序屏幕 – 向导二
空白的新 Android 应用屏幕 – 向导二
......
......@@ -53,7 +53,7 @@ MapReduce 步骤输出
没有归约器的应用程序称为“只有映射的作业”,当不需要合并映射任务的结果集时,它会很有用。
没有归约器的应用称为“只有映射的作业”,当不需要合并映射任务的结果集时,它会很有用。
## 用 Java 编写 MapReduce 应用
......@@ -98,7 +98,7 @@ MapReduce 步骤输出
`TaskTracker`是从属守护程序进程,它执行`JobTracker`分配的任务。 `TaskTracker`定期将心跳消息发送到`JobTracker`,以通知有关可用插槽的信息,并将有关任务的状态发送给`JobTracker`,并检查是否必须执行任何任务。
## 投机执行
## 择时执行
MapReduce 作业分为多个映射器和归约器流程以及一些中间任务,因此一个作业可以产生数百或数千个任务,并且某些任务或节点可能需要很长时间才能完成任务。 Hadoop 监视和检测任务何时运行得比预期的慢,并且如果该节点的执行历史较慢,则它将在另一个节点中启动相同的任务作为备份,这称为推测性执行任务。 Hadoop 不会尝试修复或诊断节点或进程,因为该进程不会出错,但是速度很慢,并且由于硬件降级,软件配置错误,网络拥塞等原因会导致速度变慢。
......
......@@ -87,7 +87,7 @@ HDFS 是 Hadoop 的文件系统组件。 您可以可视化普通文件系统(
租约期限受软限制和硬限制的约束。 在软限制到期之前,编写者可以确定对该文件的独占访问权限。 如果软限制到期并且客户端无法关闭文件或续订租约,则另一个客户端可以抢占该租约。 如果硬限制到期后(一小时)并且客户端未能续订租约,则 HDFS 会假定客户端已退出,并将代表编写者自动关闭文件并恢复租约。
编写者的租约不会阻止其他客户读取文件; 一个文件可能有许多并发读取器。 将数据写入 HDFS 文件后,HDFS 不提供任何保证,除非关闭文件,否则新读取器可以看到该数据。 如果用户应用程序需要可见性保证,则可以显式调用“`hflush`”操作。
编写者的租约不会阻止其他客户读取文件; 一个文件可能有许多并发读取器。 将数据写入 HDFS 文件后,HDFS 不提供任何保证,除非关闭文件,否则新读取器可以看到该数据。 如果用户应用需要可见性保证,则可以显式调用“`hflush`”操作。
数据以管道方式写入,如下所示。
......@@ -122,7 +122,7 @@ HDFS 块放置策略未考虑数据节点磁盘空间利用率。 将新节点
平衡器通过最小化机架间数据复制来优化平衡过程。 如果平衡器确定需要将副本 A 移动到其他机架,并且目标机架恰好具有相同块的副本 B,则将从副本 B 复制数据,而不是副本 A。
#### 区块扫描
#### 区块扫描
每个数据节点运行一个块扫描器,该扫描器定期**扫描其块副本并验证存储的校验和与块数据**相匹配。 另外,如果客户端读取了完整的块并且校验和验证成功,它将通知数据节点。 数据节点将其视为副本的验证。
......
......@@ -2,9 +2,9 @@
> 原文: [https://howtodoinjava.com/hadoop/brewers-cap-theorem-in-simple-words/](https://howtodoinjava.com/hadoop/brewers-cap-theorem-in-simple-words/)
当您开始讨论分布式架构时,很可能会遇到 **CAP 理论**(或 Brewer 定理)。 CAP 代表一致性,可用性和分区容忍度。 它希望系统设计师在最终设计中在以上三个竞争保证之间做出选择。 据说不可能在系统中实现全部三项,并且您必须在系统的三项保证中最多选择两项。
当您开始讨论分布式架构时,很可能会遇到 **CAP 理论**(或 Brewer 定理)。 CAP 代表一致性,可用性和分区容错性。 它希望系统设计师在最终设计中在以上三个竞争保证之间做出选择。 据说不可能在系统中实现全部三项,并且您必须在系统的三项保证中最多选择两项。
好。 定义似乎简单快捷。 可是等等 !! 您所说的一致性,可用性和分区容忍度是什么意思? 让我们在分布式计算环境中定义这些术语。
好。 定义似乎简单快捷。 可是等等 !! 您所说的一致性,可用性和分区容错性是什么意思? 让我们在分布式计算环境中定义这些术语。
1. #### 一致性
......@@ -16,13 +16,13 @@
可用性意味着,**无论群集**内部发生什么,您都应该能够检索存储在分布式系统中的数据。 如果发出请求,则必须从系统得到响应; 即使集群中的一个节点(或多个节点)发生故障。
3. #### 分区容
3. #### 分区容错性
分区容意味着即使两个节点(两个节点都在上,但无法通信)之间存在“分区”(通信中断),群集(作为一个整体)仍可以继续运行。
分区容错性意味着即使两个节点(两个节点都在上,但无法通信)之间存在“分区”(通信中断),群集(作为一个整体)仍可以继续运行。
**不允许出现少于总网络故障的一组故障,从而导致系统无法正确响应。**
因此,CAP 定理使您可以选择想要添加到系统中的 3 个保证中的任意两个。 您不能保证单个分布式系统中的全部 3 个,例如,为了获得可用性和分区容忍度,您必须放弃一致性。
因此,CAP 定理使您可以选择想要添加到系统中的 3 个保证中的任意两个。 您不能保证单个分布式系统中的全部 3 个,例如,为了获得可用性和分区容错性,您必须放弃一致性。
## CAP 定理例子
......@@ -32,19 +32,19 @@
我们将尝试根据这些事实/假设来设计我们的系统。
#### CP(一致性/分区容)系统
#### CP(一致性/分区容错性)系统
在分布式系统中,在读取数据时,一致性是由一种投票机制决定的,在该机制中,所有拥有数据副本的节点都同意他们拥有所请求数据的“相同副本”。 现在,假设我们请求的数据存在于两个节点 N1 和 N2 中。 客户端尝试读取数据; 而且我们的 CP 系统也可以容忍分区,因此发生了预期的网络故障,并且将 N2 检测为宕机。 现在,系统无法确定 N1 的数据副本是否为最新; 它也可能是陈旧的。 因此,系统决定将错误事件发送给客户端。 在这里,系统选择了数据一致性而不是数据可用性。
同样,如果复制因子为 2,则在写入数据时,系统可能会拒绝写入请求,直到找到两个运行状况良好的节点以一致的方式完全写入数据为止。
#### AP(可用性/分区容)系统
#### AP(可用性/分区容错性)系统
如果在上述情况下系统而不是发送错误(如果 N2 处于关闭状态)怎么办? 它发送从 N1 接收的数据。 客户端得到了数据,但是过去存储在系统中的是最新数据副本吗? 你不能决定。 您选择可用性而不是一致性。 这些是 AP 系统。
#### CA(一致性/可用性)系统
在分布式环境中,我们无法避免 CAP 的“P”。 因此,我们必须在 CP 或 AP 系统之间进行选择。 如果我们希望拥有一个一致且可用的系统,那么我们就必须忽略分区容忍度,只有在非分布式系统(例如 oracle 和 SQL Server)中才有可能。
在分布式环境中,我们无法避免 CAP 的“P”。 因此,我们必须在 CP 或 AP 系统之间进行选择。 如果我们希望拥有一个一致且可用的系统,那么我们就必须忽略分区容错性,只有在非分布式系统(例如 oracle 和 SQL Server)中才有可能。
![CAP Theorem Example](img/cb251edc6da6da3f1052f111285eb8f0.png)
......
# Java Cloud 开发简介和工具
# Java 开发简介和工具
> 原文: [https://howtodoinjava.com/cloud/java-cloud-development-introduction-and-tools/](https://howtodoinjava.com/cloud/java-cloud-development-introduction-and-tools/)
......@@ -114,7 +114,7 @@ PaaS 供应商为应用开发人员提供了开发环境。 在 PaaS 模型中
例如,组织可以将敏感的客户端数据存储在私有云应用的内部,但可以将该应用与作为软件服务在公共云上提供的商业智能应用互连。
## Java Cloud 开发工具
## Java 开发工具
1. #### Oracle Java 云服务
......
......@@ -14,7 +14,7 @@
MongoDB 是**开源文档数据库**,可在一组用作存储节点的可配置系统上提供**高性能,高可用性和自动扩展**
MongoDB 之所以大放异彩,是因为它易于使用,无论开发人员是在跨越数百或数千个节点的大型应用程序中使用它,还是在无需扩展的单服务器应用程序中使用它。
MongoDB 之所以大放异彩,是因为它易于使用,无论开发人员是在跨越数百或数千个节点的大型应用中使用它,还是在无需扩展的单服务器应用中使用它。
如果您还记得在 [**JSON**](https://en.wikipedia.org/wiki/JSON "JSON") 中,我们将信息存储在键值对中,如下所示:
......
# Java MongoDB:在集合示例中插入文档
# Java MongoDB:在集合中插入文档的示例
> 原文: [https://howtodoinjava.com/mongodb/java-mongodb-insert-documents-in-collection-examples/](https://howtodoinjava.com/mongodb/java-mongodb-insert-documents-in-collection-examples/)
......@@ -13,7 +13,7 @@ List of examples in this tutorial
4) Parse JSON to build DBObject and insert into collection
```
## 我们将插入示例文件的示例文件
## 我们将插入集合的示例文档
```java
{
......
......@@ -106,7 +106,7 @@ private static void selectSingleRecordAndFieldByRecordNumber(DBCollection collec
```
## 4\. MongoDB 通过文档 ID 查找
## 4\. MongoDB 通过 ID 查找文档
```java
private static void selectAllRecordByRecordNumber(DBCollection collection)
......@@ -159,7 +159,7 @@ private static void in_Example(DBCollection collection)
```
## 6\. MongoDB 小于或大于子句示例
## 6\. MongoDB 小于或大于子句示例
```java
private static void lessThan_GreaterThan_Example(DBCollection collection)
......@@ -241,7 +241,7 @@ private static void andLogicalComparison_Example(DBCollection collection)
```
## 9\. MongoDb 查找匹配`REGEX`示例的文件
## 9\. MongoDb 查找匹配`REGEX`的文档示例
```java
private static void regex_Example(DBCollection collection) {
......
# 微服务 – 定义,原理和收益
# 微服务 – 定义,原理和好处
> 原文: [https://howtodoinjava.com/microservices/microservices-definition-principles-benefits/](https://howtodoinjava.com/microservices/microservices-definition-principles-benefits/)
......@@ -29,7 +29,7 @@ Table of Contents
通常,**微服务使用广泛采用的轻量协议**(例如 HTTP 和 REST)或消息传递协议(例如 [JMS](https://howtodoinjava.com/jms/jms-java-message-service-tutorial/) 或 AMQP)相互通信。 在特定情况下,它们也可以使用更专业的协议。
## 2\. 微服务原理
## 2\. 微服务原理
现在,让我们研究微服务的“必备”原则。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册