completable是容器完成任务后的方法,workerCompletable是工作组完成任务的方法,下面的例子是演示了一个加法的运算,通过创建三个工作组,每个工作组创建三个任务,每个任务计算不同长度的加法,然后每个工作组完成后对该工作组内的加法做汇总,当所有工作组完成后,容器再对所有工作组内的结果再汇总。
查看(11117) 评论(0)2018-11-06 16:43
Go中函数特性简介
对Go中的函数特性做一个总结。懂则看,不懂则算。
Go中有3种函数:普通函数、匿名函数(没有名称的函数)、方法(定义在struct上的函数)。
Go编译时不在乎函数的定义位置,但建议init()定义在最前面(如果有的话),main函数定义在init()之后,然后再根据函数名的字母顺序或者根据调用顺序放置各函数的位置。
函数的参数、返回值以及它们的类型,结合起来成为函数的签名(signature)。
函数调用的时候,如果有参数传递给函数,则先拷贝参数的副本,再将副本传递
查看(11219) 评论(0)2018-11-06 16:39
在我们之前已经了解过微服务的架构了,那么对于一个完整的单体时,我们又应该如何操作呢?
那么,下面我们就来讲解一下。
我们了解到在微服务架构中,一个完整的单体应用被拆分成多个有着独立部署能力的业务服务,每个服务可以使用不同的编程语言,不同的存储介质,来保持最低限度的集中式管理。本篇将介绍Choerodon在搭建微服务网关时考虑的一些问题以及两种常见的微服务网关。
查看(11157) 评论(0)2018-11-06 16:34
压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等。而问题定位分析通常情况下,最优先排查的是监控服务器资源利用率,例如先用TOP 或者nmon等查看CPU、内存使用情况,然后在排查IO问题,例如网络IO、磁盘IO的问题。 如果是磁盘IO问题,一般问题是SQL语法问题、MYSQL参数配置问题、服务器自身硬件瓶颈导致IOPS吞吐率问题。
查看(11005) 评论(0)2018-10-30 16:23
select是Golang在语言层面提供的多路IO复用的机制,其可以检测多个channel是否ready(即是否可读或可写),使用起来非常方便。
查看(11553) 评论(0)2018-10-30 16:19
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
查看(10821) 评论(0)2018-10-30 16:04
在工作中,经常有这样的需求,需要判断某个ID是否在某个组的管理之下等,就需要查询该组下的ID放到一个集合中,且集合中元素不能有重复,之后判断该集合是否包含我们的目标ID;这时,我们可以使用 HashSet 来存放我们的ID,HashSet可以自动的帮助我们去重,比如HashSet<String> set = new HashSet<>(list) 等。接下来看下 HashSet 的内部是怎么实现的。
查看(10896) 评论(0)2018-10-30 16:00
微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。
查看(13229) 评论(0)2018-10-30 15:49
消息广播场在网络通讯应用还是普遍存在,如游戏中玩家状态通知,聊天和公共消息发送等,但在面对大量业务消息广播的情况可能会面临一些性能上的问题需要处理;毕竟大量业务不仅在消息序列化上非常损耗CPU,在网络IO读写上因过于频繁也会引起大量的损耗,如果没有处理好的情况还是非常影响整全服务性能。
查看(11064) 评论(0)2018-10-29 12:54
有个问题一直困扰着 Scala 社区,为什么一些 Java 开发者将 Scala 捧到了天上,认为它是来自上帝之吻的完美语言;而另外一些 Java 开发者却对它望而却步,认为它过于复杂而难以理解。同样是 Java 开发者,为何会出现两种截然不同的态度,我想这其中一定有误会。Scala 是一粒金子,但是被一些表面上看起来非常复杂的概念或语法包裹的太严实,以至于人们很难在短时间内搞清楚它的价值。与此同时,Java 也在不断地摸索前进,但是由于 Java 背负了沉重的历史包袱,所以每向前一步都显得异常
查看(10820) 评论(0)2018-10-29 12:51