MENU

Keep It Stupid Simple

永远相信美好的事情即将发生

第一次入坑小米(MI 1)还是大学的时候;第二部安卓机,第一部是充话费送的联想,没用几个月就丢了;记得当时逼格(价格)最高的安卓机就HTC和三星了,没钱全都买不起。刚拿小米手机的时候,感觉溜到飞起、各种给力;不过用了不到一年,各种卡顿重启;只好低价转手了。从此再也没买过小米的产品。

入过了联想、华为、一加的坑;五年过去,随着身边的小米用户越来越多,口碑也还不错,再次入坑小米(MIX 2),拿到手机依然感觉溜到飞起;要求不高一年内不卡成翔、不频繁死机足以。

Read More

Spring Boot 整合 RabbitMQ

Spring Boot整合RabbitMQ是非常容易的,下面将通过一个最简单的例子实现消息的发送和接收;仅引用spring-boot-starter-amqp这个starter即可完成rabbitMQ的整合。

首先,创建一个maven项目,pom.xml加入依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-amqp</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

额外增加pring-boot-starter-web是为了方便调用生产消息。

增加配置文件application.yml,配置RabbitMQ相关信息:

spring:
  rabbitmq:
    host: 66.66.66.66
    port: 5672
    username: wangxuesong
    password: 123456

Read More

震惊!!!它的价格一年翻三倍!

事情是这个样子的,去年12月份打算攒个台式机,预算6k。本着精打细算的原则,配件一个月才买齐;满意得是上了七代i7,不满意的是没钱装显卡了;而最纠结的还是内存,本想着一步到位买4根8G的,又怕内存价格跳水,成了高位接盘;最终先买了两根海盗船的【复仇者LPX DDR4 2400 8GB CL14】,总共花了700块钱;印象中,内存这东西是越来越大而且越来月便宜。

Read More

Spring Boot中health报错问题

今天部署了一个最简单的Spring Boot项目,但是curl localhost:9090/health一直报500;报错信息显示是rabbitmq相关的错误,但是项目中根本没有用到rabbitmq。

{
    "timestamp": 1507777390848,
    "status": 500,
    "error": "Internal Server Error",
    "exception": "java.lang.NoSuchMethodError",
    "message": "com.rabbitmq.client.ConnectionFactory.newConnection(Ljava/util/concurrent/ExecutorService;[Lcom/rabbitmq/client/Address;Ljava/lang/String;)Lcom/rabbitmq/client/Connection;",
    "path": "/health"
}

NoSuchMethodError错误感觉是缺少依赖包;这就奇怪了,明明没用到rabbitmq啊。还是从maven依赖入手,查看关于rabbitmq的依赖mvn dependency:tree | grep rabbitmq

[INFO] |  +- com.rabbitmq:amqp-client:jar:3.5.7:compile
[INFO] |  |  +- com.rabbitmq:http-client:jar:1.1.1.RELEASE:compile

Read More

Elasticsearch入门

Elasticsearch提供了REST API操作接口,使用起来非常方便。由于elasticsearch安装在centos上且只配置了内网访问(elasticsearc最好不要暴露到外网),所有请求使用CURL完成;本文不涉及Elasticsearch集群内容。

基本概念

Elasticsearch中索引(index)类型(type)文档(document)等概念直接看可能比较蒙;和MySQL对照来看会容易理解:

ElasticsearchMySQL
IndexDatabase
TypeTable
DocumentRow
FieldColumn
MapppingSchema

Type会在以后版本中移除,详见:Indices, types, and parent / child: current status and upcoming changes in ElasticsearchIndex看作Table会比较恰当;每个索引最好只创建一个类型。

创建索引

创建索引名称为specs、类型为spec的索引;设置mapping(索引名字必须是小写)。

curl -X PUT 'localhost:9200/specs' -d '
{
  "mappings": {
    "spec": {
      "properties": {
        "name": {
          "type": "text",
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_max_word"
        },
        "factory": {
          "type": "text",
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_max_word"
        }
      }
    }
  }
}'

Read More