Skip to main content
What if you have a ECS server?

当你到手一台服务器后,你会干什么?

Just One?

Yes, One.

Nothing.

But, this is life.

看看我都会做啥吧。

环境

  • 刚刚出炉的阿里云2c2g服务器
  • CentOS 7
  • 默认安全组(22、3389)

安装Nginx(Must For Me, Option For You)

需要的配置

  • 内存: Nginx一个server大概会占12~15M内存,所以你需要自己衡量
  • 磁盘:越大越好啦
  • CPU:取决于连接数,当然是越大越好,1C也是可以的
  • 阿里云安全组打开80端口

MarshioAbout 11 minECSEnvironment setup
Parallel Stream Usage

背景

项目需要对一批数据进行跑批,由于背靠Java,且时间有限,考虑到便利性直接使用了Java自带的stream API。

实现

默认行为

    public static void main(String[] args) {
        // 模拟数据
        var stream = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
         11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 
         21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 
         31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 
         41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 
         51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 
         61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 
         71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 
         81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 
         91, 92, 93, 94, 95, 96, 97, 98, 99, 100);

        // 批处理数据
        stream.parallel().forEach(i -> {
            log.info("{} {} {}", Thread.currentThread().getName(), LocalDateTime.now(), i);
            try {
                // 前置处理
                // ...
                // 业务API Call
                // ...
                // 业务逻辑
                // ...
                // 后置处理
                
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
    }

MarshioAbout 8 minECS
重构

书名: 《Refactoring: Improving the Design of Existing Code,Second Edition》


MarshioLess than 1 minuteECS