PICE(6):集群环境里多异类端点gRPC Streaming - Heterogeneous multi-endpoints gRPC streaming

gRPC Streaming的操作对象由服务端和客户端组成。在一个包含了多个不同服务的集群环境中可能需要从一个服务里调用另一个服务端提供的服务。这时调用服务端又成为了提供服务端的客户端了(服务消费端)。那么如果我们用streaming形式来提交服务需求及获取计算结果就是以一个服务端为Source另一 ... »

Julia体验 语言特性 元编程,宏

上接语言基础,个人感觉这门语言和自己心中的理想国相距较远,乘着热情还在,我挑一些有趣的东西再写写。 元编程 元编程即对代码进行处理的代码,可以使用 解析出参数代码的类AST表示,也可以使用 简化: 使用 获得更可读的表示: expr有两部分, 表示出这个表达式的类型, 表示出剩余的参数: 如果我们t ... »

Julia体验 语言基础

以前听说过Julia,不过那时候官网还处于时不时宕机状态,最近Julia发布了 "1.0 released版本" 到处都是它的资讯,官网良心自带简体中文,趁着热度我也来试试,顺便聊记一二。 关于Julia Julia源于用户需求。用户希望有一门开源的脚本编程语言,有C的高性能,Ruby的灵活,Lis ... »

干货 | MySQL 分库分表,写得太好了!

Mysql分库分表方案 1.为什么要分表: 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。 mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作, ... »

Reactor模式理解

Reactor模式 也可以叫反应器模式或者应答者模式 reactor模式简介 让我们先了解一下阻塞I/O与非阻塞I/O I/O 是非常缓慢的 I/O绝对是计算机操作中最慢的。访问RAM的事件为ns级别,而访问磁盘或网络上的数据是ms级别的。 阻塞I/O与非阻塞I/O 阻塞I/O的意思是,一个I/O相 ... »

HashMap的工作原理

HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至 ... »

在eclipse不小心删掉了java文件怎么找回?

敲了半天的代码,一不小心手抖删除了,辣么多的代码,难道要重新敲一遍么? 好不容易敲了那么多,我不甘心…… 有木有办法把删除的 文件恢复捏? 答案是:有! 我们可以可以通过eclipse提供的恢复功能来恢复,那么问题来了,到底该怎么做捏?且听分解~ 右键点击java项目工程名,选择restort fr ... »

信号和槽:Qt中最差劲的创造

不要被这个标题唬住了,实际上我是非常认可Qt的。在C++实现的开源产品中没有哪一个的API风格比得上Qt,拥有高度一致性,符合常识,符合直觉,几乎不用学就可以直接上手。或许是由于我们摆脱不了马太效应的控制,赞誉已经给到了Qt的缺陷。Qt的最大问题就是提供了uic和moc。界面设计器生成xml文件,需 ... »

高并发风控技术解密(下)

如何灵活高效的接入? 平台化 •搭建平台而不是搭建项目——做一个“淘宝”而不是做只针对某几项业务的网站 •从业务中抽象及通用——如果一种业务有可能在今后重复出现,那就将其模块化,系统化(如批处理系统),发展成为平台能力 动态化 •流程动态化——不同的业务类型对应的流程可以随意调整,无须调整代码 •代 ... »

PICE(2):JDBCStreaming - gRPC-JDBC Service

在一个akka-cluster环境里,从数据调用的角度上,JDBC数据库与集群中其它节点是脱离的。这是因为JDBC数据库不是分布式的,不具备节点位置透明化特性。所以,JDBC数据库服务器必须通过服务方式来向外提供数据操。在这种场景里服务端是JDBC服务,其它节点,包括其它的JDBC数据库节点都是这个 ... »

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

首先声明:标题上的所谓编程模式是我个人考虑在集群环境下跨节点(jvm)的流程控制编程模式,纯粹按实际需要构想,没什么理论支持。在5月份的深圳scala meetup上我分享了有关集群环境下的编程模式思路。我提供了下面这个示意图: 上图是我正在探讨的“现代企业I.T综合数据平台”网络结构。因为互联网经 ... »

程序的编译与解释之间的区别

个人觉得:取决于你怎么解读这个问题。 传统意义对比: 传统意义上的所谓编译与解释,区别在于代码是在什么时候被翻译成目标CPU的指令。——虽然这种解释从科学上说不通,但这却是一直以来大家更认可的更约定俗成的定义。 对 C 语言或者其他编译型语言来说,编译生成了目标文件,而这个目标文件是针对特定的 CP ... »

ScalaPB(4): 通用跨系统protobuf数据,sbt设置

我们知道,在集群环境节点之间进行交换的数据必须经过序列化/反序列化处理过程,而在这方面protobuf是一个比较高效、易用的模式。用户首先在.proto文件中用IDL来定义系统中各种需要进行交换的数据类型。然后用protoc编译器自动产生相关的源代码,里面包括了完整的序列化处理函数。在一个集成的系统 ... »