SpringMVC+Angular2.0:批量拷贝打包后的ang app到webapp

 

SpringMVC+Angular2.0:编译时利用Maven来执行npm相关命令

网上有一个maven插件是可以做到的:frontend-maven-plugin ,但在win10+jdk1.8的环境上执行失败,一直报node不是有效的win32位程序,换node x86和x64都不可以。

网上的原因是由于npm是cmd文件,不是exe文件,找工具转成exe后依然失败。

最后还是在exec上找切入点,终于在stackoverflow上找到原因:

The reason why you can’t run it is because it’s not an executable, it’s a batch file or shell script if you’re not on windows.
You can still use maven exec plugin to run it. However to do that you’ll have to feed the batch file npm to cmd
program (or bash or whatever is your favorite shell).

Following is the change that you’ll need to make.

Actual command to feed batch to cmd

Following is the change in the plugin configuration.

 

所以真正可用的pom.xml 配置是:

 

CentOS 7 安装Oracle JDK 1.8

在Oracle收购Sun之后加了一些条款协议,导致以往直接通过url下载失败。
所以在下载时需要做特殊处理,加上同意协议的cookie一起提交:

如果看到

即表示安装成功。

CentOS 7 修改epel扩展源

今天在开发环境安装RabbitMQ时,安装依赖项erlang总是报错,提示依赖包404。源是sohu的,后来改成aliyun的也依旧错误,可能是同步源有问题。在网上找到官方的源,改为官方源:

vi /etc/yum.repos.d/epel.repo
[epel]
name=epel
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-$releasever&arch=$basearch
enabled=1
gpgcheck=0

添加完成后,清除缓存:

yum clean all && yum update

对于默认源的修改:

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo -O CentOS-Base.repo

可以替换为163的源。

还是debian好。。。

ZooKeeper集群搭建

系统基于Debian 8。

首先安装ZooKeeper:

安装之后的环境:

zookeeper配置文件目录:/etc/zookeeper
zookeeper实际安装目录:/usr/share/zookeeper
zookeeper日志目录:/var/log/zookeeper
默认配置数据目录:/disk2/zookeeper

需要注意默认配置的数据目录是不存在的,所以如果启动,会异常并停止。

默认的配置文件zoo.cfg应该包含以下配置项:

假设要配置一个基本的zookeeper集群,3个节点(只能基数,决定投票出主机)。

第一个节点的配置文件zoo.cfg:

第二个节点的配置文件zoo2.cfg:

第三个节点的配置文件zoo3.cfg:

配置完以后,把不存在的dataDir/dataLogDir都创建了。

找到实际安装目录/usr/share/zookeeper/bin,里面有zkEnv.sh,zkServer.sh,分别复制成3份,修改对应内容,配置文件对应刚才创建的3份*.cfg配置路径。

这样启动zkServer.sh,就启动了。

这时候查看zookeeper的日志,会互相连接,3个节点连接后,会选举出主机。

 

自此zookeeper集群搭建完毕,已正常运行。

dubbox搭建参照:

http://blog.csdn.net/u011282930/article/details/51017820

UBER技术栈解析

基础设施和存储
Schemaless(MySQL)用于数据持久化存储
Cassandra满足高可用性和低延迟的需求
Hadoop来存储和分析复杂数据
Redis作缓存和队列
Twemproxy实现了一致性哈希算法,提供了缓存层的扩展性而又没有牺牲缓存命中率

日志
为了支持日志功能,我们使用了好多套Kafka集群
在数据被Kafka淘汰之前会最终归档到Hadoop和Web服务的文件存储。
并在ELK上为搜索和可视化功能创建索引(ELK是Elasticsearch,Logstash和Kibana的缩写)。

App部署
Aurora的长时间运行服务和定时任务
用Mesos的Docker容器

路由和服务发现
HAProxy和Hyperbahn解决服务必须能在我们的复杂网络中与彼此通信
Ringpop、TChannel和Hyperbahn都是要为服务网络增加自动化、智能性和提高性能。
速度和可靠性方面,我们还可以用HTTP之外的SPDY、HTTP/2和TChannel等协议和Thrift或Protobuf等接口定义语言来方便我们演进系统
Ringpop是个一致性哈希层,提供了应用层的协作和自愈功能。
Hyperbahn让服务可以简单可靠的进行相互通信,即使服务是用Mesos动态调度的。

