首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Akka-CQRS(10)- gRPC on SSLTLS 安全连接

使用gRPC作为云平台和移动前端的连接方式,网络安全应该是必须考虑的一个重点。gRPC是支持ssl/tls安全通讯机制的。用了一个周末来研究具体使用方法,实际是一个周末的挖坑填坑过程。...仔细研究了一下github的gRPC-java说明文件SECURITY.MD,感觉应该是grpc和netty版本问题,特别是下面这几个依赖: Find the dependency tree (e.g..." % "1.0.1", "org.mongodb.scala" %% "mongo-scala-driver" % "2.6.0", "com.lightbend.akka" %% "akka-stream-alpakka-mongodb...不过客户端在使用了证书后仍然无法连接到服务端。没办法,又要再去查资料了。看来现在应该是证书的问题了。先看看是不是因为使用的证书是自签的self-signed-certificate。...再研究一下证书是怎么产生的,尝试按文档指引重新产生这些自签证书:可惜的是好像还有些文件是缺失的,serial。

1.3K40

使用Akka HTTP构建微服务:CDC方法

技术栈 这篇文章,选择了Scala作为语言,Akka HTTP作为框架。...它们既健壮又稳定,多次使用也没有问题。 最后,也是很重要的一点,测试支持!喜欢Scala Test,因为它始终是Scala的项目的一部分,但我们的CDC呢?...生产者特定的依赖关系仅用于数据库支持,您所见,使用H2(在内存数据库中),但您可以轻松地将其替换为其他数据库支持。...还有其他类似的库,Argonaut和JSON4S,可以按你想法评估所有这些库,并选择最适合您需求的库。 如果我们再次执行测试,我们现在应该得到一条绿线。再次,添加更多的测试,以涵盖每一个案例。...在我们现在的情况下,没有必要,因为逻辑非常简单,在测试方面,我们使用的是内存数据库,所以没有必要对它进行模拟。 回到测试路径,它会失败,因为没有数据,所以我们要添加它们。

7.5K50
您找到你想要的搜索结果了吗?
是的
没有找到

akka-grpc - 应用案例

不过有些项目需求不等人,需要使用这项技术,所以研究了一下akka-grpc,写了一篇介绍。本想到此为止,继续其它项目。想想这样做法有点不负责任,像是草草收场。...毕竟用akka-grpc做了些事情,想想还是再写这篇跟大家分享使用kka-grpc的过程。 说过,了解akka-grpc的主要目的还是在protobuf的应用上。这是一种高效率的序列化协议。...由于终端数量多、图像处理又特别消耗内存、CPU等计算资源、又要求快速响应,所以第一考虑就是使用akka-cluster把图像处理任务分割到多个节点并行处理。...如何在akka系统里使用protobuf格式的数据正是本篇讨论和示范的目的。...host = 192.168.11.189 port = 52051 override-authority = foo.test.google.fr use-tls

85310

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

一篇讨论了SSL/TLS安全连接,主要是一套在通信层面的数据加密解决方案。但我们更需要一套方案来验证客户端。要把不能通过验证的网络请求过滤掉。...实际OAuth2是一套3方授权模式,但我们只需要资源管理方授权,所以划去了1、2两个步骤。剩下的两个步骤,包括:申请令牌,使用令牌,这些在官方文件中有详细描述。...得到令牌后每个使用网络资源的Request都必须在Authorization类Header里附带这个令牌,: GET /resource HTTP/1.1 Host: server.example.com...import akka.http.scaladsl.model.headers._ import scala.concurrent._ import akka.http.scaladsl.model...." % "3.6.7" ) OAuth2Server.scala import akka.actor._ import akka.stream._ import akka.http.scaladsl.Http

57210

Akka 指南 之「Akka 和 Java 内存模型」

Akka 和 Java 内存模型 使用 LightBend 平台(包括 ScalaAkka)的一个主要好处是简化了并发软件的编写过程。...本文讨论了 LightBend 平台,特别是 Akka何在并发应用程序中处理共享内存。 Java 内存模型 在 Java 5 之前,Java 内存模型(JMM)是定义有问题的。...Actors 和 Java 内存模型 通过 Akka 中的 Actor 实现,多个线程可以通过两种方式在共享内存执行操作: 如果消息发送给某个 Actor(例如由另一个 Actor)。...我们强烈建议远离使用锁定的对象,因为它可能会导致性能问题,在最坏的情况下还会导致死锁。这就是同步的危险。 Actors 和共享可变状态 由于 Akka 在 JVM 运行,所以仍然需要遵循一些规则。...import scala.concurrent.Future import scala.concurrent.duration._ import scala.language.postfixOps import

96420

Akka(6): becomeunbecome:运算行为切换

的想法,或者希望利用Akka来达到的目的是这样的:作为传统方式编程的老兵,我们已经习惯了直线流程方式一口气实现完整的功能。...如果使用Akka,我们可以把这个完整的功能分切成多个能产生中间临时结果的小功能然后把这些功能放到不同的Actor分别独立运算,再通过消息来连接这些功能集合成最终结果。...由于Akka是软件工具(Tool),没有软件架构(Framework)对编程方式的特别要求,Actor的构建和使用非常方便,我们甚至不需要多少修改就可以直接把原来的一段代码移到Actor。...那么应该何在三种行为中切换呢?用context.become(???)...所以Akka提供了unbecome,这是个堆栈弹出函数,把上一个become压进的行为函数再弹出来,释放一个堆栈空间。所以我们应该用unbecome来解决堆栈溢出问题。

94690

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

前一篇博客里我们尝试实现了gRPC ssl/tls网络连接,但测试时用的证书如何产生始终没有搞清楚。现在akka-http开发的ws同样面临HTTPS的设置和使用问题。...在正式的生产环境里数字证书应该是由第三方公证机构CA签发的,我们需要向CA提出申请。...、 企业是否合法,是否拥有域名的所有权等 3) 信息审核通过,CA 会向申请者签发认证文件-证书。...现在开始了解一下https证书的配置使用方法吧。看了一下akka-http关于server端HTTPS设置的例子,证书是嵌在HttpsConnectionContext类型里面的。...还有就是akka-http使用的https证书格式只支持pkcs12,所以需要把上面用openssl产生的自签名证书server.crt转成server.p12。

