Scala调用Matlab(MCR)进行数据拟合并获取结果

背景

硬件设备产生大量传感数据, 需要根据这些原始数据拟合出人能看懂并应用于生活的数据; 公司一直使用Matlab进行数据分析, 本文将介绍如何搭建环境, 并在Akka中调用相关库进行分析.

安装 Matlab

Matlab 编写的文件后缀为m(如: filterF.m), 但可以使用Matlab将其打包生成jar包, 提供给Java生态进行调用.

导出过程很简单, 命令行键入 deploytool → Library Compiler → Java Package → 选择m文件(可以多个) → 填写jar名称, 类名 → Package

如下几点需要特别关注下:

阅读全文 »

开源微信支付SDK-两行代码解决支付

背景

让使用微信支付的朋友最快速度接入微信支付.

核心

两行代码解决微信支付提供的各种服务, 开箱即用, 可扩展性超强(只需根据服务的上下行协议定义协议类后, 放入工厂即可获取调用结果).

最新发布

1
2
3
4
5
<dependency>
<groupId>net.arccode</groupId>
<artifactId>wechat-pay-sdk</artifactId>
<version>1.0.0</version>
</dependency>

架构图

阅读全文 »

FastDFS的Storage Server状态详解

状态列表

1
2
3
4
5
6
7
FDFS_STORAGE_STATUS:INIT      :初始化,尚未得到同步已有数据的源服务器
FDFS_STORAGE_STATUS:WAIT_SYNC :等待同步,已得到同步已有数据的源服务器
FDFS_STORAGE_STATUS:SYNCING :同步中
FDFS_STORAGE_STATUS:DELETED :已删除,该服务器从本组中
FDFS_STORAGE_STATUS:OFFLINE :离线
FDFS_STORAGE_STATUS:ONLINE :在线,尚不能提供服务
FDFS_STORAGE_STATUS:ACTIVE :在线,可以提供服务

查看状态

fdfs_monitor /etc/fdfs/client.conf

问题

无法上传文件, 查看Storage server状态如下:

阅读全文 »

Scala的正确打开姿势--搭建开发环境

背景

工欲善其事, 必先利其器; 笔者习惯将所有用到的东西掌控在自己可控的范围内, 清晰每个流程, 以便发生问题的时候有思路并能快速响应得出解决方案.

比如默认安装的scala和SBT, 执行sbt指令时, 默认会在用户目录下生成.ivy文件, 该文件夹中存储从远程仓库中下载的构件; 笔者不喜欢该方式, 需要控制配置,启动参数和相关仓库地址.

安装

前提条件: 必须安装JDK, 若scala>=2.12.0, 则JDK>=1.8

  • scala 开发包: scala语言的开发包, 类比于JDK
  • SBT: 全称simple build tool, 对于初次接触的同学来说, 其实并不简单; 一种构建工具, 类比于Maven
阅读全文 »

搭建FastDFS集群-二

背景

上一篇 搭建FastDFS集群-一 描述了如何从源码构建FastDFS服务, 并通过脚本进行文件的 上传/下载/删除; 本文将详细描述如何安装nginx扩展模块,并使用http协议下载文件; 同时使用Java Client方式执行文件的 上传/下载/删除/获取文件详情等.

FastDFS 架构

阅读全文 »

搭建FastDFS集群-一

背景

  1. 公司的业务分布部署于不同的物理机器上
  2. 采用nginx做负载均衡将请求转发到合适的机器上
  3. 面对文件上传(例如: 图片, 视频等), 之前的同事使用rsync指令同步各物理机间的文件

rsync存在的缺陷

  1. 同步周期问题: 设置太短, 消耗服务器资源; 设置太长, 用户上传文件后, 有可能不能很快获取到该文件(比如文件上传到了A服务器, 取文件的时候, nginx将该请求转发到B服务器; 而此时, rsync还在循环间隔中)
  2. 高可用问题: 该指令无法做到高可用

我司目前仅仅存储一些小文件, 经过调研, 选择简单实用的FastDFS.

搭建集群

VMware克隆多台实例构建分布式系统的方案制作三台虚拟机M_21(192.168.10.201), M_22(192.168.10.202), M_23(192.168.10.203).

最佳实践: 建议首先将M_21进行配置, 之后使用VMware的克隆功能复制出剩余的两台; 然后对相关配置文件修改IPPort.

阅读全文 »

FastDFS架构剖析

简介

FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。它只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地讲,Google FS以及FastDFS、mogileFS、HDFS、TFS等类Google FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

FastDFS 架构

客户端和Storage server主动连接Tracker server。Storage server主动向Tracker server报告其状态信息,包括磁盘剩余空间、文件同步状况、文件上传下载次数等统计信息。Storage server会连接集群中所有的Tracker server,向他们报告自己的状态。Storage server启动一个单独的线程来完成对一台Tracker server的连接和定时报告。需要说明的是,一个组包含的Storage server不是通过配置文件设定的,而是通过Tracker server获取到的。

阅读全文 »

发布构件至Maven中央库

背景

做了一些开源项目, 可以开箱即用, 为了能让用户快速体验, 最佳方案就是把其构件发布至中央库, 用户按文档导入该依赖, 拷贝文档的测试用例代码, 运行即可看到结果; 为用户调研权衡节省时间.

下文将介绍如何把源码成功发布至Maven中央库的全过程.

样例项目

该项目的项目目录结构, pom.xml相关配置符合发布要求, 且已发布成功, 并会进行不定期更新, 首次发布的同学可参考对比.

注册Sonatype账户

该站点用于提交构件发布的申请及相关问题.

注: 请记住注册的用户名和密码, 在以后会经常用到.

阅读全文 »

VMware克隆多台实例构建分布式系统

背景

开始使用多种分布式系统, 搭建本地开发环境.

环境参数

  • 宿主机操作系统: Windows 7
  • 虚拟化软件: VMware WorkStation 12.1.0
  • 虚拟机操作系统: CentOS 6.5

安装

略…

注: 安装完毕后记得将该实例作为基础实例进行备份, 以后需要添加实例的时候直接克隆该实例即可.

设置静态IP

笔者虚拟机实例网络模式使用桥接模式, 此模式可使实例获得独立IP, 并能与所在网段的其它机器互相通讯.

查看eth0是否启用

1
ifconfig

如果启用了的话, 会显示相关信息;

阅读全文 »

一台电脑上同时使用github和gitlab

使用Git生成github和gitlab各自的钥匙

注: windows的命令行不太好用, 建议用Windows的朋友安装gitbash

ssh钥匙文件默认存储于操作系统当前用户目录的.ssh子目录下

为了生成自命名的钥匙, 切换到.ssh作为当前目录

1
2
$ cd ~
$ cd .ssh

生成github钥匙

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ ssh-keygen -t rsa -C "arccode@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/ZL-arccode/.ssh/id_rsa): github_id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in github_id_rsa.
Your public key has been saved in github_id_rsa.pub.
The key fingerprint is:
SHA256:MV7M1OCoiiIazgV8D52uNxhs9zi840PbT2CfOFDLhYQ arccode@163.com
The key's randomart image is:
+---[RSA 2048]----+
| .. .... |
| E. + +. |
| + = + |
| . = = + |
| j.= C S |
| +** + . |
| +oO= + |
| .ooOi=o |
| .o=B* o. |
+----[SHA256]-----+
阅读全文 »