开发与部署
很多内部操作都依赖Phabricator,从代码审查到生成文档,到流程自动化。
用OpenGrok来查找代码。
对于Uber开源的项目,我们直接用GitHub来跟进问题和做代码审查。
云服务提供商的虚拟机测试;
Jenkins用作持续集成
Packer、Vagrant、Boto和Unison组合在一起来打造在虚拟机上进行构建、管理和开发的工具。
用Clusto来做开发的清单管理
用Puppet管理系统配置
用uBlame(git-blame的改进版)来跟踪哪个团队管理着哪种特定服务
用Whober来查询名字、相片、联系方式、组织架构等
用Sphinx自动从存储服务器的信息中构建文档
用OSX开发
生产环境服务器上运行的Linux都是Debian Jessie

开发语言
用Go和Java主要是出于高性能的考虑
Java利用了开源生态系统,并与Hadoop和别的分析工具等结合得非常好
Go对并发的原生支持对许多非常重视高性能的新服务来说也非常合适
Marketplace团队用的是Node.js
用C和C++来写些工具(比如在系统级的高效和快速的代码)

测试
Hailstorm用来做集成测试,在非繁忙时间模拟峰值压力
uDestroy会故意搞坏一些东西,来测试我们对非预期故障的处理
员工都会先使用测试版的App来不断测试新功能,然后才会交到用户手中
我们有个App反馈器,用于记录发布给用户之间遇到的所有问题
每当我们为Uber App生成新版本时,这个功能都会让我们去Phabricator上加一个修复问题的任务

可靠性
用Nagios来做监控告警,绑定到一个告警系统上

创造性地使用数据
用JavaScript(ES5和ES6)和React来构建了数据产品,作为我们的核心工具。
可视化证明了react-map-gl的功能,这是一个由Uber数据可视化团队开发的MapboxGL-js的封装器

地图
地图服务主要是基于Java技术开发的
Gurafu,它通过许多精细的路由选项来提供了许多处理道路地图数据的功能,提高了效率和准确性。
Gurafu前端是µETA,它在原始ETA之上加了个业务逻辑层。Gurafu和µETA都是基于DropWizard框架开发的Web服务。
用Ringpop和Sevnup来实现功能,并在哈希环中有节点发生故障、或者有别的节点成为主键空间的主节点时做对象角色切换。
为全公司的团队构建跨功能工具的工程师们是在Uber里用Cassandra和Go用得最多的,最主要的原因就是速度。Cassandra做横向扩展非常容易,而Go语言的编译超级快。

 

uber技术栈.PDF

原文地址:没有免费用户却飞速发展,Uber技术栈全解析!

咖啡分类与配比

意式浓缩咖啡Espresso
听名字就知道,这是一种口感非常强烈的高浓度咖啡饮品。通常用高温热水借助高压快速通过咖啡粉末萃取而成。这也是咱们平时在咖啡馆里常见的咖啡机的工作原理,因为起源于意大利而得名。

一般“意式浓缩咖啡Espresso”萃取出来,表面会有一层棕色的泡沫成为“咖啡脂”。一般以份为计量,一份大概在25~30ml也就是大家在咖啡店里常听到的Single;而如果客人要求使用Double则表示双倍剂量的“意式浓缩咖啡Espresso”。

 

咖啡兑水系列

美式咖啡Americano
意式浓缩咖啡Espresso(1份)+水(两份)

这是最普通的咖啡饮品,也有人成为“黑咖啡”等等。这里介绍的是以意式浓缩咖啡Espresso调制的美式咖啡,也有使用其它器具萃取的方法,相比意式浓缩咖啡Espresso调制出的美式,咖啡因含量会比较高一些,这主要是受萃取工具原理的影响,以后的介绍中我们会详细介绍。

美式也是我的最爱~几乎每天都会来一杯。口感比意式浓缩咖啡Espresso要柔和很多,夏季也可以通过加冰的方式获得最简单的冰咖啡。如果觉得口感过刺激,也可以通过加牛奶或者糖来综合。

咖啡兑牛奶系列

拿铁Coffee latte
意式浓缩咖啡Espresso(1份)+热牛奶(1.5份)+奶泡(0.5份)

卡布奇诺Cappuccino
意式浓缩咖啡Espresso(1份)+热牛奶(0.5份)+奶泡(1.5份)

摩卡caffe Mocha
意式浓缩咖啡Espresso(1份)+奶泡(2份)+巧克力粉

玛奇朵Espresso Macchiato
意式浓缩咖啡Espresso(1份)+奶泡(0.5份)

 

咖啡兑奶油系列

康宝蓝Espresso con Panna
意式浓缩咖啡Espresso(1份)+淡奶油(0.5份)