Jolie —— 面向微服务的编程语言
Jolie 是面向微服务、为微服务开发设计的编程语言,旨在为微服务的开发提供原生抽象 (native abstraction)。
type HelloRequest {
name:string
}
interface HelloInterface {
requestResponse:
hello( HelloRequest )( string )
}
service HelloService {
execution: concurrent
inputPort HelloService {
location: "socket://localhost:9000"
protocol: http { format = "json" }
interfaces: HelloInterface
}
main {
hello( request )( response ) {
response = "Hello " + request.name
}
}
}
主要特性
- 专为微服务和 API 设计
type GetProfileRequestType {
id:int
}
type GetProfileResponseType {
name:string
surname:string
email:string( regex(".*@.*\\..*") )
accounts[0,*] {
nickname:string
service_url:string
enabled:bool
}
ranking:int( ranges( [1,5] ) )
}
type SendMessageRequestType {
id:int
message:string( length( [0,250] ) )
}
interface ProfileInterface {
requestResponse: // Synchronous RPC
getProfile( GetProfileRequestType )( GetProfileResponseType )
oneWay: // Asynchronous
sendMessage( SendMessageRequestType )
}
- 专为网络时代而构建
- 协议无关
- 结构化工作流
- 针对并行代码的动态错误处理
include "console.iol"
include "time.iol"
main
{
scope( grandFather )
{
install( this => println@Console( "recovering grandFather" )() );
scope( father )
{
install( this => println@Console( "recovering father" )() );
scope ( son )
{
install( this => println@Console( "recovering son" )() );
sleep@Time( 500 )();
println@Console( "Son's code block" )()
}
}
}
|
throw( a_fault )
}
- 支持直接对 Web 服务器进行编程
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
每日一博 | 懂得取舍才是缓存设计的真谛
Previously 前两篇文章(缓存稳定性 和 缓存正确性)跟大家讨论了缓存的『稳定性』和『正确性』,缓存常见问题还剩下『可观测性』和『规范落地&工具建设』 稳定性 正确性 可观测性 规范落地和工具建设 上周文章发完之后,很多同学对我留的问题进行了深入的讨论,我相信经过深度的思考,会让你对缓存一致性的理解更加深刻! 首先,各个 Go 群和 go-zero 群里有很多的讨论,但是大家也都没有找到非常满意的答案。 让我们来一起分析一下这个问题的几种可能解法: 利用分布式锁让每次的更新变成一个原子操作。这种方法最不可取,就相当于自废武功,放弃了高并发能力,去追求强一致性,别忘了我之前文章强调过『这个系列文章只针对非追求强一致性要求的高并发场景,金融支付等同学自行判断』,所以这种解法我们首先放弃。 把 A删除缓存 加上延迟,比如过1秒再执行此操作。这样的坏处是为了解决这种概率极低的情况,而让所有的更新在1秒内都只能获取旧数据。这种方法也不是很理想,我们也不希望使用。 把 A删除缓存 这里改成设置一个特殊占位符,并让 B设置缓存 用 redis 的 setnx 指令,然后后续请求遇到这...
-
下一篇
“源动力“技术沙龙:深入了解 KV 数据库和 ZNBaseDB
“源动力“技术沙龙由浪潮ZNBaseDB发起,旨在为所有开源爱好者分享有干货重内容的数据库信息。Meetup与2021年四月份启动,已完成第一期分享。嘉宾包括Zilliz首席布道师顾钧老师等。本次活动,为第二期。我们邀请了陈磊老师和管延信老师。 陈磊,开放原子开源基金会TOC成员,360资深技术专家,基础架构负责人,开源爱好者。 主要从事分布式存储、NoSQL数据库、云原生、消息中间件等云计算及分布式系统相关技术领域的工作。 负责和推动公司内项目的开源与发展,开源分布式NoSQL数据库Pika的负责人,开源PHP代码分析工具PHPTrace项目的发起人,基础架构团队开源项目包括:Atlas、PHPTrace、Pika、QBusBridge、QConf、Zeppelin。 管延信,浪潮云溪数据库副本团队负责人。拥有多年分布式数据库内核研发经验,在分布式一致性、高可用,事务并发控制,PLSQL方面均有研究。同时也是开源社区的活跃贡献者。 同时还有很多大咖亲临现场,想要和大咖们有近距离接触的机会,即刻报名,名额有限!先到先得! 报名方式:扫描长图中二维码直接报名。 活动时间:5月29日下午3...
相关文章
文章评论
共有0条评论来说两句吧...




微信收款码
支付宝收款码