1.5K60

Akka(13): 分布式运算:Cluster-Sharding-运算的集群分片

把通过使用Cluster-Sharding后达到的一些目的和大家分享一下,大家一起来分析分析到底这些达成的目标里是否包括了Actor在集群节点间的分布: 首先有个Actor,它的名称是一个自编码,由...由于在一个集群环境里所以这个Actor到底在哪个节点,具体地址是什么都不知道,只需要用这个自编码就可以和它沟通。...Akka-Cluster还可以根据整个集群中节点的增减按当前集群节点情况进行分片在集群节点调动来重新配载(rebalance),包括在某些节点因故脱离集群时把节点的所有Actor在其它在线节点重新构建...这样看来,这个Actor的自编码应该是Cluster-Sharding的应用核心元素了。按惯例我们还是用例子来示范Cluster-Sharding的使用。...下面的代码示范了如何在一个集群节点上部署分片: package clustersharding.shard import akka.persistence.journal.leveldb._ import

1.5K80

编码修炼 | 快速了解Scala技术栈

无可救药地成为了Scala的超级粉丝。在使用Scala开发项目以及编写框架后,它就仿佛凝聚成为一个巨大的黑洞,吸引力使不得不飞向它,以至于开始背离Java。...如果希望使用ORM框架,Squeryl应该是很好的选择。的同事杨云在项目中使用过该框架,体验不错。该框架目前的版本为0.9.5,已经比较成熟了。...并没有真正在项目中使用过Finagle,大家可以到它的官方网站获得更多消息。 对于分布式的支持,绝对绕不开的框架还是AKKA。...在项目中主要将Spray作为REST框架来使用,并结合AKKA来处理领域逻辑。Spray处理HTTP请求的架构如下图所示: ?...由于使用Scala,使得语言的函数式特性得到了最棒的利用。事实,函数式语言的诸多特性包括不变性、无副作用、组合子等,天生与数据处理匹配。

