使用Docker容器部署SpringBoot项目

Docker简介 Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotClouw公司。Docker 自开源后受到广泛的关注和讨论,目前已有多个相关项目,逐断形成了围Docker的生态体系。dotCloud 公司后来也改名为Docker Ine。 Docker是……

阅读全文

Netlify+Hexo实现持续部署最佳实践

Hexo被称为是最佳的静态博客程序之一,然而其繁琐的环境搭建、构建,发布过程,让很多人望之却步,转而使用了传统的WordPress等博客程序,抛开维护成本不说,本着折腾一切的心态,最终研究出了一套完善的自动部署方案。 Hexo特色 超快速度: Node.js 所带来的超快生成速度,让上百个页面在几秒……

阅读全文

Spring5响应式WEB编程-Webflux示例

Spring WebFlux简介 Spring WebFlux是随Spring 5推出的响应式Web框架: (左侧为基于spring-webmvc的技术栈,右侧为基于spring-webflux的技术栈) 服务端技术栈 Spring WebFlux是基于响应式流的,因此可以用来建立异步的、非阻塞的、事件驱动的服务。它采用Re……

阅读全文

使用Mybatis Plus简单实现多租户架构

在进行多租户架构(Multi-tenancy)实现之前,先了解一下相关的定义吧: 什么是多租户 多租户技术或称多重租赁技术,简称SaaS,是一种软件架构技术,是实现如何在多用户环境下(此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。 简单讲:在……

阅读全文

解决Fastjson中ref重复引用问题

解决FastJson中"$ref重复引用"的问题,先来看一个例子吧: public static void main(String[] args) { UserGroup userGroup = new UserGroup().setName("UserGroup"); User user = new User("User"); for (int i = 0; i < 3; i++) { userGroup.addUser(user); } Console.log(JSON.toJSONString(userGroup)); } @Data @AllArgsConstructor static class User { private String name; } @Data @Accessors(chain = true) static class UserGroup { private String name; private List<User> users = Lists.newArrayList(); public UserGroup addUser(User user) { this.getUsers().add(user); return this; } } 输出结果: {"name":"UserGroup","users":[{"name":"User"},{"$ref":"$.users[0]"},{"$ref":"$.users[0]"}]} 上面的现象就是将user对象的引用重复使用造成了……

阅读全文

Postman高级技巧::Pre-Request-Script &Tests-Script

身为一个接口自动化测试工具,具备在运行中的动态行为不足为奇,Postman集成了一个强大的,基于NodeJS的Script引擎,利用它可以为请求以及响应添加一些动态的行为: 1)在发送请求之前,编写Pre-Request-Script,为请求参数进行加密处理、参数化等。 2)接收到请……

阅读全文

MySQL Emoji 表情字符支持

utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常: java.sql.SQLException: Incorrect string value: ‘xF0x9Fx92x94’ for column ‘name’ at row 1 针……

阅读全文

Dubbo自定义Http协议返回值过滤器

公司内部的Dubbo又封装了一层,通过注解直接暴露Service接口,对外提供Http服务,在序列化返回结果时,简单粗暴的将实体的所有非空属性全部序列化出来了,接口的返回体相当庞大,很是浪费资源。 核心实现 使用FastJson的com.alibaba.fastjson.serial……

阅读全文

在SpringBoot中优雅的集成Dubbo

在springboot中集成dubbo示例(非注解),废话少说,直入正题。 pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.8.4</version> <exclusions> <exclusion> <artifactId>spring</artifactId> <groupId>org.springframework</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> springboot-dubbo-example-provider application.yml server: port: 10051 dubbo: registry: address: localhost:2181 dubbo-provider.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name="springboot-dubbo-example-provider"/> <dubbo:registry id="zookeeper" protocol="zookeeper" address="${dubbo.registry.address}"/> <dubbo:protocol name="dubbo" port="30001"/> <dubbo:service interface="com.wuwenze.springbootdubboexampleprovider.service.SayHelloService" ref="sayHelloService" registry="zookeeper"/> <bean id="sayHelloService" class="com.wuwenze.springbootdubboexampleprovider.service.impl.SayHelloServiceImpl"/> </beans> interface package com.wuwenze.springbootdubboexampleprovider.service; /** * @author wwz * @version 1 (2018/10/10) * @since Java7 */……

阅读全文

Kibana中使用的lucene查询语法详解

Kibana是一个分析和可视化平台,可用来搜索、查看、交互存放在Elasticsearch索引里的数据 本文简单概括在搜索框中使用lucene查询语法检索相关的日志数据。 全文搜索 直接输入关键字,将返回所有字段值中包含关键字的文档: 使用双引号包起来作为一个短语搜索精准匹配: "providerId=719" 字段 可以……

阅读全文