1

Akka-CQRS(16)- gRPC用JWT进行权限管理

前面谈过gRPC的SSL/TLS安全机制,发现设置过程比较复杂:比如证书签名:需要服务端、客户端两头都设置等。想想实际上用JWT会更加便捷,而且更安全和功能强大,因为除JWT的加密签名之外还可以把私密的用户信息放在JWT里加密后在服务端和客户端之间传递。当然,最基本的是通过对JWT的验证机制可以控制 ...

雪川大虫 发布于 2019-07-15 14:55 评论(0)阅读(139)
1

restapi(0)- 平台数据维护,写在前面

在云计算的推动下,软件系统发展趋于平台化。云平台系统一般都是分布式的集群系统,采用大数据技术。在这方面akka提供了比较完整的开发技术支持。我在上一个系列有关CQRS的博客中按照实际应用的要求对akka的一些开发技术进行了介绍。CQRS模式着重操作流程控制,主要涉及交易数据的管理。那么,作为交易数据 ...

雪川大虫 发布于 2019-07-11 12:13 评论(0)阅读(150)
1

Akka-CQRS(15)- Http标准安全解决方案:OAuth2+JWT

上期讨论过OAuth2, 是一种身份认证+资源授权使用模式。通过身份认证后发放授权凭证。用户凭授权凭证调用资源。这个凭证就是一种令牌,基本上是一段没什么意义的加密文,或者理解成密钥也可以。服务方通过这个令牌来获取用户身份信息,也就是说服务端必须维护一个已经获得身份验证的用户信息清单。研究了一下JWT ...

雪川大虫 发布于 2019-07-09 12:19 评论(0)阅读(242)
0

Spark家族:Win10系统下搭建Scala开发环境

一、Scala环境基础 Scala对Java相关的类,接口进行了包装,所以依赖Jvm环境。 二、配置Scala解压版 1)注意路径无空格和中文 2)配置环境变量 添加到path目录 3)检测是否安装 配置成功,没错就是这么简单。 3、配置Idea开发 1)插件安装,就是点点点 2)新建两个maven ...

知了一笑 发布于 2019-07-07 21:22 评论(0)阅读(21)
0

Akka-CQRS(14)- Http标准安全解决方案:OAuth2-资源使用授权

上一篇讨论了SSL/TLS安全连接,主要是一套在通信层面的数据加密解决方案。但我们更需要一套方案来验证客户端。要把不能通过验证的网络请求过滤掉。 OAuth2是一套行业标准的网络资源使用授权协议,也就是为用户提供一种授权凭证,用户凭授权凭证来使用网络资源。申请凭证、然后使用凭证进行网络操作流程如下: ...

雪川大虫 发布于 2019-07-04 14:25 评论(0)阅读(186)
0

Akka-CQRS(13)- SSL/TLS for gRPC and HTTPS:自签名证书产生和使用

到现在,我们已经完成了POS平台和前端的网络集成。不过,还是那句话:平台系统的网络安全是至关重要的。前一篇博客里我们尝试实现了gRPC ssl/tls网络连接,但测试时用的证书如何产生始终没有搞清楚。现在akka-http开发的ws同样面临HTTPS的设置和使用问题。所以,特别抽出这篇博文讨论一下数 ...

雪川大虫 发布于 2019-06-24 08:42 评论(0)阅读(111)
0

play framework + sbt入门之环境搭建

一 sbt的使用 SBT = (not so) Simple Build Tool,是scala的构建工具,与java的maven地位相同。其设计宗旨是让简单的项目可以简单的配置,而复杂的项目可以复杂的配置。 sbt使用了ivy,默认将依赖包保存在用户目录.ivy下面,如果觉得默认路径不合适,可以把 ...

linjiaqin 发布于 2019-06-20 14:07 评论(0)阅读(54)
1

Akka-CQRS(12)- akka-http for http-web-service: Routing-服务项目接口

上篇提到,按当前对web-service功能需要,我们需要完成数据转换marshalling,服务接口routing这两部分的调研和示范。上篇已经完成了对序列化marshalling的讨论,这篇就介绍一下routing了。akka-http提供了一套功能强大,使用又很方便的Routing DSL。R ...

雪川大虫 发布于 2019-06-20 09:25 评论(0)阅读(110)
0

Akka-CQRS(11)- akka-http for http-web-service: Marshalling-数据序列化

前面几篇讨论了关于gRPC方式的前后端连接集成方式。gRPC也是一个开放的标准,但讲到普及性就远远不及基于http/1.1协议的web-service了。特别是gRPC的前端编程还是有一定的门槛,所以作为一种开放的网络大平台还是必须考虑用web-service方式的集成。平台服务api可以有两样选择 ...

雪川大虫 发布于 2019-06-19 16:31 评论(0)阅读(130)
0

