This_Wei

Come on!

写在前面

近期在 B站 上看到了一些使用 esp8266 开发板制作小东西的视频,有 wifi 杀手、实时显示B站粉丝数、显示天气信息等等,而一块 esp8266 开发板才十几块钱,也就一顿饭钱,于是心痒痒上淘宝买了一块来玩玩,花了两小时下软件和资源类库,花了半小时调通一个 hello world 代码,把其中过程记录一下。

概要

本文主要内容包括购买 ESP8266 开发板,安装与配置开发使用的 Arduino IDE,使用 Arduino 编写一个 hello world 代码,然后烧录到 ESP8266 中,使用 Arduino 查看串口输出结果。

什么是 ESP8266

ESP8266 是 乐鑫信息科技公司 开发的一款 wifi 模块,具有低功耗、高集成度的 wifi 芯片,内封了 8 Mbit 的 Flash,集成了低功耗的 32 位 MCU,带有 16 位精简模式,主频支持 80 MHz 和 160 Mhz,支持 RTOS,支持标准 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。

简单来说就是一个 wifi 模块,可以通过 wifi 联网或提供 wifi 服务,带了一个微处理器,我们可以写入自己的程序,比如联网调取 bilibili 接口获取用户粉丝数量,并通过 LCD 屏显示出来。

阅读全文 »

概述

这篇文章主要在讲述使用 Postman 工具测试 api 接口的操作,从最基础的发送一个 get 请求到自动接口测试,还包含一些 postman 的使用技巧。

Postman 是什么?

Postman 是一个强大且好用的接口测试工具。早期是 Chrome 浏览器的一个插件,后续插件版不再维护,开发成了一个桌面测试工具。
现在, Postman 被设计成 API 开发工具,不仅包含了接口测试功能,还添加了一些接口设计、自动化测试、模拟接口服务、监控、文档生成以及接口发布功能,最新版本的 Postman 还支持团队协作开发使用。
Postman 提供企业版,提供了更加强大的测试功能。

阅读全文 »

概述

这篇文章介绍了文本编辑器 vim 的用法, 以及一些实用插件。

vim 是个啥?

Vim 是一个开源的、高度可配置的文本编辑器, 能够高效的创建、修改多种类型文本。在多数 UNIX 系统和 Apple OS X 中集成了 vi。vi 是 vim 的子集, vim 具有 vi 的所有功能, 且拥有更多的实用特性。

官网: https://www.vim.org/
Github: https://github.com/vim/vim

阅读全文 »

概述

在这篇文章中介绍了 Thymeleaf 模板引擎,以及在 SpringBoot 项目中使用 Thymeleaf 模板引擎渲染页面。

什么是模板引擎

在 MVC 架构中,实行模型(Model)、视图(View)和控制器(Controller)分离,降低代码耦合性,模板引擎就是用来渲染视图展示页面的。
模板引擎将模型(Model) 与预先定义好的页面模板进行解析渲染,往页面中填入数据,最终产生给用户看的视图页面。

数据 + 模板 (模板引擎)> 视图页面

阅读全文 »

概述

这篇文章主要讲解了 markdown 的语法规则、编辑器以及一些使用技巧。

在线测试一下

可以到下面这些在线网站可以在线编辑并实时预览 markdown 语法:

阅读全文 »

概述

本文介绍了在云服务器(Windows Server 2012)上搭建 frp 服务,以及域名 DNS 解析配置,实现内网穿透功能,使用自定义域名访问部署于内网的 web 服务。

背景

开发过微信公众号程序的同学都知道,微信公众号的服务器配置中,需要指定服务器地址,微信平台会往这个地址推送消息。这个地址必须是公网能够访问的,我们在本地开发测试时,就需要一个地址,能够在公网中访问本地运行的程序,内网穿透就是干这个的。以前我使用的是别人的 ngrok ,但有一些问题,比如不能指定 url 前缀,使用自定义的需要交费,再比如别人服务器关了,我就要满世界去找其它的工具了。
frp 是一款开源的用于内网穿透的反向代理工具,支持 tcp、udp 协议,为 http、https 协议提供了额外的能力。

阅读全文 »

概述

本文主要介绍了 什么是 Liquibase,以及在 SpringBoot 项目中集成使用 Liquibase 对数据库表进行管理,包括自动创建数据库表、自动初始化数据、更新表结构。

认识 Liquibase

官网:Liquibase | Database Refactoring | Liquibase: http://www.liquibase.org/
Liquibase 是用于数据库重构、管理、记录变化与回滚的开源工具。
在写代码的时候,我们使用 Git 或 subversion 对代码进行版本控制,在数据库中,我们可以使用 liquibase 对数据库表进行版本控制。

阅读全文 »

本文概述

本文简单介绍了 Elasticsearch 是什么,在 windows 环境下的安装 Elasticsearch,在 SpringBoot 项目中使用 Elasticsearch 对数据进行增删改查操作。

什么是 Elasticsearch?

Elasticsearch(简称 ES) 是一个开源的、高扩展性的分布式全文搜索和分析引擎,能够迅速、近乎实时的对大量数据进行存储、分析、检索,可以满足应用复杂的搜索特性和需求。
官网:https://www.elastic.co/products/elasticsearch

Elasticsearch 的核心是 Lucene ,使用 Java 进行封装,隐藏了 Lucene 的复杂性,提供 Java API 和 RESTful API,方便使用。

阅读全文 »

简述

数据库中表数据量太大时,查询速度变慢,而且在进行数据迁移时不方便。我们可以对数据量较大(超2GB)的表进行分区,以提高查询效率,方便数据维护。文章中示例了按时间对数据库表进行分区,并使用数据库存储过程与事件完成数据库表分区的自动创建与删除。

环境

  • 操作系统: Windows 7

  • 数据库:MySQL 5.7

  • 工具:Navicat for MySQL 10.1.7

阅读全文 »

简介

初次接触到 JVM 调优,在本文中记录了相关的概念、方法与工具使用。

遇到的问题

线上运行的项目,在一次版本更新时配置出错,没有开启数据消费线程,导致 Redis 消息队列中积压了超四百万条数据,修改配置后再运行时,程序自动读取消息队列中数据开始解析,结果发现服务器 cpu 占用率长时间达到 100%,消息队列中不断积压数据,后台管理页面无法访问。

思路

  1. 这台服务器是虚拟机,发现服务器居然是单核 cpu 的(–!),多分配 cpu 应该可以提高程序运行效率;
  2. 项目正常运行时,消息队列消费速度快,不会积压,或是有少量积压也能迅速消费掉,这次由于意外导致消息队列积压数据太多,最终导致程序无法消费,要想办法提高程序吞吐量;
  3. 怀疑消息消费代码效率太低,测试发现在消息积压过多时,消费速度严重下降,可能是线程太多,处理不过来;
  4. 检查代码发现,应用开启后不断的从消息队列拿数据,生成任务对象放到了一个 LinkedBlockingQueue 中,这个 queue 没有指定容量,使用的是最大容量 Integer.MAX_VALUE ,怀疑是放入了太多的数据,把内存占满了;
阅读全文 »
0%