Akka-http的客户端Api应该是以HttpRequest操作为主轴的网上消息交换模式编程工具.我们知道:Akka-http是搭建在Akka-stream之上的.所以,Akka-http在客户端构建与服务器的连接通道也可以用Akka-stream的Flow来表示.这个Flow可以通过调用Http.outgoingConnection来获取: /** * Creates a [[akka.stream.scaladsl.Flow]] representing a prospective HTT…
在上面几期讨论中我们连续介绍了Free Monad.因为FP是纯函数编程,也既是纯函数的组合集成,要求把纯代码和副作用代码可以分离开来.Free Monad的程序描述(AST)和程序实现(Interpretation)关注分离(separation of concern)模式恰恰能满足FP要求.我们可以用一些代数数据类型(ADT Algebraic Data Type)来模拟功能,再把这些ADT组合起来形成AST(Abstract Syntax Tree).AST既是对程序功能的描述,它的组成过…
创建项目 dotnet new -i IdentityServer4.Templates 多出来的这些模板 adminUI用来测试,想要用再生产环境,需要交钱 结合core的 Identity来使用 使用EF core把一些数据持久化到数据库里了 内存来存储信息 创建项目 创建一个内存里的项目叫做 Idp VS打开项目 直接运行: 这里看起来有点乱,这里显示注释掉 把上面这三被注释的代码放开注释: 这里添加用户,添加了一个测试用户 查看TestUser的源码 他是在代码里写死了两个用户; 往内存…
我们到底能走多远系列(36) 扯淡: 年关将至,总是会在一些时间节点上才感觉时光飞逝,在平时浑浑噩噩的岁月里都浪费掉了太多的宝贵.请珍惜! 主题:      我们在编写http请求处理和响应的代码的时候,经常会处理到session,这里的session是指服务器和客户端交互时把一些信息存在服务器上,下一次请求是,可以在服务器上继续使用这些信息,我们都知道http是无状态的,在服务端维持一个session就是为了解决一些多个请求需要状态维持的问题.      它的工作原理,我的理解是,在第一次ht…
原文:Windows Phone开发(36):动画之DoubleAnimation 从本节开始,我们将围绕一个有趣的话题展开讨论--动画. 看到动画一词,你一定想到Flash,毕竟WP应用的一个很重要的框架是Silverlight,在WP中也发挥了Silverlight的许多优点,可能不少人说,Silverlight就是和Flash差不多吧,当你深入了解了Silverlight后,你会发现,其实不然,Silverlight更偏重于数据处和企业级应用. 好了,F话不多说,开始吹我们今天的牛皮吧,在…
在开始讨论Akka中对Actor的生命周期管理前,我们先探讨一下所谓的Actor编程模式.对比起我们习惯的行令式(imperative)编程模式,Actor编程模式更接近现实中的应用场景和功能测试模式.这是因为Actor是靠消息来驱动的,每种消息代表一项功能的运算指令.由于消息驱动式的程序是松散耦合的,每项功能都是在独立的线程中运算,互不干扰依赖,所以我们可以很自然的分开来实现各项功能以及独立测试每项功能.虽然Akka同时提供了Java和Scala两种API,但可能由于Akka本身是用Scala…
通过一段时间的学习了解,加深了一些对Akka的认识,特别是对于Akka在实际编程中的用途方面.我的想法,或者我希望利用Akka来达到的目的是这样的:作为传统方式编程的老兵,我们已经习惯了直线流程方式一口气实现完整的功能.如果使用Akka,我们可以把这个完整的功能分切成多个能产生中间临时结果的小功能然后把这些功能放到不同的Actor上分别独立运算,再通过消息来连接这些功能集合成最终结果.如此我们就轻易得到了一个多线程并发程序.由于Akka是软件工具(Tool),没有软件架构(Framework)对…
Akka是一种消息驱动运算模式,它实现跨JVM程序运算的方式是通过能跨JVM的消息系统来调动分布在不同JVM上ActorSystem中的Actor进行运算,前题是Akka的地址系统可以支持跨JVM定位.Akka的消息系统最高境界可以实现所谓的Actor位置透明化,这样在Akka编程中就无须关注Actor具体在哪个JVM上运行,分布式Actor编程从方式上跟普通Actor编程就不会有什么区别了.Akka的Remoting是一种点对点的跨JVM消息通道,让一个JVM上ActorSystem中的某个A…
Akka-http是一项系统集成工具.这主要依赖系统之间的数据交换功能.因为程序内数据表达形式与网上传输的数据格式是不相同的,所以需要对程序高级结构化的数据进行转换(marshalling or serializing)成为可在网上传输的数据格式.由于可能涉及到异类系统集成,网上传输数据格式是一个公开的标准,这样大家才都可以进行解析.Json就是是一个目前业界普遍接受的网上交换数据格式.当然,所谓的数据格式转换应该是双向的,还需要包括把接收的网上传输数据转换成程序高级结构化数据. Akka-ht…
前一段时间一直沉浸在函数式编程模式里,主要目的之一是掌握一套安全可靠的并发程序编程方法(concurrent programming),最终通过开源项目FunDA实现了单机多核CPU上程序的并行运算.但是,虽然通过在终端实现并行运算能充分利用多核CPU的计算能力把数据处理运算分布到前台可以大大减轻后台服务器的压力,提高系统整体效率,对现今大数据普遍盛行的系统计算要求还是远远不足的,只有通过硬件平行拓展(scale-out)形成机群并在之上实现分布式运算才能正真符合新环境对软件程序的要求.那么,下…