抽了一点时间吧,把网站从hexo 3.x版本升级到现在最新的版本,升级过程中也遇到了一些问题,主要还是插件版本陈旧导致的,也都一一解决了。同时也把之前几年前的文章和草稿一并发布了。

我捋了一下之前写的东西,相对来说比较散比较杂,主要还是记录一些在工作上遇到的或者使用的一些技术性总结。接下来,我觉得有必要仔细梳理和调整一下后面的文章写作方向。

结合到近期的研究方向和兴趣,可能从如下几个方向深入来写:

  1. AI相关的新闻、观察、心得、学习笔记,以及last but not the least: Harness Engineering
  2. Java和JVM相关
  3. 领域建模分析,比如基于DDD的分析、服务架构设计
  4. 软件工程
  5. 分布式计算
阅读全文 »

先分享一篇文章,这是我在几年前阅读过的文章,原文在elthain.com网站上。后被网友在v2ex网站上分享。大概的故事是这样的:

一行代码引发的惨案

2011 年,Google 推出「 Panda 」机制动摇了很多老的 SEO 手段,digg 流量被腰斩。推出 DiggV4 作战计划。经过紧张的开发发布,不过访客页面没问题,已登录用户打不开 MyNews 页面。开发不得不用临时手段把登录用户的默认页面改成 TopNews。MyNews 只能通过不断重启进程才能短暂修复。初期以为是 cassandra 的缓存击穿了 memcache,后来加紧用 redis 重写了,还是得每4个小时重启一次进程。

(折腾了一个月之后)

阅读全文 »

The beginning of wisdom in human as well as international affairs was knowing when to stop.

Paul Kennedy, The Rise and Fall of the Great Powers

引言

我在ACM Queue上看到一篇文章《The rise and fall of CORBA》,很有启发,后面抽点时间把对应的文章翻译出来。

在这里,我想抽一点点时间,来简单说一说我了解到的CORBA技术。

众所周知,CORBA技术陡峭的学习曲线、复杂的技术栈而令人生畏。不过在电信行业,OSS和网管软件之间的通信、以及BOSS系统都是通过CORBA接口来完成信令下发和告警上报的。

也是因为这个原因,不管是运营商还是华为,都是CORBA技术做了大量的投资,投入了大量的资源开发相应的系统。

其中,我在2010年到15年几年的时间在华为核心产品线从事的北向接口,就接触到了网管产品中的CORBA技术。所谓北向接口,就是将核心网收集到的关于网络的状态数据,正常的、异常的、告警的、日志类型的、统计类型的所有相关的数据通过电信定义的接口报送到更上层的系统中。同时,也提供对不同类型的设备、网络、协议栈等根据电信协议提供一套抽象的接口,用于上层系统的业务定义、业务发放动作、甚至于设备的控制等等。

下面我简单介绍一下什么是CORBA。

阅读全文 »

说到现代 Web 应用程序开发,不得不提到 MongoDB。如果你是一名全栈程序员,每天都会跟 MERN 打交道,其中 M 指的就是 MongoDB。MongoDB 开源社区版为大量的 Web 应用程序提供支持。从 2007 年开始,MongoDB 走过了漫长的道路。它是 MongoDB 公司的主要产品,这家公司市值已经超过 100 亿美元。与很多产品一样,在线广告是推动 MongoDB 愿景和发展的关键催化剂。MongoDB 的故事很有趣,在本文中,我将带你一起探索 MongoDB 的发展之旅。

开端:大型数据库想法的萌芽

MongoDB 的故事开始于 2007 年。1995 年,Dwight Merriman 和 Kevin O’Connor 创办了著名的在线广告公司 DoubleClick。不久后,Kevin Ryan 也加入了这个团队 (Dwight 和 Kevin 后来共同创办了 5 家公司——Gilt、10gen、Panther Express、ShopWiki 和 Business Insider)。DoubleClick 很
快就大获成功,几年之内,它的广告流量达到了每秒 40 万条。当时的关系型数据库技术还没有预料到会有如此大规模的流量。配备如此规模的关系数据库需要大量的资金和硬件资源。因此,Dwight(他是当时的 CTO) 和他的团队开发了自定义数据库实现来扩展 DoubleClick,以应对流量的激增。