2K60

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

在这方面akka提供了比较完整的开发技术支持。在上一个系列有关CQRS的博客中按照实际应用的要求对akka的一些开发技术进行了介绍。CQRS模式着重操作流程控制,主要涉及交易数据的管理。...那么,作为交易数据产生过程中发挥验证作用的一系列基础数据如用户信息、商品信息、支付类型信息等又应该怎样维护呢?首先基础数据也应该是在平台水平的,但数据的采集、维护是在系统前端的,比如一些web界面。...在有关CQRS系列博客里,akka-http作为系统集成工具的一种,零星地针对实际需要对http通信进行了介绍。...的计划是用akka-http搭建一个平台数据维护api的REST-CRUD框架,包含所有标配功能如用户验证、异常处理等。...身份验证和使用权限也应该是一套标准的东西,但身份验证方法可能有所不同,特别是用户身份验证可能是通过独立的身份验证服务器实现的,对不同的验证机制应该有针对性的定制函数。

69620

kakafka - 为CQRS而生

与分布式运算框架像akka-cluster对比,kafka还缺了个在每个集群节点的”运算调度中介“,所以kafka应该不算所指的分布式运算框架,充其量是一种分布式的消息传递系统。...当然kafka也可以使用在其它一些场景:消息队列,数据存储等,不过这些都是commit-log的具体应用。 常常看到网上有朋友抱怨akka-cluster的一些处理方式太底层或太基础了。...用户往往需要自己来增加一些方法来确保使用安全。想作为一种消息驱动系统,如何保证akka消息的正确产生和安全使用应该是最基本的要求。而恰恰akka是没有提供对消息遗漏和重复消息的保障机制。...想这也是造成akka用户担心的主要原因。上面提到kafka是一种高吞吐量、高可用性、安全稳定的分布式消息系统,特别是它提供了对exactly-once,“保证一次”的消息使用支持。...那么通过kafka实现一套CQRS模式的实时交易处理系统应该是可行的。这也是使用kafka的主要目的。

57520

SDP(0):Streaming-Data-Processor - Data Processing with Akka-Stream

akka-stream是一套功能更加完整和强大的streaming工具库,那么如果以akka-stream为基础,设计一套能在集群环境里进行分布式多线程并行数据处理的开源编程工具应该可以是2018的首要任务...为了让传统中小型企业IT软件编程人员能开发服务器集群环境数据平台(如云端数据平台)运行的软件系统,打算通过这个DSP(Streaming-Data-Processor)项目来实现上面提到的第二部分。...这部分我会在完成SDP项目后以akka-persistence为核心,通过akka-http,AMQPRabitMQ等技术来实现。  ...按一般的scalaakka的编程方式编写多线程分布式数据库管理软件时一是要按照akka代码模式,使用scala编程语言的一些较深的语法;二是需要涉及异步Async调用,集群Cluster节点任务部署及...Streaming对外集成actor运算模式的细节,用户需要具备一定的scalaakka使用经验。

42310

geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑

目录 前言 若干坑 总结 一、前言        近期干了一件事情,将geotrellis程序移植到CDH中(关于CDH,可以参考安装ClouderaManager以及使用ClouderaManager...2.2 akka与spray        这是碰到的第一个问题,当运行service主程序的时候立马会报如下错误: java.lang.AbstractMethodError: com.sjzx.spray.can.HttpManager.akka...(Props.scala:401) at akka.actor.Props.newActor(Props.scala:339) at akka.actor.ActorCell.newActor...(ActorCell.scala:534) at akka.actor.ActorCell.create(ActorCell.scala:560) at akka.actor.ActorCell.invokeAll...(Mailbox.scala:262) at akka.dispatch.Mailbox.run(Mailbox.scala:218) at akka.dispatch.ForkJoinExecutorConfigurator

88750

Akka-CQRS(9)- gRPC,实现前端设备与平台系统的高效集成

所以对于POS设备这样的前端选择gRPC作为网络连接方式来实现实时的操作控制应该是正确的选择,毕竟采用恒久连接和双向数据流效率会高很多。...现在市面可供选择的gRPC-scala-客户端有scalaPB和akka-grpc两个,akka-grpc是基于akka-stream和akka-http构建的,按理来说会更合适,但由于还是处于preview...但NettyChannelBuilder还具备更多的设置参数,ssl/tls设置。 3、还有:因为客户端是按照顺序来发送操作指令的,每发一个指令,等待返回结果后才能再发下一个指令。...所以必须使用同步客户端调用函数blockingStub。..." % "1.0.1", "org.mongodb.scala" %% "mongo-scala-driver" % "2.6.0", "com.lightbend.akka" %% "akka-stream-alpakka-mongodb

1.1K20

Spark集群 + Akka + Kafka + Scala 开发(2) : 开发一个Spark应用

前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境,我们已经部署好了一个Spark的开发环境。...运行工程 使用spark提供的命令运行我们的spark应用。 --master local[4]表示在local模式下运行,使用4个线程。...下一步,看看如何在集群中运行。 启动一个standalone集群环境。 部署一个standalone集群环境不是本文要讲的内容。 所以,现在我们只使用单机上的集群功能。...(猜的) Spark使用ZooKeeper的实现主服务器的灾难恢复。 Slave worker 集群环境中,主从架构里的从服务器。...下一步请看: Spark集群 + Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用 Spark集群 + Akka + Kafka + Scala 开发

66450

【翻译】使用Akka HTTP构建微服务:CDC方法

技术栈 这篇文章,选择了Scala作为语言,Akka HTTP作为框架。...我们可以轻松地使用SBT创建一个新的Scala项目并定义build.sbt,如下所示: build.sbt 正如你所看到的,Akka HTTP项目的标准依赖关系(通用于提供者和消费者),spry-json...生产者特定的依赖关系仅用于数据库支持,您所见,使用H2(在内存数据库中),但您可以轻松地将其替换为其他数据库支持。...如果你很幸运,你应该得到这样的输出: 已经使用IntelliJ IDEA CE来执行测试,但是您可以直接使用这些命令来使用sbt: sbt test:它执行扩展了FunSpec和WordSpec的所有测试...该测试是使用Akka HTTP Route TestKit实现的,您可以在这里找到官方文档,它允许在这种格式的路由构建测试: BaseTestAppServer的类包含基本的依赖WordSpec

2K30

大数据技术之_16_Scala学习_11_客户信息管理系统+并发编程模型 Akka+Akka 网络编程-小黄鸡客服案例+Akka 网络编程-Spark Master Worker 进程通讯项目

"打" // 给 BActor 发出消息     }   } } BActor.scala package com.atguigu.akka.actors import akka.actor.Actor..."打"     }   } } ActorApp.scala package com.atguigu.akka.actors import akka.actor....答:使用 tracert 指令。演示如下: ? 16.7.5 端口(port)   我们这里所指的端口不是指物理意义的端口,而是特指TCP/IP协议中的端口,是逻辑意义的端口。...mes // 不应该发送字符串,应该包装一把,应该发送一个(样例)对象(即协议)       serverActorRef ! ..."start"   } } MessageProtocol.scala package com.atguigu.akka.sparkmasterworker.common // 使用样例类来构建协议

1.9K30

的Machine Learning学习之路

问题就在这些数学背景,这些背景不仅仅是数学技巧,也有一些共识。对于缺乏这些背景的,即使一个简单的公式,也有时会感到困惑。...基本这部分在实现好后,比较稳定。 需要实现将用户数据应用到算法的过程。 这是程序员主要干的工作,接口、性能上的考虑很多。 需要理解用户的使用场景。 这部分价值很大。...写的博文有: 学习Scala: 初学者应该了解的知识 函数式编程 : 一个程序猿进化的故事 Scala underscore的用途 不变(Invariant), 协变(Covarinat),...集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境 Spark集群 + Akka + Kafka + Scala 开发(2) : 开发一个Spark应用 Spark集群...+ Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用 Spark集群 + Akka + Kafka + Scala 开发(4) : 开发一个Kafka

80860
领券