【SCALA】2、驼峰,下划线互转

1、刚开始写scala,发现确实还是很不熟悉,api以及语法的使用都不是很简洁,这写出来跟java也没差多少。。。 献丑了 ...

cutter_point 发布于 2019-06-12 09:37 评论(0)阅读(34)
0

Akka-CQRS(8)- CQRS Reader Actor 应用实例

前面我们已经讨论了CQRS-Reader-Actor的基本工作原理,现在是时候在之前那个POS例子里进行实际的应用示范了。 假如我们有个业务系统也是在cassandra上的,那么reader就需要把从日志读出来的事件恢复成cassandra表里的数据行row。首先,我们需要在cassandra上创建 ...

雪川大虫 发布于 2019-05-30 11:12 评论(0)阅读(50)
0

spark与Scala安装过程和步骤及sparkshell命令的使用

Spark与Scala版本兼容问题: Spark运行在Java 8 +,Python 2.7 + / 3.4 +和R 3.1+上。对于Scala API,Spark 2.4.2使用Scala 2.12。您需要使用兼容的Scala版本(2.12.x)。 请注意,自Spark 2.2.0起,对2.6.5 ...

旧伤 发布于 2019-05-27 00:08 评论(0)阅读(59)
0

14. Scala使用递归的方式去思考,去编程

14.1 基本介绍 -Scala饰运行在Java虚拟机(Java Virtual Machine)之上,因此具有如下特点 1) 轻松实现和丰富的Java类库互联互通 2) 它既支持面向对象的编程方式,又支持函数式编程 3) 它写出的程序像动态语言一样简洁,但事实上它确是严格意义上的静态语言 14.2 ...

铖歌 发布于 2019-05-22 02:17 评论(0)阅读(48)
0

Akka-CQRS(7)- CQRS Reader Actor 示范

我们在这篇通过一个具体CQRS-Reader-Actor的例子来示范akka-persistence的query端编程和应用。在前面的博客里我们设计了一个CQRS模式POS机程序的操作动作录入过程,并示范了如何实现CQRS的写端编程。现在我们可以根据这个例子来示范如何通过CQRS的读端reader- ...

雪川大虫 发布于 2019-05-21 08:55 评论(0)阅读(93)
0

13. Scala函数式编程(高级部分)

13.1 偏函数(partial function) 13.1.1 需求 -> 思考 一个集合val list = List(1,2,3,4,"abc"),完成如下要求 1) 将集合list中的所有数字+1,并返回一个新的集合 2) 要求忽略掉非数字的元素,即返回的新的集合形式为(2,3,4,5) ...

铖歌 发布于 2019-05-18 03:02 评论(0)阅读(144)
0

12. Scala模式匹配

12.1 match 12.1.1 基本介绍 Scala中的模式匹配类似于Java中的switch语法,但是更加强大 模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明,当需要匹配时,会从第一个case分支开始,如果匹配成功,那么执行对应的逻辑代码,如果匹配不成功,继续执行 ...

铖歌 发布于 2019-05-17 00:26 评论(0)阅读(34)
0

11. Scala数据结构(下)-集合操作

11.1 集合元素的映射-map映射操作 11.1.1 看一个实际需求 要求:请将List(3,5,8)中所有的元素都*2,将其结果放到一个新的集合中返回,即返回一个新的List(6,10,16),请编写程序实现 11.1.2 map映射操作 11.1.3 使用传统方法 -案例演示 -上述案例演示的 ...

铖歌 发布于 2019-05-14 23:32 评论(0)阅读(85)
0

10. Scala数据结构(上)-集合操作

10.1 数据结构特点 10.1.1 Scala集合基本介绍 uml => 统一建模语言 1) Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问 两个主要的包 不可变集合:scala.collection.immutable 可变集合:scala.collection.mutab ...

铖歌 发布于 2019-05-09 21:27 评论(0)阅读(59)
0

9. Scala隐式转换和隐式值

9.1 隐式转换 9.1.1 提出问题 先看一个案例演示,引出隐式转换的实际需要=>指定某些数据类型的相互转化 9.1.2 隐式函数基本介绍 隐式转换函数是以implicit关键字声明的带有单个参数的函数,这种函数将会自动应用,将值从一种类型转换为另一种类型 9.1.3 隐式函数快速入门 使用隐式函 ...

铖歌 发布于 2019-05-07 20:07 评论(0)阅读(157)
0

8. Scala面向对象编程(高级部分)

8.1 静态属性和静态方法 8.1.1 静态属性-提出问题 有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决 8.1.2 基本介绍 -Scala中静态的概念-伴生对象 Scala语言是完全面向对象(万物皆对象)的语言,所以并没有静态的操作( ...

铖歌 发布于 2019-05-05 21:38 评论(0)阅读(28)