再谈数据库隔离

本篇是译文,原文地址

当两个或跟更多的工作单位(它可以是进程、线程、程序或任何可执行体)同时工作,特别是访问或者修改同一个数据,这时,并发问题就发生了。

举个现实中的例子,如果在同一个十字路口两辆车同时行进(非同向),没有停止信号或者交通灯,它们彼此看不到对方,最终它们驶向同一个车道,它们相撞了。

相似的,两个程序更新数据库中的同一行数据,其中一个程序可能就会覆写了另外一个程序的数据(考虑不使用数据库锁这种机制)。

即使两个程序都在单线程环境中可以正确执行,并发问题也会影响结果的正确性。

...More

JDBC 和 MyBatis

JDBC,是一种 SUN 为统一数据库访问而制定的接口规范。数据库厂商只要实现该接口,Java 层就可以通过该接口访问、管理数据库。它们之间,通过 桥接模式 (事物对象和其具体行为、具体特征分离开来,使它们可以各自独立的变化) 实现数据访问。

MyBatis 是 ORM(Object/Relational Mapping,对象-关系映射) 框架。其插入在 JDBC 和应用程序之间完成了对数据库操作的封装,但是同时,由于其支持定制化 SQL。

...More

IoC 容器、Bean 和常用注解

IoC(Inversion of Control) 也被称为 DI (Dependency Injection)。
对象通过构造参数、工厂参数、set方法等,确定了依赖关系,而 IoC 容器在创建这个对象的时候,将自动为这个对象注入其所需要的依赖。这个过程,就是非常基础的控制反转(IoC)。

beans,就是上面所述由 IoC 容器创建并管理的对象。

...More

在 Spring Boot 中使用 Redis 进行缓存

本文是一篇译文,原文地址

系统运行变慢,是一种很普遍的问题。即使代码非常优秀,但是在高负载下,可能也会不堪一击。缓存,是一种快速的、廉价的提升性能以及响应事件的重要方式。

简而言之,缓存是一种性能策略。调用结果被放置在内存中,因此再下次使用时,将不必再重新执行。我们可以看到,如果请求的数据再缓存中(称之为缓存命中),我们将节省很多时间和资源。红色的数据快,代表了一种糟糕的情况,即缓存缺失,这种情况下,就需要加载并重新计算,这也将增加响应时间。

...More

在 Docker 中使用桥接网络

本文是一篇译文,原文地址
在 Docker 中使用的桥接网络是通过软件桥接的方式,允许连接在同一个桥接网络下的容器可以相互访问,同时,隔离没有连接在该桥接网络下的容器。Docker 桥接驱动器自动在宿主设备上安装了协议,因此,不同桥接网络下的容器,无法直接进行相互访问。

桥接网络,适用于通过同一个 Docker 伴随进程宿主的容器之间。不同伴随进程宿主之间,可以通过 OS 层的路由或者通过 overlay network 完成。

当启动 Docker 时,默认桥接网络将会被自动创建。新加进来的容器自动连接到该网络中,除非你指定了不同。当然,你也可以创建用户自定义网络。

...More

Part2 :使用 Java 创建你的第一个区块链[译]

 本篇是该系列的第二篇,你可以在这里找到第一篇。原文链接在此
 在第本篇,我们将

  • 创建一个简单的钱包
  • 在我们的区块链上签发一个交易。

 上面的这些过程,其实就产生了我们自己的加密货币。
 在上一篇文章中,我们有了一个可验证的、基本的区块链。但是,我们的链中仅仅存储了一些无用的信息。今天,我们将把这些无用的信息替换为交易数据。这允许我们可以创建一个简单的加密货币,我们称之为 “NoobCoin”。

...More

Part1 :使用 Java 创建你的第一个区块链[译]

 理解一个新事物,我觉得对于程序员来说,最好的方式就是用尝试用代码着去实现它。当然,区块链并不是一个新事物,2008 年由中本聪提出,至今也有十年了,但是对于我而言,它确实又是新的,这种严重迟到,绝对不是一件好事情。平时没事,还是要多逛逛技术论坛,看看新事物,最起码不会距离这个世界太远。
 回到正题,近来终于找到一篇关于如何使用 Java 创建区块链的入门文章,本意是借此熟练掌握区块链相关概念,原文地址在此,以下是我翻译的内容。
 这个系列的教程,旨在帮助你理解区块链技术的开发。在本教程中,我们将

  • 创建一个非常基本的 区块链
  • 实现一个很简单的 Proof of Work 系统(挖矿)
  • 惊叹这种可行性、可能性

 值得注意的是,这不是一个功能完备的、产品级别的区域链,而是对这些概念实现做了一个验证,以帮助更好的在后续章节中理解区块链。

...More

数字签名及其应用

 家长签名,领导签名,合同签名,这些签名实际上都是在说明一件事:签名人通过签署自己名字的方式,向公众表示他们已经审核过这个文档,并对文档内容负责。
 在计算机领域,也有这样一套签名机制,称之为数字签名,或电子签章。它的作用也是如此:对一段信息进行签署,对这段信息的完整性、正确性负责。最初了解这个概念是在使用 Https 的时候。Android 的打包过程肯定也遇到了,但是并没有过多留意,直到有一天,需要对 apk 进行系统签名。接下来,就讨论下什么是签名,以及,它是怎么应用到 Android 应用中的。

...More

© 2024 YueGS