该特性将会被包含在 NGINX OSS,将推出一款即时通讯应用

澳门新普京app,摘要NGINX 官方博客正式宣布 NGINX 支持原生的
gPRC,现在就可以从代码仓库拉取快照版本。该特性将会被包含在 NGINX OSS
1.13.10、NGINX Plus R15 以及 NGINX 1.13.9 当中。引言NGINX
官方博客正式宣布 NGINX 支持原生的
gPRC,现在就可以从代码仓库拉取快照版本。该特性将会被包含在 NGINX OSS
1.13.10、NGINX Plus R15 以及 NGINX 1.13.9
当中(博客原文链接:
已经能够代理 gRPC TCP 连接,用户可以用它:发布 gRPC 服务,并应用 NGINX
提供的 HTTP/2 TLS 加密机制、速率限定、基于 IP
的访问控制以及日志等功能。在单个端点上发布多个 gRPC 服务,使用 NGINX
检查方法调用,将各个方法调用路由到相应的服务上。对一组 gRPC
服务进行负载均衡,可以使用轮询算法、最少连接数原则或其他方式在集群上分发流量。什么是
gRPC?gRPC
是一种远程过程调用协议(gRPC官网:
3.x,基于Netty 4.x +,用于客户端和服务器端之间的通信。gRPC
紧凑小巧,跨多种编程语言,同时支持请求与响应式的交互方式和流式交互方式。gRPC
因其跨语言特性和简洁的设计变得越来越流行,其中服务网格的实现就使用了
gRPC。gRPC 通过 HTTP/2 传输数据,可以传输明文文本数据和 TLS
加密过的数据。gRPC 调用是通过 HTTP POST
请求来实现的,每个请求里包含了一个编码过的消息体(protocol buffer
是默认的编码方式)。gRPC
的响应消息里也包含一个编码过的消息体,并在消息尾部带上状态码。gRPC
不能通过 HTTP 进行传输,而必须使用 HTTP/2,这是因为要充分利用 HTTP/2
连接的多路复用和流式特性。通过 NGINX 来管理 gRPC 服务下面的示例对 gRPC
的 Hello World
快速入门教程进行了修改,用它来创建一个简单的客户端到服务器端应用。例子中提供了
NGINX
的配置信息,而把应用程序的实现留给读者,不过文中还是会给出一些提示。1、暴露简单的
gRPC 服务首先,在客户端和服务器端之间安插 NGINX,NGINX
为服务器端的应用程序提供了一个稳定可靠的网关。然后开始部署包含了 gRPC
更新包的 NGINX。如果要从源代码开始编译 NGINX,要记得把 http_ssl 和
http_v2 两个模块包含进去:$ auto/configure –with-http_ssl_module
—with-http_v2_moduleNGINX 使用一个 HTTP 服务器来监听 gRPC 流量,并使用
grpc_pass 指令来代理 gRPC 流量。像下面的配置那样,在 80
端口上监听未加密的 gRPC 流量,并把请求重定向到 50051 端口上:http {
log_format main ‘$remote_addr – $remote_user [$time_local]澳门新普京游戏,
“$request” ‘ ‘$status $body_澳门新普京手机版,bytes_sent “$http_referer” ‘
‘”$http_user_agent”‘; server { listen 80 http2; access_log
logs/access.log main; location / { # Replace localhost:50051 with the
address and port of your gRPC server # The ‘grpc://’ prefix is
optional; unencrypted gRPC is the default grpc_pass
grpc://localhost:50051; } }}要确保 grpc_pass
的地址是正确的。然后重新编译客户端,让它指向 NGINX 的 IP
地址和端口。在运行新的客户端时,可以看到与之前一样的响应消息,不过这时
NGINX 会终断和转发事务。这个可以从访问日志中看出来:$ tail
logs/access.log192.168.20.1 – – [01/Mar/2018:13:35:02 +0000] “POST
/helloworld.Greeter/SayHello HTTP/2.0” 200 18 “-”
“grpc-go/1.11.0-dev”192.168.20.1 – – [01/Mar/2018:13:35:02 +0000]
“POST /helloworld.Greeter/SayHelloAgain HTTP/2.0” 200 24 “-”
“grpc-go/1.11.0-dev”要注意,NGINX 不支持在同一个明文(非
TLS)端口上同时使用 HTTP/1 和
HTTP/2,如果一定要同时使用两种版本的协议,需要分别为它们创建不同的端口。2、发布基于
TLS 的 gRPC 服务Hello World 快速入门教程使用的是未加密的
HTTP/2,这样方便测试和部署,但要部署到生产环境就不能这么简单了。可以通过
NGINX 来增加一个加密层:创建一个自签名的证书对,然后修改 NGINX
服务器的配置如下:server { listen 1443 ssl http2; ssl_certificate
ssl/cert.pem; ssl_certificate_key ssl/key.pem; #…}让 gRPC
客户端使用 TLS,连接到 1443
端口,并禁用证书检查——这在使用自签名证书或未经信任的证书时是一个必要的步骤。例如,如果使用了
Go 语言编写的示例,就需要导入 crypto/tls 和
google.golang.org/grpc/credentials,并修改 grpc.Dial() 方法:creds :=
credentials.NewTLS( &tls.Config{ InsecureSkipVerify: true } )//
记得修改地址,使用新的端口conn, err := grpc.Dial( address,
grpc.WithTransportCredentials( creds ) )这样就可以加密 gRPC
流量了。在部署到生产环境时,需要将自签名证书换成由可信任证书机构发布的证书,客户端也需要配置成信任该证书。3、代理加密的
gRPC 服务有时候可能需要在内部对 gRPC
流量进行加密,那么就要修改服务器端应用程序的配置,把原先监听未加密(grpc)连接改为监听
TLS 加密(grpcs)连接。cer, err := tls.LoadX509KeyPair( “cert.pem”,
“key.pem” )config := &tls.Config{ Certificates: []tls.Certificate{cer}
}lis, err := tls.Listen( “tcp”, port, config )在 NGINX 的配置里,需要将
grpc-pass 配置成上游服务器的地址:# Use grpcs for TLS-encrypted gRPC
trafficgrpc_pass grpcs://localhost:50051;4、路由 gRPC
流量如果同时存在多个 gRPC
服务,并且每个服务是由不同的服务器应用程序提供的,那么该怎么办?如果能够将这些服务通过单个
TLS 端点暴露出来是不是更好?在 NGINX
里,可以对服务和它的方法稍作修改,然后使用 location 指令来路由流量。gRPC
的请求 URL 是使用包名、服务名和方法名来生成的。比如这个叫作 SayHello 的
RPC 方法:package helloworld;service Greeter { rpc SayHello
(HelloRequest) returns (HelloReply) {}}调用这个方法就会生成一个 POST
请求,URL 是
/helloworld.Greeter/SayHello,这个可以从日志中看出来:192.168.20.1 – –
[01/Mar/2018:13:35:02 +0000] “POST /helloworld.Greeter/SayHello
HTTP/2.0” 200 18 “-” “grpc-go/1.11.0-dev”要使用 NGINX
来路由流量,可以这样配置:location /helloworld.Greeter { grpc_pass
grpc://192.168.20.11:50051;}location /helloworld.Dispatcher { grpc_pass
grpc://192.168.20.21:50052;}location / { root html; index index.html
index.htm;}6、对 gRPC 流量进行负载均衡那么该如何增加 gRPC
服务的容量,以便提供高可用性?可以使用 NGINX 的 upstream 组:upstream
grpcservers { server 192.168.20.21:50051; server
192.168.20.22:50052;}server { listen 1443 ssl http2; ssl_certificate
ssl/certificate.pem; ssl_certificate_key ssl/key.pem; location
/helloworld.Greeter { grpc_pass grpc://grpcservers; error_page 502 =
/error502grpc; } location = /error502grpc { internal; default_type
application/grpc; add_header grpc-status 14; add_header grpc-message
“unavailable”; return 204; }}当然,如果上游监听的是 TLS 端口,可以使用
grpc_pass grpcs://upstreams。NGINX
支持多种负载均衡算法,其内置的健康检测机制可以检测到无法及时响应或发生错误的服务器,并把它们移除。如果没有可用的服务器,就会返回
/error502grpc 指定的错误消息。

摘要谷歌与 Oracle 之间的 Java 版权之争基本有了结果,谷歌因为在 Android
操作系统上使用了 Oracle 的 Java 版权代码,需要向 Oracle 支付 88
亿美元的赔偿。谷歌与 Oracle 之间的 Java 版权之争基本有了结果,谷歌因为在
Android 操作系统上使用了 Oracle 的 Java 版权代码,需要向 Oracle 支付 88
亿美元的赔偿。3 月 27 日,美国联邦巡回法院裁定,谷歌在 Android
上使用了大量 Java 代码,侵犯了 Oracle 的版权。版权之争在 2010
年就已立案,当时 Oracle 向 Alphabet 公司提出至少 88
亿美元的赔偿。谷歌对此感到失望,并表示会进一步采取措施,寻求其他解决方案。代码版权之争让硅谷的整个软件产业陷入了数年的“分裂”状态。一波人开发非功能性的基础代码,另一波人使用这些代码来开发应用程序,并认为版权法应该将使用这些基础代码视作一个例外。来自波斯顿
Burns&Levinson 律师事务所的 Mark Schonfeld
表示,“是否将代码使用作为版权的一个例外,这对于整个软件行业来说是个非常重大的决定。我认为这应该由最高法院来裁定,毕竟联邦巡回法院所做出的决定存在很大的争议。”Oracle
的法律总顾问 Dorian Daley
在一份声明中说道,“联邦巡回法院秉持版权法的基本原则,确定谷歌违反了版权法。这一决定是对原作者的保护,避免他们应有的权利遭到破坏”。谷歌及其支持者对这一裁决提出异议,认为这样会影响到新软件的开发,并给软件用户带来更高的使用成本。谷歌在一份声明中说道,“陪审团认为
Java
应该是开放的,每个人都可以免费使用,但法院却推翻了这一观点。这样的裁决只会增加软件用户的使用成本。”Oracle
表示,如果只是使用 Java
开发桌面应用程序或移动应用程序,是可以免费的。但如果要用 Java
开发竞争平台,或者把它嵌入到电子设备中,那么就需要加以限制。联邦巡回法院认为,尽管
Android 没有向用户收取许可费用,但这并不代表谷歌没有从 Java API
中获得商业利益,Android 已经为谷歌带来超过 420 亿美元的广告收入。Oracle
寻求的赔偿金额超过了 88
亿美元,而谷歌表示他们并未从中获得多少利益。来自波士顿 Mirick O’Connell
律师事务所的 Ping Hu 认为,这一争端可能会更多地暴露谷歌从 Android
这个免费系统上获得了多少利益。他说,“Oracle
赢得了战场,但战争并未结束”。Oracle 宣称,谷歌在 2000
年中期急于开发移动操作系统,在没有支付任何版权费用的情况下使用了 Java
技术中受版权保护的关键部分。谷歌反驳说,Oracle
纯粹是出于嫉妒,因为他们做了 Oracle
做不到的事情——开发了一款流行的免费移动操作系统。谷歌说他们只用了 Oracle
的一小部分代码,这些代码只够让 Android 开发者使用 Java
来开发应用程序。2016
年,加利福利亚的联邦陪审团站在了谷歌一边,认为谷歌的行为是“正当”的,应该被视为版权法的一个例外,但联邦巡回法院在最终的裁决中否定了这一论断。法院方面表示,“将受版权保护的成果用于相同的目的,并用它们创建与原作者相竞争的平台,这样的行为没有任何正当性可言“。谷歌希望联邦巡回法院能够重新考虑裁决结果,他们可以上诉到最高法院,而这也正是谷歌支持者所希望看到的。2014
年,最高法院曾经拒绝评审由联邦巡回法院提出的一份提议,联邦巡回法院在这一提议中表示,谷歌所使用的代码是受版权保护的。来
Public Knowledge 的政策顾问 Meredith Rose
说,联邦巡回法院的裁决打破了在软件行业运作了数十年的”潜规则”。Rose
还在一份声明中说道,“这对技术行业的竞争态势、开放性和发展造成了毁灭性的打击,对于软件用户来说,这也意味着更高的使用成本、更少的选择和更糟糕的产品体验”。Java
是由 Sun Microsystems 公司于 90 年代中期推出的一门编程语言。2010 年 1
月,Oracle 以 74 亿美元的价格收购了 Sun 公司。8 个月之后,Oracle
就向谷歌提起了版权诉讼。

摘要北京时间2018年4月10日消息,日本即时通讯巨头Line股价周二下跌,此前软银、Docomo与KDDI等几家电信公司宣布,将推出一款即时通讯应用“+Message”,挑战Line。内容简介北京时间10日消息,日本即时通讯巨头Line股价周二下跌,此前软银、Docomo与KDDI等几家电信公司宣布,将推出一款即时通讯应用“+Message”,挑战Line。这款应用软件预计将于5月9日同时在智能手机和平板电脑上推出,可以用于语言通信、群组聊天和发送照片信息,并可以发送至多2730个字符的文本信息。受此消息影响,Line股价一度大跌近4%,当前下跌3.85%。Line是什么?LINE是韩国互联网集团NHN的日本子公司NHN
Japan推出的一款即时通讯软件。虽然是一个起步较晚的通讯应用,2011年6月才正式推向市场,但全球注册用户超过4亿。LINE对用户吸引力最大的即“聊天表情贴图”。超过250种的表情贴图让用户在使用Line时多了一个有趣的心情传达工具。其中LINE官方设计可爱且特色鲜明的馒头人、可妮兔、布朗熊和詹姆士饱受好评,也让这四个卡通形象成为连接LINE其它产品的重要元素。免费通话,免费短信,全天24小时,随时随地,免费享用无限制的通话和短信的全新交流工具—LINE。即时通讯应用
LINE2016年6月10日正式宣布,公司将于本月7月15日
在日本东京证券交易所IPO,同时将于美国时间 7月14日 在纽交所 IPO,计划募资
10 亿美元。股票交易代码为 “LN”。 [2] LINE
成为了中国辨识度最高的韩国社交应用。可惜的是,在韩国本土,LINE
并没有受到日本、泰国和台湾等亚洲市场相同的待遇。后移动端IM时代说白了,Line相当于日本的微信,Line的表情包及依赖表情包的盈利模式相当成功。2013年移动端IM最火热的时候,Line、Whatsup、来往、易信、米聊、微信、陌陌等等都做的风生水起,时至今日,来往已死,米聊和易信已经被边缘化。因众所周之的原因,Line和Whatsup也很难下载到了。移动端IM的竞争格局再现了传统PC时代的IM格局——大者通吃、赢者通吃,IM确实是一个非常特殊的应用场景,后起之秀想要成功,不走细分领域(比如钉钉)几乎没有成功的可能性。在那个Android应用代码还没有被各种混淆、各种加密的时代,IM的研究资源真是丰富,RainbowChat中的语音通话呼叫界面就是扒的Line的素材(哈哈)。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图