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

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

使用gRPC作为云平台和移动前端的连接方式,网络安全应该是必须考虑的一个重点。gRPC是支持ssl/tls安全通讯机制的。用了一个周末来研究具体使用方法,实际上是一个周末的挖坑填坑过程。...gRPC的ssl/tls的原理是在服务端安装安全证书公用certificate和私钥key, 在客户端安装公共证书就可以了,gRPC代码是这样写的: // Server SslContext sslContext..." %% "compilerplugin" % "0.9.0-M6" 在sbt中执行dependencyTree: ~/scala/intellij/learn-grpc> sbt [info] Loading...不过客户端在使用了证书后仍然无法连接到服务端。没办法,又要再去查资料了。看来现在应该是证书的问题了。先看看是不是因为使用的证书是自签的self-signed-certificate。...grpc-java里提供了一些测试用的证书和私钥和说明文档。

1.3K40

ScalaPB(2): 在scala中用gRPC实现微服务

gRPC是google开源提供的一个RPC软件框架,它的特点是极大简化了传统RPC的开发流程和代码量,使用户可以免除许多陷阱并聚焦于实际应用逻辑中。...Language),一种简单的描述语言来自动产生RPC的api源代码 3、支持blocking/non-blocking双向数据流交互,适合程序的流程控制 gRPC的使用非常简单,具体流程如下: 1、...在一个.proto字符类文件中用IDL来描述用户自定义的数据类型和服务 2、用protoc编译器编译文件并产生自定义数据类型和服务的api源代码 3、在server端实现.proto中定义的服务函数 4...、在client端通过自动产生的stub来调用服务 下面我们就来示范gRPC的编程流程。...在本篇讨论中我们先示范Unary-service的编程流程,下面是.proto文件内容: syntax = "proto3"; import "google/protobuf/wrappers.proto

1.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    有两种方式可以实现需要的网络连接:Restful-api, gRPC。由于gRPC支持http/2通讯协议,支持持久连接方式及双向数据流。...所以对于POS设备这样的前端选择gRPC作为网络连接方式来实现实时的操作控制应该是正确的选择,毕竟采用恒久连接和双向数据流效率会高很多。...这篇讨论焦点集中在gRPC的server,client两头的具体实现。刚才提过,gRPC是google公司的开源库,同时还提供了各种语言的客户端,有:java, C++,python,go ......现在市面可供选择的gRPC-scala-客户端有scalaPB和akka-grpc两个,akka-grpc是基于akka-stream和akka-http构建的,按理来说会更合适,但由于还是处于preview...scalaPB是一个比较成熟的gRPC客户端,在前面的博客里我们也进行了介绍和示范。下面我们就用scalaPB来实现上面这个例子的客户端-平台集成。

    1.2K20

    ScalaPB(5):用akka-stream实现reactive-gRPC

    在前面几篇讨论里我们介绍了scala-gRPC的基本功能和使用方法,我们基本确定了选择gRPC作为一种有效的内部系统集成工具,主要因为下面gRPC支持的几种服务模式: 1、Unary-Call:独立的一对...很明显,gRPC支持双向的streaming。...那么如果能把gRPC中ListenableFuture和StreamObserver这两种类型转成akka-stream的基本类型应该就能够实现所谓的reactive-gRPC了。...如果我们能用akka-stream编程方式实现gRPC服务调用的话,可能会遭遇下面的场景:在服务端我们只需要实现一种akka-stream的Flow把进来的request转化成出去的response,如下..."com.thesamet.scalapb" %% "scalapb-runtime-grpc" % scalapbVersion, "io.monix" %% "monix" % "2.3.0",

    1.2K30

    ScalaPB(0): 找寻合适的内部系统微服务集成工具

    其中Cassandra和MongoDB属于分布式数据库,可以在集群中任何部署节点调用。而JDBC数据库则是非分布式的,无法部署在多个节点。...由于gRPC支持http/2协议,可以实现双向通讯duplex-communication,解决了独立request/response交互模式在软件编程中的诸多局限。...由于产生的源代码中不涉及任何http协议相关类型及操作,使用起来更容易上手。 在scala编程世界里我们可以用scalaPB来实现对gRPC和protobuf的使用。...java数据类型和抽象服务框架 3、在java编程中可以直接调用编译产生的数据类型及对数据进行操作 4、继承并实现产生的服务类 scalaPB是一个scala版的protobuf编译器。...编译.proto文件后产生scala语言的数据类型和抽象服务类,这样我们就可以在scala环境里使用protobuf和gRPC实现微服务的集成编程了。

    65720

    akka-grpc - 基于akka-http和akka-streams的scala gRPC开发工具

    关于grpc,在前面的scalaPB讨论里已经做了详细的介绍:google gRPC是一种全新的RPC框架,在开源前一直是google内部使用的集成工具。...由于gRPC支持http/2协议,可以实现双向通讯duplex-communication,解决了独立request/response交互模式在软件编程中的诸多局限。...在http/1应用中对二进制文件的传输交换有诸多限制和不便,特别是效率方面的问题。在protobuf这种序列化模式中对任何类型的数据格式都一视同仁,可以很方便的实现图片等文件的上传下载。...也许,在开发一套内部IT系统的过程中akka-grpc可以很趁手。...实际上akka-grpc产生代码的plugin还是采用scalaPB的插件,这个过程已经在scalaPB系列博客里详细介绍过了。

    2K20

    PICE(1):Programming In Clustered Environment - 集群环境内编程模式

    首先声明:标题上的所谓编程模式是我个人考虑在集群环境下跨节点(jvm)的流程控制编程模式,纯粹按实际需要构想,没什么理论支持。...由于jdbc数据库不支持分布式的运算模式,所以从数据交换的角度上它与集群环境是脱离的:jdbc数据不可以从集群中的任何节点获取。所以只有通过基于http的一种服务来向其它节点提供数据。...我首先考虑了akka-http,在准备过程中接触了gRPC,发现gRPC更加适合跨jvm的程序控制,主要因为gRPC支持双向的流控制。...在这篇讨论里我们将会验证通过JDBC Streaming实现gRPC服务。有关JDBC-Streaming的具体实现方式和使用方法请参考以前写的博客。那我们就开始吧。.../scalapb.proto"; package grpc.jdbc.services; option (scalapb.options) = { // use a custom Scala

    1.4K30

    akka-grpc - 应用案例

    毕竟用akka-grpc做了些事情,想想还是再写这篇跟大家分享使用kka-grpc的过程。 我说过,了解akka-grpc的主要目的还是在protobuf的应用上。这是一种高效率的序列化协议。...如何在akka系统里使用protobuf格式的数据正是本篇讨论和示范的目的。...shopId:posId就是代表为某用户构建的entityId,这个是通过用户在Request中提供的MetaData参数中jwt解析得出的。 可以看到,具体服务提供是通过集群的分片实现的。...akka消息支持多种序列化格式,包括protobuf, 在配置文件.conf里定义: akka { loglevel = INFO actor { provider = cluster...客户端设置可以在配置文件中定义: akka { loglevel = INFO grpc.client { "com.datatech.pos.abs.Services" {

    89610
    领券