0%

搭建 IPsec VPN 服务

概要

我们在开发的时候经常遇见启动服务过多,内存消耗过大,安全问题,等,让我们非常头痛,特别是对Spring Cloud微服务的开发。在这里有同学会说把这些都部署到局域网的服务器上就行了,但如果资源有限的时候,我们对资源的利用率应该有所考虑。

将部分资源部署到云服务器,搭建一个的VPN服务,并隔离外网,这样做能让我们很好的解决上面的问题。

阅读全文 »

Spring Cloud 配置中心 Github SSH验证(二)

概述

在上一章讲解了如何使用Spring Cloud配置中心读取Github SSH的文件后,发现如果将spring.cloud.config.server.git.private-key=配置的值设置为一个环境变量,在JVM:JAVA_OPS是不可行的,在网上找了很多资料国内的解决方案是使用private_key_file,但官方并未提供,最后找到了解决方案,下面将给出干货提供给大家。

注意:前面工作不在叙述,请自行参考,Spring Cloud 配置中心 Github SSH验证(一)

阅读全文 »

Spring Cloud 配置中心 Github SSH验证

概述

Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持,方便部署与运维。

目前有一些用的比较多的开源的配置中心,比如携程的 Apollo、阿里Nacos、百度的 Disconf 等,对比 Spring Cloud Config,这些配置中心功能更加强大。有兴趣的可以拿来试一试。

接下来,我们开始使用Spring Cloud来搭建一个配置中心,并以 github 作为配置存储。除了 git 外,还可以用数据库、svn、本地文件等作为存储。

阅读全文 »

Windows下访问K8S集群中的POD

概述

近期在公司搭建了一个K8s集群,有一个项目使用了spring cloud框架做开发,在部署的时候发现一个问题。所有的微服务打包后运行在集群上,互相是可以通过feign进行访问的,这点没问题。但如果需要在本地调试,发现在集群中部署的应用无法反向访问本地应用,下面是我解决的具体方法。

阅读全文 »

搭建Shadowsocks服务

概念

shadowsocks可以指一种SOCKS5的加密传输协议,也可以指基于这种加密协议的各种数据传输包。

shadowsocks实现科学上网原理?shadowsocks正常工作需要服务器端和客户端两端合作实现,首先,客户端(本机)通过ss(shadowsocks)对正常的访问请求进行SOCK5加密,将加密后的访问请求传输给ss服务器端,服务器端接收到客户端的加密请求后,解密得到原始的访问请求,根据请求内容访问指定的网站(例如Google,YouTube,Facebook,instagram等),得到网站的返回结果后,再利用SOCKS5加密并返回给客户端,客户端通过ss解密后得到正常的访问结果,于是就可以实现你直接访问该网站的“假象”。

为什么选择shadowsocks?不限终端(安卓,苹果,Windows,Mac都可用),流量便宜(服务器500G只要15元),方便(一键脚本,不需要专业知识)。

阅读全文 »

War包二次开发技巧

概述

近期拿到一个war包项目,里面没有认证功能,也没有源码。对于系统安全来说,直接能访问里面的数据,并对数据操作,是相当不安全的。所以想在项目里面增加一个简单的Basic认证功能,并且使用idea工具能够快速热部署开发。

Tomcat模式

使用Tomcat来进行Basic认证控制新增config/tomcat-users.xml内容

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>

<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="test"/>
<user username="root" password="000000" roles="test" />
</tomcat-users>
阅读全文 »

ApiGateway整合Swagger2

概述

最近在项目中尝试使用Spring Cloud.Greenwich版整合Swagger2。发现Swagger并不支持以WebFlux为底层的Gateway,无法集成,运行报错。下面分享我的解决思路,和关键代码。

引入依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

<!-- Swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
阅读全文 »

Kettle

概述

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

产品家族

Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen

  • SPOON 允许你通过图形界面来设计ETL转换过程(Transformation)。

  • PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。

  • CHEF 允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。

  • KITCHEN 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。

阅读全文 »

数据仓库之ETL

概述

ETL,Extraction-Transformation-Loading的缩写,中文名称为数据抽取、转换和加载。
一般随着业务的发展扩张,产线也越来越多,产生的数据也越来越多,这些数据的收集方式、原始数据格式、数据量、存储要求、使用场景等方面有很大的差异。作为数据中心,既要保证数据的准确性,存储的安全性,后续的扩展性,以及数据分析的时效性,这是一个很大的挑战。

名词解释

  • ODS——操作性数据
  • DW——数据仓库
  • DM——数据集市
阅读全文 »

Redis 客户端的选择

概念

  • Jedis:是老牌的Redis的Java实现客户端,提供了比较全面的Redis命令的支持,

  • Redisson:实现了分布式和可扩展的Java数据结构。

  • Lettuce:高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。

阅读全文 »