Blogs

webpack4 开发环境搭建

npm 初始化项目 yarn init 安装webpack依赖 yarn add webpack webpack-dev-server webpack-cli @webpack-cli/init --dev webpack 初始化 npx webpack-cli init ? Will your application have multiple bundles? Yes ? Type the names you want for your modules (entry files), separated by comma [example: app,vendor] app ? What is the location of "app"? [example: ./src/app] ./src/app ? Which folder will your generated bundles be in? [default: dist]: dist ? Will you be using ES2015?

浏览

kafka 环境搭建

安装 下载kafka curl -L -O https://mirrors.cnnic.cn/apache/kafka/2.0.0/kafka_2.12-2.0.0.tgz 解压 tar -xvf kafka_2.12-2.0.0.tgz -C /usr/local/kafka 配置zookeeper zookeeper安装 配置zookeeper vi config/server.properties 找到zookeeper.connect,并将值修改为zookeeper的地址,如 zookeeper.connect=localhost:2181 启动kafka /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties 查看kafka是否启动 netstat -tunlp|egrep "(2181|9092)" 单机测试 启动两个xshell客户端分别作为生产者和消费者 生产者测试 ./kafka-console-producer.sh --broker-list localhost:9092 --topic test > hello world! 消费者测试 ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning 注意: 早期的kafka版本,消费者参数用的是–zookeeper,填写的值是zookeeper的地址,在我们今天教程中的版本参数应该是 –bootstrap-server,填写的是kafka的broker地址 查看topic ./kafka-topics.sh --list --zookeeper localhost:2181

浏览

zookeeper 集群环境搭建

zookeeper 集群环境安装和搭建 选择自己的安装目录,下载 zookeeper并解压 wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz tar -xvzf zookeeper-3.4.10.tar.gz 重命名 mv zookeeper-3.4.10 zookeeper 配置调整 cd zookeeper/conf mv zoo_sample.cfg zoo.cfg vi zoo.cfg ## 修改以下内容或者新增 dataDir=/usr/local/zookeeper/data dataLogDir=/usr/local/zookeeper/log server.1=host1:8888:9999 server.2=host2:8888:9999 server.3=host3:8888:9999 ## 主机名:用于zookeeper 集群间数据同步传输:用于zookeeper 的选举机制 ------------------------------------------- 创建文件夹 cd zookeeper mkdir data mkdir log 根据dataDir配置myid ## 注意,这里三条服务器不一样 ## 比如我配置的三个server,myid里面写的X就是server.X=ip:8888:9999 中ip所对应的X ## 直接在文件中写对对应的x即可 echo x > myid ## 或者 vi myid 配置完成后,同步给其他节点,并修改配置文件myid中的值 启动服务器 cd zookeeper/bin ./zkServer.sh start & ## 输出:Starting zookeeper .

浏览

Vue CLi 3快速入门

2018年08月13日在开源中国收到了Vue CLi 3.0 正式版的发布,关于它的横空出世,晨在这里简单说一下,很多人在微博都在调侃Vue,说是不是更新太块了,都学不过来,下面是我搜集的几张图, 解释一下,Vue这次并没有发布新版本,而是出了一个简化配置的脚手架,命名为Vue CLi 3,不过调侃小右的也是用尽了各种技能。 好了,言归正传,回归我们今日的正题,快速入门Vue CLi 3,打开官方文档我们都能看到 Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vue-cli -g 或 yarn global remove vue-cli 卸载它。 安装的细节,我们这里不做过多的阐述,具体的可以查看官方文档Vue CLi 3 创建项目 vue create hello-world 刚入门,一直回车就好,🙂 目录结构是啥样子的,让我们看一下 @vue/cli在这次发布中,到底更新了什么呢,首先要说的第一个东西就是简化配置文件,集中配置文件到vue.config.js中,文件在哪呢,木有啊,那是因为@vue/cli做了一些默认的配置。我们可以自己创建一个这样的文件。 vue inspect,是脚手架提供的一个配置检查的服务,并且生成一个你很熟悉的文件 vue inspect > output.js 那么这样,是不是很熟悉呢 是的,这个webpack的一些配置项,那么我们应该怎么书写呢,语法是这样的 // vue.config.js module.exports = { configureWebpack: { plugins: [ new MyAwesomeWebpackPlugin() ] }, chainWebpack: config => { // GraphQL Loader config.

浏览

springBoot系列 - 集成JWT实现接口权限认证

一般来讲,对于RESTful API都会有认证(Authentication)和授权(Authorization)过程,保证API的安全性。 Authentication vs. Authorization Authentication指的是确定这个用户的身份,Authorization是确定该用户拥有什么操作权限。 认证方式一般有三种 Basic Authentication 这种方式是直接将用户名和密码放到Header中,使用Authorization: Basic Zm9vOmJhcg==,使用最简单但是最不安全。 TOKEN认证 这种方式也是再HTTP头中,使用Authorization: Bearer ,使用最广泛的TOKEN是JWT,通过签名过的TOKEN。 OAuth2.0 这种方式安全等级最高,但是也是最复杂的。如果不是大型API平台或者需要给第三方APP使用的,没必要整这么复杂。 一般项目中的RESTful API使用JWT来做认证就足够了。 什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的, 特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息, 以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。 JWT官网:https://jwt.io/ JWT是由三段信息构成的,将这三段信息文本用.链接一起就构成了Jwt字符串。就像这样: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ JWT的构成 第一部分我们称它为头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature)。 header jwt的头部承载两部分信息: 声明类型,这里是jwt 声明加密的算法 通常直接使用 HMAC SHA256 这里的加密算法是单向函数散列算法,常见的有MD5、SHA、HAMC。这里使用基于密钥的Hash算法HMAC生成散列值。 MD5 message-digest algorithm 5 (信息-摘要算法)缩写,广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值 SHA (Secure Hash Algorithm,安全散列算法),数字签名等密码学应用中重要的工具,安全性高于MD5 HMAC (Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。 常用于接口签名验证完整的头部就像下面这样的JSON: { 'typ': 'JWT', 'alg': 'HS256' } 然后将头部进行base64加密(该加密是可以对称解密的),构成了第一部分

浏览

后来的我们

有很多的电影情节,总触动着多数人的心弦,而你我也在相遇相知的路上,越走越远…,或许我,也是一个感性的人,对于爱情,我难免还是有些缓不济急。

浏览

云蒙山一日游

四月的天,遗失着黄昏的疲倦,撒落的却是花开的光阴。最后的日子里,我们的回忆不散。

浏览