阅读全文 »

关于成功没有一个确切的公式,但关于失败我可以找到一个:总是尽力取悦所有人。

Herbert Bayard Swope

MongoDB是一款流行的基于文档的开源NoSQL数据库,跨平台、高性能、灵活水平扩展、支持企业级应用。存储格式为JSON格式[1]。MongoDB可以通过云平台MongoDB Atlas使用,也可以通过MongoDB Server使用。同时,MongoDB也提供基于云服务的数据分析平台。本文我们将重点介绍一些关键的概念,帮助理解MongoDB可以做什么,可以解决哪些问题。

为什么要使用MongoDB

MongoDB可以处理海量数据,比较容易上手,也适用于很多的应用场景,比如物联网(IoT)、银行、金融、游戏、电子商务、物流和内容管理。

  • 高性能 、并且易于数据迁移
  • 轻松的水平扩展能力,可以支持海量数据
  • 对开发者友好
  • 可以轻松获取 、通过云服务Atlas或者社区版的MongoDB服务器
  • 支持快速迭代
  • 有活跃的社区 支持
阅读全文 »

什么是H2数据库?

H2数据库[1]的特点:

  • 非常快, 开源,支持 JDBC API
  • 嵌入式和服务器模式; 内存数据库
  • 基于浏览器的 控制台应用程序
  • 占用空间小,jar只有2MB大小

以上只是官网列出的特点。

由于本身是由纯Java。还有跨平台的优势,支持目前常见的大部分平台。

阅读全文 »

什么是NoSQL?

NoSQL(最初表示Non-SQL,后来有人转解为Not only SQL),是对不同于传统的关系数据库(RDBMS)的统称。允许部分资料使用SQL系统存储,而其他资料允许使用NOSQL系统存储。其数据存储可以不需要固定的表格模式以及元数据(metadata),也经常会避免使用SQL的JOIN操作,一般有水平可扩展性的特征。

阅读全文 »

JSON是什么?

JSON,JavaScript Object Notation,最初在2000年左右由JavaScript的设计者Douglas Crockford所定义。2003年才官方正式定名。

JavaScript中的对象类似于一个 关联容器 (比如Map,HashMap),每一个文本键都对应一个值(值的类型可以是数字、字符串、函数、或者另外一个对象)。这种简单的特性使得JavaScript的对象通过文本表达起来异常简单。

阅读全文 »

简介

在本文中,我们将探讨Oracle Java Development Kit和OpenJDK之间的差异并进行比较。

Oracle JDK

Oracle JDK由Oracle公司开发,该公司是Sun许可证,基于Java标准版规范实现。它以二进制产品的形式发布。它支持多种操作系统,如Windows,Linux,Solaris,MacOS等。它支持不同的平台,如Intel 32位和64位架构,ARM架构和SPARC。它完全基于Java编程语言。之后,该许可证宣布将根据GPL(通用公共许可证)许可证发布。Oracle JDK包含许多组件作为库形式的编程工具集合。

阅读全文 »

MongoDB无疑是当前在各个领域中NoSQL优选的文档数据库之一。原因在于部署简单,可扩展性强,原生支持javascript脚本编程。对于使用Spring全家桶的团队来说,是一个很好的选择,可以快速的搭建一个服务出来。如果是用JS或者Typescript语言的话,使用Mongoose的ORM框架结合到express框架,生产力会提高一大截。

稍显不足的是,MongoDB对于中文索引支持的力度不够,对于某些要求强事务的领域应用(比如金融、财务等)略显不足,至少还没有看到有成熟应用的案例。如果有,请告诉我。

另外一个就是,在搭建MongoDB集群的时候,相对来说是比较复杂的。水平扩展虽然很简单,但是做Sharding的时候也需要仔细的考量。

本文简单介绍一下如何在Spring Boot/Spring Cloud程序中使用MongoDB数据库。

阅读全文 »
0%